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__