sc_trace_file.cc revision 13245
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
3212852Sgabeblack@google.com#include "base/logging.hh"
3313245Sgabeblack@google.com#include "systemc/core/scheduler.hh"
3413245Sgabeblack@google.com#include "systemc/ext/channel/sc_signal_in_if.hh"
3513245Sgabeblack@google.com#include "systemc/ext/core/sc_event.hh"
3613245Sgabeblack@google.com#include "systemc/ext/core/sc_time.hh"
3713245Sgabeblack@google.com#include "systemc/ext/dt/bit/sc_bv_base.hh"
3813245Sgabeblack@google.com#include "systemc/ext/dt/bit/sc_logic.hh"
3913245Sgabeblack@google.com#include "systemc/ext/dt/bit/sc_lv_base.hh"
4013245Sgabeblack@google.com#include "systemc/ext/dt/fx/sc_fxnum.hh"
4113245Sgabeblack@google.com#include "systemc/ext/dt/fx/sc_fxval.hh"
4213245Sgabeblack@google.com#include "systemc/ext/dt/int/sc_int_base.hh"
4313245Sgabeblack@google.com#include "systemc/ext/dt/int/sc_signed.hh"
4413245Sgabeblack@google.com#include "systemc/ext/dt/int/sc_uint_base.hh"
4513245Sgabeblack@google.com#include "systemc/ext/dt/int/sc_unsigned.hh"
4612852Sgabeblack@google.com#include "systemc/ext/utils/sc_trace_file.hh"
4713245Sgabeblack@google.com#include "systemc/utils/vcd.hh"
4812852Sgabeblack@google.com
4912852Sgabeblack@google.comnamespace sc_core
5012852Sgabeblack@google.com{
5112852Sgabeblack@google.com
5213245Sgabeblack@google.comsc_trace_file::sc_trace_file() {}
5313245Sgabeblack@google.comsc_trace_file::~sc_trace_file() {}
5413245Sgabeblack@google.com
5512852Sgabeblack@google.comsc_trace_file *
5612852Sgabeblack@google.comsc_create_vcd_trace_file(const char *name)
5712852Sgabeblack@google.com{
5813245Sgabeblack@google.com    auto tf = new ::sc_gem5::VcdTraceFile(name);
5913245Sgabeblack@google.com    ::sc_gem5::scheduler.registerTraceFile(tf);
6013245Sgabeblack@google.com    return tf;
6112852Sgabeblack@google.com}
6212852Sgabeblack@google.com
6312852Sgabeblack@google.comvoid
6412852Sgabeblack@google.comsc_close_vcd_trace_file(sc_trace_file *tf)
6512852Sgabeblack@google.com{
6613245Sgabeblack@google.com    ::sc_gem5::scheduler.unregisterTraceFile(
6713245Sgabeblack@google.com            static_cast<::sc_gem5::TraceFile *>(tf));
6813245Sgabeblack@google.com    delete tf;
6912852Sgabeblack@google.com}
7012852Sgabeblack@google.com
7112852Sgabeblack@google.comvoid
7212852Sgabeblack@google.comsc_write_comment(sc_trace_file *tf, const std::string &comment)
7312852Sgabeblack@google.com{
7413245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->writeComment(comment);
7512852Sgabeblack@google.com}
7612852Sgabeblack@google.com
7712852Sgabeblack@google.comvoid
7813245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const bool &v, const std::string &name)
7912852Sgabeblack@google.com{
8013245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name);
8112852Sgabeblack@google.com}
8212852Sgabeblack@google.com
8312852Sgabeblack@google.comvoid
8413245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const bool *v, const std::string &name)
8512852Sgabeblack@google.com{
8613245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name);
8712852Sgabeblack@google.com}
8812852Sgabeblack@google.com
8912852Sgabeblack@google.comvoid
9013245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const float &v, const std::string &name)
9112852Sgabeblack@google.com{
9213245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name);
9312852Sgabeblack@google.com}
9412852Sgabeblack@google.com
9512852Sgabeblack@google.comvoid
9613245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const float *v, const std::string &name)
9712852Sgabeblack@google.com{
9813245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name);
9912852Sgabeblack@google.com}
10012852Sgabeblack@google.com
10112852Sgabeblack@google.comvoid
10213245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const double &v, const std::string &name)
10312852Sgabeblack@google.com{
10413245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name);
10512852Sgabeblack@google.com}
10612852Sgabeblack@google.com
10712852Sgabeblack@google.comvoid
10813245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const double *v, const std::string &name)
10912852Sgabeblack@google.com{
11013245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name);
11112852Sgabeblack@google.com}
11212852Sgabeblack@google.com
11312852Sgabeblack@google.comvoid
11413245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_logic &v, const std::string &name)
11512852Sgabeblack@google.com{
11613245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name);
11712852Sgabeblack@google.com}
11812852Sgabeblack@google.com
11912852Sgabeblack@google.comvoid
12013245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_logic *v, const std::string &name)
12112852Sgabeblack@google.com{
12213245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name);
12312852Sgabeblack@google.com}
12412852Sgabeblack@google.com
12512852Sgabeblack@google.comvoid
12613245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_int_base &v,
12713245Sgabeblack@google.com        const std::string &name)
12812852Sgabeblack@google.com{
12913245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name);
13012852Sgabeblack@google.com}
13112852Sgabeblack@google.com
13212852Sgabeblack@google.comvoid
13313245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_int_base *v,
13413245Sgabeblack@google.com        const std::string &name)
13512852Sgabeblack@google.com{
13613245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name);
13712852Sgabeblack@google.com}
13812852Sgabeblack@google.com
13912852Sgabeblack@google.comvoid
14013245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_uint_base &v,
14113245Sgabeblack@google.com        const std::string &name)
14212852Sgabeblack@google.com{
14313245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name);
14412852Sgabeblack@google.com}
14512852Sgabeblack@google.com
14612852Sgabeblack@google.comvoid
14713245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_uint_base *v,
14813245Sgabeblack@google.com        const std::string &name)
14912852Sgabeblack@google.com{
15013245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name);
15112852Sgabeblack@google.com}
15212852Sgabeblack@google.com
15312852Sgabeblack@google.comvoid
15413245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_signed &v,
15513245Sgabeblack@google.com        const std::string &name)
15612852Sgabeblack@google.com{
15713245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name);
15812852Sgabeblack@google.com}
15912852Sgabeblack@google.com
16012852Sgabeblack@google.comvoid
16113245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_signed *v,
16213245Sgabeblack@google.com        const std::string &name)
16312852Sgabeblack@google.com{
16413245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name);
16512852Sgabeblack@google.com}
16612852Sgabeblack@google.com
16712852Sgabeblack@google.comvoid
16813245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_unsigned &v,
16913245Sgabeblack@google.com        const std::string &name)
17012852Sgabeblack@google.com{
17113245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name);
17212852Sgabeblack@google.com}
17312852Sgabeblack@google.com
17412852Sgabeblack@google.comvoid
17513245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_unsigned *v,
17613245Sgabeblack@google.com        const std::string &name)
17712852Sgabeblack@google.com{
17813245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name);
17912852Sgabeblack@google.com}
18012852Sgabeblack@google.com
18112852Sgabeblack@google.comvoid
18213245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_bv_base &v,
18313245Sgabeblack@google.com        const std::string &name)
18412852Sgabeblack@google.com{
18513245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name);
18612852Sgabeblack@google.com}
18712852Sgabeblack@google.com
18812852Sgabeblack@google.comvoid
18913245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_bv_base *v,
19013245Sgabeblack@google.com        const std::string &name)
19112852Sgabeblack@google.com{
19213245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name);
19312852Sgabeblack@google.com}
19412852Sgabeblack@google.com
19512852Sgabeblack@google.comvoid
19613245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_lv_base &v,
19713245Sgabeblack@google.com        const std::string &name)
19812852Sgabeblack@google.com{
19913245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name);
20012852Sgabeblack@google.com}
20112852Sgabeblack@google.com
20212852Sgabeblack@google.comvoid
20313245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_lv_base *v,
20413245Sgabeblack@google.com        const std::string &name)
20512852Sgabeblack@google.com{
20613245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name);
20712852Sgabeblack@google.com}
20812852Sgabeblack@google.com
20912852Sgabeblack@google.comvoid
21013245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_fxval &v, const std::string &name)
21112852Sgabeblack@google.com{
21213245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name);
21312852Sgabeblack@google.com}
21412852Sgabeblack@google.com
21512852Sgabeblack@google.comvoid
21613245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_fxval *v, const std::string &name)
21712852Sgabeblack@google.com{
21813245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name);
21912852Sgabeblack@google.com}
22012852Sgabeblack@google.com
22112852Sgabeblack@google.comvoid
22213245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_fxval_fast &v,
22313245Sgabeblack@google.com        const std::string &name)
22412852Sgabeblack@google.com{
22513245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name);
22612852Sgabeblack@google.com}
22712852Sgabeblack@google.com
22812852Sgabeblack@google.comvoid
22913245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_fxval_fast *v,
23013245Sgabeblack@google.com        const std::string &name)
23112852Sgabeblack@google.com{
23213245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name);
23312852Sgabeblack@google.com}
23412852Sgabeblack@google.com
23512852Sgabeblack@google.comvoid
23613245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_fxnum &v, const std::string &name)
23712852Sgabeblack@google.com{
23813245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name);
23912852Sgabeblack@google.com}
24012852Sgabeblack@google.com
24112852Sgabeblack@google.comvoid
24213245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_fxnum *v, const std::string &name)
24312852Sgabeblack@google.com{
24413245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name);
24512852Sgabeblack@google.com}
24612852Sgabeblack@google.com
24712852Sgabeblack@google.comvoid
24813245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_fxnum_fast &v,
24913245Sgabeblack@google.com        const std::string &name)
25012852Sgabeblack@google.com{
25113245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name);
25212852Sgabeblack@google.com}
25312852Sgabeblack@google.com
25412852Sgabeblack@google.comvoid
25513245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::sc_fxnum_fast *v,
25613245Sgabeblack@google.com        const std::string &name)
25712852Sgabeblack@google.com{
25813245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name);
25912852Sgabeblack@google.com}
26012852Sgabeblack@google.com
26112852Sgabeblack@google.comvoid
26213245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_event &v, const std::string &name)
26312905Sgabeblack@google.com{
26413245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name);
26512905Sgabeblack@google.com}
26612905Sgabeblack@google.com
26712905Sgabeblack@google.comvoid
26813245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_event *v, const std::string &name)
26912905Sgabeblack@google.com{
27013245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name);
27112905Sgabeblack@google.com}
27212905Sgabeblack@google.com
27312905Sgabeblack@google.comvoid
27413245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_time &v, const std::string &name)
27512905Sgabeblack@google.com{
27613245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name);
27712905Sgabeblack@google.com}
27812905Sgabeblack@google.com
27912905Sgabeblack@google.comvoid
28013245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_time *v, const std::string &name)
28112905Sgabeblack@google.com{
28213245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name);
28312905Sgabeblack@google.com}
28412905Sgabeblack@google.com
28512905Sgabeblack@google.comvoid
28613245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const unsigned char &v,
28713245Sgabeblack@google.com         const std::string &name, int width)
28812877Sgabeblack@google.com{
28913245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name, width);
29012877Sgabeblack@google.com}
29112877Sgabeblack@google.com
29212877Sgabeblack@google.comvoid
29313245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const unsigned char *v,
29413245Sgabeblack@google.com         const std::string &name, int width)
29512877Sgabeblack@google.com{
29613245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name, width);
29712877Sgabeblack@google.com}
29812877Sgabeblack@google.com
29912877Sgabeblack@google.comvoid
30013245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const unsigned short &v,
30113245Sgabeblack@google.com         const std::string &name, int width)
30212877Sgabeblack@google.com{
30313245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name, width);
30412877Sgabeblack@google.com}
30512877Sgabeblack@google.com
30612877Sgabeblack@google.comvoid
30713245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const unsigned short *v,
30813245Sgabeblack@google.com         const std::string &name, int width)
30912877Sgabeblack@google.com{
31013245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name, width);
31112877Sgabeblack@google.com}
31212877Sgabeblack@google.com
31312877Sgabeblack@google.comvoid
31413245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const unsigned int &v,
31513245Sgabeblack@google.com        const std::string &name, int width)
31612877Sgabeblack@google.com{
31713245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name, width);
31812877Sgabeblack@google.com}
31912877Sgabeblack@google.com
32012877Sgabeblack@google.comvoid
32113245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const unsigned int *v,
32213245Sgabeblack@google.com        const std::string &name, int width)
32312877Sgabeblack@google.com{
32413245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name, width);
32512877Sgabeblack@google.com}
32612877Sgabeblack@google.com
32712877Sgabeblack@google.comvoid
32813245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const unsigned long &v,
32913245Sgabeblack@google.com         const std::string &name, int width)
33012877Sgabeblack@google.com{
33113245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name, width);
33212877Sgabeblack@google.com}
33312877Sgabeblack@google.com
33412877Sgabeblack@google.comvoid
33513245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const unsigned long *v,
33613245Sgabeblack@google.com         const std::string &name, int width)
33712877Sgabeblack@google.com{
33813245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name, width);
33912877Sgabeblack@google.com}
34012877Sgabeblack@google.com
34112877Sgabeblack@google.comvoid
34213245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const char &v, const std::string &name, int width)
34312852Sgabeblack@google.com{
34413245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name, width);
34512852Sgabeblack@google.com}
34612852Sgabeblack@google.com
34712852Sgabeblack@google.comvoid
34813245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const char *v, const std::string &name, int width)
34912852Sgabeblack@google.com{
35013245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name, width);
35112852Sgabeblack@google.com}
35212852Sgabeblack@google.com
35312852Sgabeblack@google.comvoid
35413245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const short &v,
35513245Sgabeblack@google.com        const std::string &name, int width)
35612852Sgabeblack@google.com{
35713245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name, width);
35812852Sgabeblack@google.com}
35912852Sgabeblack@google.com
36012852Sgabeblack@google.comvoid
36113245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const short *v,
36213245Sgabeblack@google.com        const std::string &name, int width)
36312852Sgabeblack@google.com{
36413245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name, width);
36512852Sgabeblack@google.com}
36612852Sgabeblack@google.com
36712852Sgabeblack@google.comvoid
36813245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const int &v, const std::string &name, int width)
36912852Sgabeblack@google.com{
37013245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name, width);
37112852Sgabeblack@google.com}
37212852Sgabeblack@google.com
37312852Sgabeblack@google.comvoid
37413245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const int *v, const std::string &name, int width)
37512852Sgabeblack@google.com{
37613245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name, width);
37712852Sgabeblack@google.com}
37812852Sgabeblack@google.com
37912852Sgabeblack@google.comvoid
38013245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const long &v, const std::string &name, int width)
38112852Sgabeblack@google.com{
38213245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name, width);
38312852Sgabeblack@google.com}
38412852Sgabeblack@google.com
38512852Sgabeblack@google.comvoid
38613245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const long *v, const std::string &name, int width)
38712852Sgabeblack@google.com{
38813245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name, width);
38912852Sgabeblack@google.com}
39012852Sgabeblack@google.com
39112852Sgabeblack@google.comvoid
39213245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::int64 &v,
39313245Sgabeblack@google.com        const std::string &name, int width)
39412852Sgabeblack@google.com{
39513245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name, width);
39612852Sgabeblack@google.com}
39712852Sgabeblack@google.com
39812852Sgabeblack@google.comvoid
39913245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::int64 *v,
40013245Sgabeblack@google.com        const std::string &name, int width)
40112852Sgabeblack@google.com{
40213245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name, width);
40312852Sgabeblack@google.com}
40412852Sgabeblack@google.com
40512852Sgabeblack@google.comvoid
40613245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::uint64 &v,
40713245Sgabeblack@google.com         const std::string &name, int width)
40812852Sgabeblack@google.com{
40913245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(&v, name, width);
41012852Sgabeblack@google.com}
41112852Sgabeblack@google.com
41212852Sgabeblack@google.comvoid
41313245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_dt::uint64 *v,
41413245Sgabeblack@google.com         const std::string &name, int width)
41512852Sgabeblack@google.com{
41613245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->addTraceVal(v, name, width);
41712852Sgabeblack@google.com}
41812852Sgabeblack@google.com
41912852Sgabeblack@google.comvoid
42013245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_signal_in_if<char> &v,
42113245Sgabeblack@google.com         const std::string &name, int width)
42212852Sgabeblack@google.com{
42313245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->
42413245Sgabeblack@google.com        addTraceVal(&v.read(), name, width);
42512852Sgabeblack@google.com}
42612852Sgabeblack@google.com
42712852Sgabeblack@google.comvoid
42813245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_signal_in_if<short> &v,
42913245Sgabeblack@google.com         const std::string &name, int width)
43012852Sgabeblack@google.com{
43113245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->
43213245Sgabeblack@google.com        addTraceVal(&v.read(), name, width);
43312852Sgabeblack@google.com}
43412852Sgabeblack@google.com
43512852Sgabeblack@google.comvoid
43613245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_signal_in_if<int> &v,
43713245Sgabeblack@google.com         const std::string &name, int width)
43812852Sgabeblack@google.com{
43913245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->
44013245Sgabeblack@google.com        addTraceVal(&v.read(), name, width);
44112852Sgabeblack@google.com}
44212852Sgabeblack@google.com
44312852Sgabeblack@google.comvoid
44413245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const sc_signal_in_if<long> &v,
44513245Sgabeblack@google.com         const std::string &name, int width)
44612852Sgabeblack@google.com{
44713245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->
44813245Sgabeblack@google.com        addTraceVal(&v.read(), name, width);
44912852Sgabeblack@google.com}
45012852Sgabeblack@google.com
45112877Sgabeblack@google.comvoid
45213245Sgabeblack@google.comsc_trace(sc_trace_file *tf, const unsigned int &v,
45313245Sgabeblack@google.com         const std::string &name, const char **enum_literals)
45412877Sgabeblack@google.com{
45513245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->
45613245Sgabeblack@google.com        addTraceVal(&v, name, enum_literals);
45712877Sgabeblack@google.com}
45812877Sgabeblack@google.com
45912913Sgabeblack@google.comvoid
46013245Sgabeblack@google.comsc_trace_delta_cycles(sc_trace_file *tf, bool on)
46112913Sgabeblack@google.com{
46213245Sgabeblack@google.com    static_cast<::sc_gem5::TraceFile *>(tf)->traceDeltas(on);
46312913Sgabeblack@google.com}
46412913Sgabeblack@google.com
46512852Sgabeblack@google.com} // namespace sc_core
466