Entries alias

This commit is contained in:
wsxarcher 2026-03-25 00:30:41 +01:00
parent 9f42078ada
commit ec8cf87d76
6 changed files with 15 additions and 14 deletions

View File

@ -2932,7 +2932,7 @@ void VerilatedContext::dumpvarsAdd(int level,
if (level == 0 && hier.empty()) m_dumpvars.clear();
m_dumpvars.emplace_back(level, hier);
}
std::vector<VerilatedTraceDumpvarsEntry>
VerilatedTraceDumpVarsEntries
VerilatedContext::dumpvars() const VL_MT_SAFE_EXCLUDES(m_timeDumpMutex) {
const VerilatedLockGuard lock{m_timeDumpMutex};
return m_dumpvars;

View File

@ -111,16 +111,17 @@ class VerilatedVcdC;
class VerilatedVcdSc;
// Internal: One $dumpvars call.
struct VerilatedTraceDumpvarsEntry final {
struct VerilatedTraceDumpVarsEntry final {
/// Maximum hierarchy depth to dump modules.
int m_level;
const int m_level;
/// Hierarchy root to dump.
std::string m_hier;
const std::string m_hier;
VerilatedTraceDumpvarsEntry(int level, const std::string& hier)
VerilatedTraceDumpVarsEntry(int level, const std::string& hier)
: m_level{level}
, m_hier{hier} {}
};
using VerilatedTraceDumpVarsEntries = std::vector<VerilatedTraceDumpVarsEntry>;
//=========================================================================
// Basic types
@ -416,7 +417,7 @@ protected:
mutable VerilatedMutex m_timeDumpMutex; // Protect misc slow strings
std::string m_timeFormatSuffix VL_GUARDED_BY(m_timeDumpMutex); // $timeformat printf format
std::string m_dumpfile VL_GUARDED_BY(m_timeDumpMutex); // $dumpfile setting
std::vector<VerilatedTraceDumpvarsEntry>
VerilatedTraceDumpVarsEntries
m_dumpvars VL_GUARDED_BY(m_timeDumpMutex); // $dumpvars settings
struct NonSerialized final { // Non-serialized information
@ -672,7 +673,7 @@ public:
// Internal: $dumpvars
void dumpvarsAdd(int level, const std::string& hier) VL_MT_SAFE_EXCLUDES(m_timeDumpMutex);
std::vector<VerilatedTraceDumpvarsEntry> dumpvars() const
VerilatedTraceDumpVarsEntries dumpvars() const
VL_MT_SAFE_EXCLUDES(m_timeDumpMutex);
// Internal: --prof-exec related settings

View File

@ -300,7 +300,7 @@ public:
void dumpvars(int level, const std::string& hier) VL_MT_SAFE {
m_sptrace.dumpvars(level, hier);
}
void dumpvars(const std::vector<VerilatedTraceDumpvarsEntry>& entries) VL_MT_SAFE {
void dumpvars(const VerilatedTraceDumpVarsEntries& entries) VL_MT_SAFE {
m_sptrace.dumpvars(entries);
}

View File

@ -318,7 +318,7 @@ public:
void dumpvars(int level, const std::string& hier) VL_MT_SAFE {
m_sptrace.dumpvars(level, hier);
}
void dumpvars(const std::vector<VerilatedTraceDumpvarsEntry>& entries) VL_MT_SAFE {
void dumpvars(const VerilatedTraceDumpVarsEntries& entries) VL_MT_SAFE {
m_sptrace.dumpvars(entries);
}

View File

@ -313,7 +313,7 @@ private:
uint32_t m_maxBits = 0; // Number of bits in the widest signal
void* m_initUserp = nullptr; // The callback userp of the instance currently being initialized
// TODO: Should keep this as a Trie, that is how it's accessed all the time.
std::vector<VerilatedTraceDumpvarsEntry> m_dumpvars; // dumpvar() entries
VerilatedTraceDumpVarsEntries m_dumpvars; // dumpvar() entries
double m_timeRes = 1e-9; // Time resolution (ns/ms etc)
double m_timeUnit = 1e-0; // Time units (ns/ms etc)
uint64_t m_timeLastDump = 0; // Last time we did a dump
@ -417,7 +417,7 @@ protected:
return levels;
}
bool matches(const VerilatedTraceDumpvarsEntry& entry) const {
bool matches(const VerilatedTraceDumpVarsEntry& entry) const {
if (!matchesPrefix(entry.m_hier)) return false;
return entry.m_level <= 0 || scopeLevelsBelow(entry.m_hier.size()) < entry.m_level;
}
@ -508,8 +508,8 @@ public:
// Set variables to dump, using $dumpvars format
// If level = 0, dump everything and hier is then ignored
void dumpvars(int level, const std::string& hier) VL_MT_SAFE;
void dumpvars(const std::vector<VerilatedTraceDumpvarsEntry>& entries) VL_MT_SAFE {
for (const VerilatedTraceDumpvarsEntry& entry : entries) {
void dumpvars(const VerilatedTraceDumpVarsEntries& entries) VL_MT_SAFE {
for (const VerilatedTraceDumpVarsEntry& entry : entries) {
dumpvars(entry.m_level, entry.m_hier);
}
}

View File

@ -351,7 +351,7 @@ public:
void dumpvars(int level, const std::string& hier) VL_MT_SAFE {
m_sptrace.dumpvars(level, hier);
}
void dumpvars(const std::vector<VerilatedTraceDumpvarsEntry>& entries) VL_MT_SAFE {
void dumpvars(const VerilatedTraceDumpVarsEntries& entries) VL_MT_SAFE {
m_sptrace.dumpvars(entries);
}