report.cc revision 13316:0423798f1a05
112852Sgabeblack@google.com/* 212852Sgabeblack@google.com * Copyright 2018 Google, Inc. 312852Sgabeblack@google.com * 412852Sgabeblack@google.com * Redistribution and use in source and binary forms, with or without 512852Sgabeblack@google.com * modification, are permitted provided that the following conditions are 612852Sgabeblack@google.com * met: redistributions of source code must retain the above copyright 712852Sgabeblack@google.com * notice, this list of conditions and the following disclaimer; 812852Sgabeblack@google.com * redistributions in binary form must reproduce the above copyright 912852Sgabeblack@google.com * notice, this list of conditions and the following disclaimer in the 1012852Sgabeblack@google.com * documentation and/or other materials provided with the distribution; 1112852Sgabeblack@google.com * neither the name of the copyright holders nor the names of its 1212852Sgabeblack@google.com * contributors may be used to endorse or promote products derived from 1312852Sgabeblack@google.com * this software without specific prior written permission. 1412852Sgabeblack@google.com * 1512852Sgabeblack@google.com * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1612852Sgabeblack@google.com * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 1712852Sgabeblack@google.com * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 1812852Sgabeblack@google.com * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 1912852Sgabeblack@google.com * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 2012852Sgabeblack@google.com * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 2112852Sgabeblack@google.com * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2212852Sgabeblack@google.com * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2312852Sgabeblack@google.com * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2412852Sgabeblack@google.com * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 2512852Sgabeblack@google.com * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2612852Sgabeblack@google.com * 2712852Sgabeblack@google.com * Authors: Gabe Black 2812852Sgabeblack@google.com */ 2912852Sgabeblack@google.com 3012997Sgabeblack@google.com#include "systemc/utils/report.hh" 3112997Sgabeblack@google.com 3212997Sgabeblack@google.comnamespace sc_gem5 3312997Sgabeblack@google.com{ 3412997Sgabeblack@google.com 3513335Sgabeblack@google.comconst char *reportSeverityNames[] = { 3612997Sgabeblack@google.com [sc_core::SC_INFO] = "Info", 3712997Sgabeblack@google.com [sc_core::SC_WARNING] = "Warning", 3812997Sgabeblack@google.com [sc_core::SC_ERROR] = "Error", 3913324Sgabeblack@google.com [sc_core::SC_FATAL] = "Fatal" 4012852Sgabeblack@google.com}; 4113312Sgabeblack@google.com 4212852Sgabeblack@google.comReportSevInfo reportSevInfos[sc_core::SC_MAX_SEVERITY] = 4312852Sgabeblack@google.com{ 4412852Sgabeblack@google.com [sc_core::SC_INFO] = ReportSevInfo(sc_core::SC_DEFAULT_INFO_ACTIONS), 4512852Sgabeblack@google.com [sc_core::SC_WARNING] = ReportSevInfo(sc_core::SC_DEFAULT_WARNING_ACTIONS), 4612997Sgabeblack@google.com [sc_core::SC_ERROR] = ReportSevInfo(sc_core::SC_DEFAULT_ERROR_ACTIONS), 4712997Sgabeblack@google.com [sc_core::SC_FATAL] = ReportSevInfo(sc_core::SC_DEFAULT_FATAL_ACTIONS) 4812997Sgabeblack@google.com}; 4912997Sgabeblack@google.com 5012997Sgabeblack@google.comstd::map<std::string, ReportMsgInfo> reportMsgInfoMap; 5112997Sgabeblack@google.comstd::map<int, std::string> reportIdToMsgMap; 5212997Sgabeblack@google.com 5312997Sgabeblack@google.comint reportVerbosityLevel = sc_core::SC_MEDIUM; 5412852Sgabeblack@google.com 5512997Sgabeblack@google.comsc_core::sc_actions reportSuppressedActions = sc_core::SC_UNSPECIFIED; 5612997Sgabeblack@google.comsc_core::sc_actions reportForcedActions = sc_core::SC_UNSPECIFIED; 5712852Sgabeblack@google.comsc_core::sc_actions reportCatchActions = sc_core::SC_DISPLAY; 5812997Sgabeblack@google.com 5912852Sgabeblack@google.comsc_core::sc_report_handler_proc reportHandlerProc = 6012852Sgabeblack@google.com &sc_core::sc_report_handler::default_handler; 6112852Sgabeblack@google.com 6212997Sgabeblack@google.comstd::unique_ptr<sc_core::sc_report> globalReportCache; 6312997Sgabeblack@google.com 6412997Sgabeblack@google.combool reportWarningsAsErrors = false; 6512852Sgabeblack@google.com 6613324Sgabeblack@google.comDefaultReportMessages::DefaultReportMessages( 6713324Sgabeblack@google.com std::initializer_list<std::pair<int, const char *>> msgs) 6813324Sgabeblack@google.com{ 6913312Sgabeblack@google.com for (auto &p: msgs) 7012997Sgabeblack@google.com sc_core::sc_report::register_id(p.first, p.second); 7112997Sgabeblack@google.com} 7213312Sgabeblack@google.com 7313312Sgabeblack@google.com} // namespace sc_gem5 7412997Sgabeblack@google.com