gem5 v24.0.0.0
Loading...
Searching...
No Matches
report.hh
Go to the documentation of this file.
1/*
2 * Copyright 2018 Google, Inc.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
6 * met: redistributions of source code must retain the above copyright
7 * notice, this list of conditions and the following disclaimer;
8 * redistributions in binary form must reproduce the above copyright
9 * notice, this list of conditions and the following disclaimer in the
10 * documentation and/or other materials provided with the distribution;
11 * neither the name of the copyright holders nor the names of its
12 * contributors may be used to endorse or promote products derived from
13 * this software without specific prior written permission.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
16 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
17 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
18 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
19 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
21 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28#ifndef __SYSTEMC_UTILS_REPORT_HH__
29#define __SYSTEMC_UTILS_REPORT_HH__
30
31#include <initializer_list>
32#include <list>
33#include <map>
34#include <memory>
35#include <string>
36#include <utility>
37
40
41namespace sc_gem5
42{
43
45{
46 explicit ReportMsgInfo() :
47 actions(sc_core::SC_UNSPECIFIED), count(0), limit(-1),
48 sevActions{ sc_core::SC_UNSPECIFIED, sc_core::SC_UNSPECIFIED,
49 sc_core::SC_UNSPECIFIED, sc_core::SC_UNSPECIFIED },
50 sevCounts{0, 0, 0, 0}, sevLimits{-1, -1, -1, -1}, id(-1)
51 {}
52
53 void
55 {
56 int sevLimit = sevLimits[severity];
57 int sevCount = sevCounts[severity];
58 if ((limit != -1 && limit >= count) ||
59 (sevLimit != 1 && sevLimit >= sevCount)) {
61 }
62 }
63
65 int count;
66 int limit;
67
71
72 int id;
73};
74
92
95
96std::map<std::string, ReportMsgInfo> &reportMsgInfoMap();
97std::map<int, std::string> &reportIdToMsgMap();
98
99extern int reportVerbosityLevel;
100
104
106
107// gem5-specific support for extra SystemC report handlers. Called _after_
108// the default/set handler.
113
114extern std::unique_ptr<sc_core::sc_report> globalReportCache;
115
116extern bool reportWarningsAsErrors;
117
119{
120 public:
122};
123
124} // namespace sc_gem5
125
126#endif // __SYSTEMC_UTILS_REPORT_HH__
STL list class.
Definition stl.hh:51
STL pair class.
Definition stl.hh:58
unsigned sc_actions
@ SC_MAX_SEVERITY
Definition sc_report.hh:45
void(* sc_report_handler_proc)(const sc_report &, const sc_actions &)
int reportVerbosityLevel
Definition report.cc:62
sc_core::sc_report_handler_proc reportHandlerProc
Definition report.cc:68
sc_core::sc_actions reportSuppressedActions
Definition report.cc:64
void addExtraSystemCReportHandler(sc_core::sc_report_handler_proc proc)
Definition report.cc:85
void removeExtraSystemCReportHandler(sc_core::sc_report_handler_proc proc)
Definition report.cc:91
std::map< std::string, ReportMsgInfo > & reportMsgInfoMap()
Definition report.cc:49
sc_core::sc_actions reportForcedActions
Definition report.cc:65
std::map< int, std::string > & reportIdToMsgMap()
Definition report.cc:56
std::unique_ptr< sc_core::sc_report > globalReportCache
Definition report.cc:96
bool reportWarningsAsErrors
Definition report.cc:98
ReportSevInfo reportSevInfos[sc_core::SC_MAX_SEVERITY]
Definition report.cc:40
const char * reportSeverityNames[]
Definition report.cc:33
sc_core::sc_actions reportCatchActions
Definition report.cc:66
const std::list< sc_core::sc_report_handler_proc > & getExtraSystemCReportHandlers()
Definition report.cc:79
DefaultReportMessages(std::initializer_list< std::pair< int, const char * > >)
Definition report.cc:100
sc_core::sc_actions actions
Definition report.hh:64
int sevCounts[sc_core::SC_MAX_SEVERITY]
Definition report.hh:69
int sevLimits[sc_core::SC_MAX_SEVERITY]
Definition report.hh:70
sc_core::sc_actions sevActions[sc_core::SC_MAX_SEVERITY]
Definition report.hh:68
void checkLimits(sc_core::sc_severity severity, sc_core::sc_actions &actions)
Definition report.hh:54
void checkLimit(sc_core::sc_actions &actions)
Definition report.hh:82
sc_core::sc_actions actions
Definition report.hh:88
ReportSevInfo(sc_core::sc_actions actions)
Definition report.hh:77

Generated on Tue Jun 18 2024 16:24:07 for gem5 by doxygen 1.11.0