gem5
v20.1.0.0
systemc
ext
core
sc_main.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_EXT_CORE_SC_MAIN_HH__
29
#define __SYSTEMC_EXT_CORE_SC_MAIN_HH__
30
31
#include <iostream>
32
33
#include "../dt/int/sc_nbdefs.hh"
34
#include "
sc_time.hh
"
35
36
extern
"C"
int
sc_main
(
int
argc,
char
*argv[]);
37
38
namespace
sc_core
39
{
40
extern
"C"
int
sc_argc
();
41
42
// The standard version of this function doesn't have these "const"
43
// qualifiers, but the canonical SystemC implementation does.
44
extern
"C"
const
char
*
const
*
sc_argv
();
45
46
enum
sc_starvation_policy
47
{
48
SC_RUN_TO_TIME
,
49
SC_EXIT_ON_STARVATION
50
};
51
52
void
sc_start
();
53
void
sc_start
(
const
sc_time &,
sc_starvation_policy
p
=
SC_RUN_TO_TIME
);
54
static
inline
void
55
sc_start
(
double
d
,
sc_time_unit
t
,
sc_starvation_policy
p
=
SC_RUN_TO_TIME
)
56
{
57
sc_start
(
sc_time
(
d
,
t
),
p
);
58
}
59
60
void
sc_pause
();
61
62
enum
sc_stop_mode
63
{
64
SC_STOP_FINISH_DELTA
,
65
SC_STOP_IMMEDIATE
,
66
};
67
68
void
sc_set_stop_mode
(
sc_stop_mode
mode
);
69
sc_stop_mode
sc_get_stop_mode
();
70
71
void
sc_stop
();
72
73
const
sc_time &
sc_time_stamp
();
74
sc_dt::uint64
sc_delta_count
();
75
bool
sc_is_running
();
76
bool
sc_pending_activity_at_current_time
();
77
bool
sc_pending_activity_at_future_time
();
78
bool
sc_pending_activity
();
79
sc_time
sc_time_to_pending_activity
();
80
81
enum
sc_status
82
{
83
SC_ELABORATION
= 0x1,
84
SC_BEFORE_END_OF_ELABORATION
= 0x02,
85
SC_END_OF_ELABORATION
= 0x04,
86
SC_START_OF_SIMULATION
= 0x08,
87
SC_RUNNING
= 0x10,
88
SC_PAUSED
= 0x20,
89
SC_STOPPED
= 0x40,
90
SC_END_OF_SIMULATION
= 0x80,
91
92
// Nonstandard
93
SC_END_OF_INITIALIZATION
= 0x100,
94
SC_END_OF_UPDATE
= 0x400,
95
SC_BEFORE_TIMESTEP
= 0x800,
96
SC_STATUS_ANY
= 0xdff
97
};
98
99
sc_status
sc_get_status
();
100
101
std::ostream &
operator <<
(std::ostream &
os
,
sc_status
s
);
102
}
// namespace sc_core
103
104
#endif //__SYSTEMC_EXT_CORE_SC_MAIN_HH__
sc_core::sc_start
void sc_start()
Definition:
sc_main.cc:61
X86ISA::os
Bitfield< 17 > os
Definition:
misc.hh:803
sc_core::sc_get_status
sc_status sc_get_status()
Definition:
sc_main.cc:173
sc_core::sc_pending_activity_at_current_time
bool sc_pending_activity_at_current_time()
Definition:
sc_main.cc:148
sc_core
Definition:
messages.cc:31
sc_core::sc_time_unit
sc_time_unit
Definition:
sc_time.hh:40
sc_core::sc_argv
const char *const * sc_argv()
Definition:
sc_main.cc:55
sc_core::SC_RUN_TO_TIME
@ SC_RUN_TO_TIME
Definition:
sc_main.hh:48
sc_core::SC_BEFORE_END_OF_ELABORATION
@ SC_BEFORE_END_OF_ELABORATION
Definition:
sc_main.hh:84
sc_core::sc_pending_activity_at_future_time
bool sc_pending_activity_at_future_time()
Definition:
sc_main.cc:154
sc_core::SC_ELABORATION
@ SC_ELABORATION
Definition:
sc_main.hh:83
sc_core::SC_END_OF_ELABORATION
@ SC_END_OF_ELABORATION
Definition:
sc_main.hh:85
sc_core::SC_STOPPED
@ SC_STOPPED
Definition:
sc_main.hh:89
sc_core::sc_stop
void sc_stop()
Definition:
sc_main.cc:104
sc_core::SC_STOP_IMMEDIATE
@ SC_STOP_IMMEDIATE
Definition:
sc_main.hh:65
sc_dt::uint64
uint64_t uint64
Definition:
sc_nbdefs.hh:206
ArmISA::d
Bitfield< 9 > d
Definition:
miscregs_types.hh:60
sc_core::SC_BEFORE_TIMESTEP
@ SC_BEFORE_TIMESTEP
Definition:
sc_main.hh:95
sc_core::sc_time
Definition:
sc_time.hh:49
sc_core::operator<<
std::ostream & operator<<(std::ostream &os, sc_status s)
Definition:
sc_main.cc:179
ArmISA::mode
Bitfield< 4, 0 > mode
Definition:
miscregs_types.hh:70
sc_core::SC_START_OF_SIMULATION
@ SC_START_OF_SIMULATION
Definition:
sc_main.hh:86
sc_core::sc_time_to_pending_activity
sc_time sc_time_to_pending_activity()
Definition:
sc_main.cc:167
sc_core::sc_argc
int sc_argc()
Definition:
sc_main.cc:49
sc_core::sc_set_stop_mode
void sc_set_stop_mode(sc_stop_mode mode)
Definition:
sc_main.cc:88
sc_core::SC_END_OF_SIMULATION
@ SC_END_OF_SIMULATION
Definition:
sc_main.hh:90
sc_core::SC_STOP_FINISH_DELTA
@ SC_STOP_FINISH_DELTA
Definition:
sc_main.hh:64
sc_core::SC_EXIT_ON_STARVATION
@ SC_EXIT_ON_STARVATION
Definition:
sc_main.hh:49
sc_core::sc_delta_count
sc_dt::uint64 sc_delta_count()
Definition:
sc_main.cc:136
ArmISA::t
Bitfield< 5 > t
Definition:
miscregs_types.hh:67
sc_core::sc_pause
void sc_pause()
Definition:
sc_main.cc:68
sc_core::sc_status
sc_status
Definition:
sc_main.hh:81
sc_core::SC_END_OF_UPDATE
@ SC_END_OF_UPDATE
Definition:
sc_main.hh:94
sc_core::sc_stop_mode
sc_stop_mode
Definition:
sc_main.hh:62
sc_core::SC_STATUS_ANY
@ SC_STATUS_ANY
Definition:
sc_main.hh:96
sc_main
int sc_main(int argc, char *argv[])
MipsISA::p
Bitfield< 0 > p
Definition:
pra_constants.hh:323
ArmISA::s
Bitfield< 4 > s
Definition:
miscregs_types.hh:556
sc_core::sc_starvation_policy
sc_starvation_policy
Definition:
sc_main.hh:46
sc_core::SC_RUNNING
@ SC_RUNNING
Definition:
sc_main.hh:87
sc_time.hh
sc_core::SC_PAUSED
@ SC_PAUSED
Definition:
sc_main.hh:88
sc_core::sc_time_stamp
const sc_time & sc_time_stamp()
Definition:
sc_main.cc:128
sc_core::SC_END_OF_INITIALIZATION
@ SC_END_OF_INITIALIZATION
Definition:
sc_main.hh:93
sc_core::sc_get_stop_mode
sc_stop_mode sc_get_stop_mode()
Definition:
sc_main.cc:98
sc_core::sc_is_running
bool sc_is_running()
Definition:
sc_main.cc:142
sc_core::sc_pending_activity
bool sc_pending_activity()
Definition:
sc_main.cc:160
Generated on Wed Sep 30 2020 14:02:15 for gem5 by
doxygen
1.8.17