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 3013245Sgabeblack@google.com#include <vector> 3113245Sgabeblack@google.com 3213245Sgabeblack@google.com#include "systemc/core/scheduler.hh" 3313245Sgabeblack@google.com#include "systemc/ext/channel/sc_signal_in_if.hh" 3413245Sgabeblack@google.com#include "systemc/ext/core/sc_event.hh" 3513245Sgabeblack@google.com#include "systemc/ext/core/sc_time.hh" 3613245Sgabeblack@google.com#include "systemc/ext/dt/bit/sc_bv_base.hh" 3713245Sgabeblack@google.com#include "systemc/ext/dt/bit/sc_logic.hh" 3813245Sgabeblack@google.com#include "systemc/ext/dt/bit/sc_lv_base.hh" 3913245Sgabeblack@google.com#include "systemc/ext/dt/fx/sc_fxnum.hh" 4013245Sgabeblack@google.com#include "systemc/ext/dt/fx/sc_fxval.hh" 4113245Sgabeblack@google.com#include "systemc/ext/dt/int/sc_int_base.hh" 4213245Sgabeblack@google.com#include "systemc/ext/dt/int/sc_signed.hh" 4313245Sgabeblack@google.com#include "systemc/ext/dt/int/sc_uint_base.hh" 4413245Sgabeblack@google.com#include "systemc/ext/dt/int/sc_unsigned.hh" 4512852Sgabeblack@google.com#include "systemc/ext/utils/sc_trace_file.hh" 4613245Sgabeblack@google.com#include "systemc/utils/vcd.hh" 4712852Sgabeblack@google.com 4812852Sgabeblack@google.comnamespace sc_core 4912852Sgabeblack@google.com{ 5012852Sgabeblack@google.com 5113245Sgabeblack@google.comsc_trace_file::sc_trace_file() {} 5213245Sgabeblack@google.comsc_trace_file::~sc_trace_file() {} 5313245Sgabeblack@google.com 5412852Sgabeblack@google.comsc_trace_file * 5512852Sgabeblack@google.comsc_create_vcd_trace_file(const char *name) 5612852Sgabeblack@google.com{ 5713245Sgabeblack@google.com auto tf = new ::sc_gem5::VcdTraceFile(name); 5813245Sgabeblack@google.com ::sc_gem5::scheduler.registerTraceFile(tf); 5913245Sgabeblack@google.com return tf; 6012852Sgabeblack@google.com} 6112852Sgabeblack@google.com 6212852Sgabeblack@google.comvoid 6312852Sgabeblack@google.comsc_close_vcd_trace_file(sc_trace_file *tf) 6412852Sgabeblack@google.com{ 6513245Sgabeblack@google.com ::sc_gem5::scheduler.unregisterTraceFile( 6613245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)); 6713245Sgabeblack@google.com delete tf; 6812852Sgabeblack@google.com} 6912852Sgabeblack@google.com 7012852Sgabeblack@google.comvoid 7112852Sgabeblack@google.comsc_write_comment(sc_trace_file *tf, const std::string &comment) 7212852Sgabeblack@google.com{ 7313245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->writeComment(comment); 7412852Sgabeblack@google.com} 7512852Sgabeblack@google.com 7612852Sgabeblack@google.comvoid 7713245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const bool &v, const std::string &name) 7812852Sgabeblack@google.com{ 7913245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name); 8012852Sgabeblack@google.com} 8112852Sgabeblack@google.com 8212852Sgabeblack@google.comvoid 8313245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const bool *v, const std::string &name) 8412852Sgabeblack@google.com{ 8513245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name); 8612852Sgabeblack@google.com} 8712852Sgabeblack@google.com 8812852Sgabeblack@google.comvoid 8913245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const float &v, const std::string &name) 9012852Sgabeblack@google.com{ 9113245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name); 9212852Sgabeblack@google.com} 9312852Sgabeblack@google.com 9412852Sgabeblack@google.comvoid 9513245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const float *v, const std::string &name) 9612852Sgabeblack@google.com{ 9713245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name); 9812852Sgabeblack@google.com} 9912852Sgabeblack@google.com 10012852Sgabeblack@google.comvoid 10113245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const double &v, const std::string &name) 10212852Sgabeblack@google.com{ 10313245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name); 10412852Sgabeblack@google.com} 10512852Sgabeblack@google.com 10612852Sgabeblack@google.comvoid 10713245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const double *v, const std::string &name) 10812852Sgabeblack@google.com{ 10913245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name); 11012852Sgabeblack@google.com} 11112852Sgabeblack@google.com 11212852Sgabeblack@google.comvoid 11313245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_logic &v, const std::string &name) 11412852Sgabeblack@google.com{ 11513245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name); 11612852Sgabeblack@google.com} 11712852Sgabeblack@google.com 11812852Sgabeblack@google.comvoid 11913245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_logic *v, const std::string &name) 12012852Sgabeblack@google.com{ 12113245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name); 12212852Sgabeblack@google.com} 12312852Sgabeblack@google.com 12412852Sgabeblack@google.comvoid 12513245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_int_base &v, 12613245Sgabeblack@google.com const std::string &name) 12712852Sgabeblack@google.com{ 12813245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name); 12912852Sgabeblack@google.com} 13012852Sgabeblack@google.com 13112852Sgabeblack@google.comvoid 13213245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_int_base *v, 13313245Sgabeblack@google.com const std::string &name) 13412852Sgabeblack@google.com{ 13513245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name); 13612852Sgabeblack@google.com} 13712852Sgabeblack@google.com 13812852Sgabeblack@google.comvoid 13913245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_uint_base &v, 14013245Sgabeblack@google.com const std::string &name) 14112852Sgabeblack@google.com{ 14213245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name); 14312852Sgabeblack@google.com} 14412852Sgabeblack@google.com 14512852Sgabeblack@google.comvoid 14613245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_uint_base *v, 14713245Sgabeblack@google.com const std::string &name) 14812852Sgabeblack@google.com{ 14913245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name); 15012852Sgabeblack@google.com} 15112852Sgabeblack@google.com 15212852Sgabeblack@google.comvoid 15313245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_signed &v, 15413245Sgabeblack@google.com const std::string &name) 15512852Sgabeblack@google.com{ 15613245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name); 15712852Sgabeblack@google.com} 15812852Sgabeblack@google.com 15912852Sgabeblack@google.comvoid 16013245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_signed *v, 16113245Sgabeblack@google.com const std::string &name) 16212852Sgabeblack@google.com{ 16313245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name); 16412852Sgabeblack@google.com} 16512852Sgabeblack@google.com 16612852Sgabeblack@google.comvoid 16713245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_unsigned &v, 16813245Sgabeblack@google.com const std::string &name) 16912852Sgabeblack@google.com{ 17013245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name); 17112852Sgabeblack@google.com} 17212852Sgabeblack@google.com 17312852Sgabeblack@google.comvoid 17413245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_unsigned *v, 17513245Sgabeblack@google.com const std::string &name) 17612852Sgabeblack@google.com{ 17713245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name); 17812852Sgabeblack@google.com} 17912852Sgabeblack@google.com 18012852Sgabeblack@google.comvoid 18113245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_bv_base &v, 18213245Sgabeblack@google.com const std::string &name) 18312852Sgabeblack@google.com{ 18413245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name); 18512852Sgabeblack@google.com} 18612852Sgabeblack@google.com 18712852Sgabeblack@google.comvoid 18813245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_bv_base *v, 18913245Sgabeblack@google.com const std::string &name) 19012852Sgabeblack@google.com{ 19113245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name); 19212852Sgabeblack@google.com} 19312852Sgabeblack@google.com 19412852Sgabeblack@google.comvoid 19513245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_lv_base &v, 19613245Sgabeblack@google.com const std::string &name) 19712852Sgabeblack@google.com{ 19813245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name); 19912852Sgabeblack@google.com} 20012852Sgabeblack@google.com 20112852Sgabeblack@google.comvoid 20213245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_lv_base *v, 20313245Sgabeblack@google.com const std::string &name) 20412852Sgabeblack@google.com{ 20513245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name); 20612852Sgabeblack@google.com} 20712852Sgabeblack@google.com 20812852Sgabeblack@google.comvoid 20913245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_fxval &v, const std::string &name) 21012852Sgabeblack@google.com{ 21113245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name); 21212852Sgabeblack@google.com} 21312852Sgabeblack@google.com 21412852Sgabeblack@google.comvoid 21513245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_fxval *v, const std::string &name) 21612852Sgabeblack@google.com{ 21713245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name); 21812852Sgabeblack@google.com} 21912852Sgabeblack@google.com 22012852Sgabeblack@google.comvoid 22113245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_fxval_fast &v, 22213245Sgabeblack@google.com const std::string &name) 22312852Sgabeblack@google.com{ 22413245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name); 22512852Sgabeblack@google.com} 22612852Sgabeblack@google.com 22712852Sgabeblack@google.comvoid 22813245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_fxval_fast *v, 22913245Sgabeblack@google.com const std::string &name) 23012852Sgabeblack@google.com{ 23113245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name); 23212852Sgabeblack@google.com} 23312852Sgabeblack@google.com 23412852Sgabeblack@google.comvoid 23513245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_fxnum &v, const std::string &name) 23612852Sgabeblack@google.com{ 23713245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name); 23812852Sgabeblack@google.com} 23912852Sgabeblack@google.com 24012852Sgabeblack@google.comvoid 24113245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_fxnum *v, const std::string &name) 24212852Sgabeblack@google.com{ 24313245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name); 24412852Sgabeblack@google.com} 24512852Sgabeblack@google.com 24612852Sgabeblack@google.comvoid 24713245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_fxnum_fast &v, 24813245Sgabeblack@google.com const std::string &name) 24912852Sgabeblack@google.com{ 25013245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name); 25112852Sgabeblack@google.com} 25212852Sgabeblack@google.com 25312852Sgabeblack@google.comvoid 25413245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_fxnum_fast *v, 25513245Sgabeblack@google.com const std::string &name) 25612852Sgabeblack@google.com{ 25713245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name); 25812852Sgabeblack@google.com} 25912852Sgabeblack@google.com 26012852Sgabeblack@google.comvoid 26113245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_event &v, const std::string &name) 26212905Sgabeblack@google.com{ 26313245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name); 26412905Sgabeblack@google.com} 26512905Sgabeblack@google.com 26612905Sgabeblack@google.comvoid 26713245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_event *v, const std::string &name) 26812905Sgabeblack@google.com{ 26913245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name); 27012905Sgabeblack@google.com} 27112905Sgabeblack@google.com 27212905Sgabeblack@google.comvoid 27313245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_time &v, const std::string &name) 27412905Sgabeblack@google.com{ 27513245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name); 27612905Sgabeblack@google.com} 27712905Sgabeblack@google.com 27812905Sgabeblack@google.comvoid 27913245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_time *v, const std::string &name) 28012905Sgabeblack@google.com{ 28113245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name); 28212905Sgabeblack@google.com} 28312905Sgabeblack@google.com 28412905Sgabeblack@google.comvoid 28513245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const unsigned char &v, 28613245Sgabeblack@google.com const std::string &name, int width) 28712877Sgabeblack@google.com{ 28813245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name, width); 28912877Sgabeblack@google.com} 29012877Sgabeblack@google.com 29112877Sgabeblack@google.comvoid 29213245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const unsigned char *v, 29313245Sgabeblack@google.com const std::string &name, int width) 29412877Sgabeblack@google.com{ 29513245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name, width); 29612877Sgabeblack@google.com} 29712877Sgabeblack@google.com 29812877Sgabeblack@google.comvoid 29913245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const unsigned short &v, 30013245Sgabeblack@google.com const std::string &name, int width) 30112877Sgabeblack@google.com{ 30213245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name, width); 30312877Sgabeblack@google.com} 30412877Sgabeblack@google.com 30512877Sgabeblack@google.comvoid 30613245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const unsigned short *v, 30713245Sgabeblack@google.com const std::string &name, int width) 30812877Sgabeblack@google.com{ 30913245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name, width); 31012877Sgabeblack@google.com} 31112877Sgabeblack@google.com 31212877Sgabeblack@google.comvoid 31313245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const unsigned int &v, 31413245Sgabeblack@google.com const std::string &name, int width) 31512877Sgabeblack@google.com{ 31613245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name, width); 31712877Sgabeblack@google.com} 31812877Sgabeblack@google.com 31912877Sgabeblack@google.comvoid 32013245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const unsigned int *v, 32113245Sgabeblack@google.com const std::string &name, int width) 32212877Sgabeblack@google.com{ 32313245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name, width); 32412877Sgabeblack@google.com} 32512877Sgabeblack@google.com 32612877Sgabeblack@google.comvoid 32713245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const unsigned long &v, 32813245Sgabeblack@google.com const std::string &name, int width) 32912877Sgabeblack@google.com{ 33013245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name, width); 33112877Sgabeblack@google.com} 33212877Sgabeblack@google.com 33312877Sgabeblack@google.comvoid 33413245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const unsigned long *v, 33513245Sgabeblack@google.com const std::string &name, int width) 33612877Sgabeblack@google.com{ 33713245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name, width); 33812877Sgabeblack@google.com} 33912877Sgabeblack@google.com 34012877Sgabeblack@google.comvoid 34113245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const char &v, const std::string &name, int width) 34212852Sgabeblack@google.com{ 34313245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name, width); 34412852Sgabeblack@google.com} 34512852Sgabeblack@google.com 34612852Sgabeblack@google.comvoid 34713245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const char *v, const std::string &name, int width) 34812852Sgabeblack@google.com{ 34913245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name, width); 35012852Sgabeblack@google.com} 35112852Sgabeblack@google.com 35212852Sgabeblack@google.comvoid 35313245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const short &v, 35413245Sgabeblack@google.com const std::string &name, int width) 35512852Sgabeblack@google.com{ 35613245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name, width); 35712852Sgabeblack@google.com} 35812852Sgabeblack@google.com 35912852Sgabeblack@google.comvoid 36013245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const short *v, 36113245Sgabeblack@google.com const std::string &name, int width) 36212852Sgabeblack@google.com{ 36313245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name, width); 36412852Sgabeblack@google.com} 36512852Sgabeblack@google.com 36612852Sgabeblack@google.comvoid 36713245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const int &v, const std::string &name, int width) 36812852Sgabeblack@google.com{ 36913245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name, width); 37012852Sgabeblack@google.com} 37112852Sgabeblack@google.com 37212852Sgabeblack@google.comvoid 37313245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const int *v, const std::string &name, int width) 37412852Sgabeblack@google.com{ 37513245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name, width); 37612852Sgabeblack@google.com} 37712852Sgabeblack@google.com 37812852Sgabeblack@google.comvoid 37913245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const long &v, const std::string &name, int width) 38012852Sgabeblack@google.com{ 38113245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name, width); 38212852Sgabeblack@google.com} 38312852Sgabeblack@google.com 38412852Sgabeblack@google.comvoid 38513245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const long *v, const std::string &name, int width) 38612852Sgabeblack@google.com{ 38713245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name, width); 38812852Sgabeblack@google.com} 38912852Sgabeblack@google.com 39012852Sgabeblack@google.comvoid 39113245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::int64 &v, 39213245Sgabeblack@google.com const std::string &name, int width) 39312852Sgabeblack@google.com{ 39413245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name, width); 39512852Sgabeblack@google.com} 39612852Sgabeblack@google.com 39712852Sgabeblack@google.comvoid 39813245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::int64 *v, 39913245Sgabeblack@google.com const std::string &name, int width) 40012852Sgabeblack@google.com{ 40113245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name, width); 40212852Sgabeblack@google.com} 40312852Sgabeblack@google.com 40412852Sgabeblack@google.comvoid 40513245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::uint64 &v, 40613245Sgabeblack@google.com const std::string &name, int width) 40712852Sgabeblack@google.com{ 40813245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name, width); 40912852Sgabeblack@google.com} 41012852Sgabeblack@google.com 41112852Sgabeblack@google.comvoid 41213245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::uint64 *v, 41313245Sgabeblack@google.com const std::string &name, int width) 41412852Sgabeblack@google.com{ 41513245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name, width); 41612852Sgabeblack@google.com} 41712852Sgabeblack@google.com 41812852Sgabeblack@google.comvoid 41913245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_signal_in_if<char> &v, 42013245Sgabeblack@google.com const std::string &name, int width) 42112852Sgabeblack@google.com{ 42213245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)-> 42313245Sgabeblack@google.com addTraceVal(&v.read(), name, width); 42412852Sgabeblack@google.com} 42512852Sgabeblack@google.com 42612852Sgabeblack@google.comvoid 42713245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_signal_in_if<short> &v, 42813245Sgabeblack@google.com const std::string &name, int width) 42912852Sgabeblack@google.com{ 43013245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)-> 43113245Sgabeblack@google.com addTraceVal(&v.read(), name, width); 43212852Sgabeblack@google.com} 43312852Sgabeblack@google.com 43412852Sgabeblack@google.comvoid 43513245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_signal_in_if<int> &v, 43613245Sgabeblack@google.com const std::string &name, int width) 43712852Sgabeblack@google.com{ 43813245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)-> 43913245Sgabeblack@google.com addTraceVal(&v.read(), name, width); 44012852Sgabeblack@google.com} 44112852Sgabeblack@google.com 44212852Sgabeblack@google.comvoid 44313245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_signal_in_if<long> &v, 44413245Sgabeblack@google.com const std::string &name, int width) 44512852Sgabeblack@google.com{ 44613245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)-> 44713245Sgabeblack@google.com addTraceVal(&v.read(), name, width); 44812852Sgabeblack@google.com} 44912852Sgabeblack@google.com 45012877Sgabeblack@google.comvoid 45113245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const unsigned int &v, 45213245Sgabeblack@google.com const std::string &name, const char **enum_literals) 45312877Sgabeblack@google.com{ 45413245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)-> 45513245Sgabeblack@google.com addTraceVal(&v, name, enum_literals); 45612877Sgabeblack@google.com} 45712877Sgabeblack@google.com 45812913Sgabeblack@google.comvoid 45913245Sgabeblack@google.comsc_trace_delta_cycles(sc_trace_file *tf, bool on) 46012913Sgabeblack@google.com{ 46113245Sgabeblack@google.com static_cast<::sc_gem5::TraceFile *>(tf)->traceDeltas(on); 46212913Sgabeblack@google.com} 46312913Sgabeblack@google.com 46412852Sgabeblack@google.com} // namespace sc_core 465