systemc: Add a mechanism for pre-registering message type ids.
These ids are the ones the Accellera implementation/tests use. Some of
the tests expect them to be available and usable.
Change-Id: I4e4dc3470c28d4113330a44ccd06ffe7724e75b1
Reviewed-on: https://gem5-review.googlesource.com/c/13322
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
diff --git a/src/systemc/utils/report.cc b/src/systemc/utils/report.cc
index 9c26ede..755542f 100644
--- a/src/systemc/utils/report.cc
+++ b/src/systemc/utils/report.cc
@@ -63,4 +63,11 @@
bool reportWarningsAsErrors = false;
+DefaultReportMessages::DefaultReportMessages(
+ std::initializer_list<std::pair<int, const char *>> msgs)
+{
+ for (auto &p: msgs)
+ sc_core::sc_report::register_id(p.first, p.second);
+}
+
} // namespace sc_gem5
diff --git a/src/systemc/utils/report.hh b/src/systemc/utils/report.hh
index e0b2e25..ddbf62f 100644
--- a/src/systemc/utils/report.hh
+++ b/src/systemc/utils/report.hh
@@ -30,9 +30,11 @@
#ifndef __SYSTEMC_UTILS_REPORT_HH__
#define __SYSTEMC_UTILS_REPORT_HH__
+#include <initializer_list>
#include <map>
#include <memory>
#include <string>
+#include <utility>
#include "systemc/ext/utils/sc_report.hh"
#include "systemc/ext/utils/sc_report_handler.hh"
@@ -106,6 +108,12 @@
extern bool reportWarningsAsErrors;
+struct DefaultReportMessages
+{
+ public:
+ DefaultReportMessages(std::initializer_list<std::pair<int, const char *>>);
+};
+
} // namespace sc_gem5
#endif // __SYSTEMC_UTILS_REPORT_HH__