diff --git a/include/verilated.cpp b/include/verilated.cpp index dbd5cdf24..e2c81cd7e 100644 --- a/include/verilated.cpp +++ b/include/verilated.cpp @@ -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 +VerilatedTraceDumpVarsEntries VerilatedContext::dumpvars() const VL_MT_SAFE_EXCLUDES(m_timeDumpMutex) { const VerilatedLockGuard lock{m_timeDumpMutex}; return m_dumpvars; diff --git a/include/verilated.h b/include/verilated.h index c605a98f8..49ad009f6 100644 --- a/include/verilated.h +++ b/include/verilated.h @@ -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; //========================================================================= // 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 + 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 dumpvars() const + VerilatedTraceDumpVarsEntries dumpvars() const VL_MT_SAFE_EXCLUDES(m_timeDumpMutex); // Internal: --prof-exec related settings diff --git a/include/verilated_fst_c.h b/include/verilated_fst_c.h index 5de5f9a85..bb5871662 100644 --- a/include/verilated_fst_c.h +++ b/include/verilated_fst_c.h @@ -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& entries) VL_MT_SAFE { + void dumpvars(const VerilatedTraceDumpVarsEntries& entries) VL_MT_SAFE { m_sptrace.dumpvars(entries); } diff --git a/include/verilated_saif_c.h b/include/verilated_saif_c.h index adbdd6f00..2cdb2a6ef 100644 --- a/include/verilated_saif_c.h +++ b/include/verilated_saif_c.h @@ -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& entries) VL_MT_SAFE { + void dumpvars(const VerilatedTraceDumpVarsEntries& entries) VL_MT_SAFE { m_sptrace.dumpvars(entries); } diff --git a/include/verilated_trace.h b/include/verilated_trace.h index e4a2f687c..1f7680cb3 100644 --- a/include/verilated_trace.h +++ b/include/verilated_trace.h @@ -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 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& 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); } } diff --git a/include/verilated_vcd_c.h b/include/verilated_vcd_c.h index b328a298d..6ff35c85a 100644 --- a/include/verilated_vcd_c.h +++ b/include/verilated_vcd_c.h @@ -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& entries) VL_MT_SAFE { + void dumpvars(const VerilatedTraceDumpVarsEntries& entries) VL_MT_SAFE { m_sptrace.dumpvars(entries); }