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 * Authors: Gabe Black
28 */
29
30#ifndef __SYSTEMC_EXT_CORE__USING_HH__
31#define __SYSTEMC_EXT_CORE__USING_HH__
32
33#include "_core.hh"
34
35using sc_core::sc_attr_base;
36using sc_core::sc_attribute;
37using sc_core::sc_attr_cltn;
38
39using sc_core::sc_event_finder;
40using sc_core::sc_event_finder_t;
41using sc_core::sc_event_and_list;
42using sc_core::sc_event_or_list;
43using sc_core::sc_event_and_expr;
44using sc_core::sc_event_or_expr;
45using sc_core::sc_event;
46using sc_core::sc_get_top_level_events;
47using sc_core::sc_find_event;
48
49using sc_core::sc_export_base;
50using sc_core::sc_export;
51
52using sc_core::sc_interface;
53
54using sc_core::sc_thread_handle;
55using sc_core::sc_join;
56
57using sc_core::sc_argc;
58using sc_core::sc_argv;
59using sc_core::sc_starvation_policy;
60using sc_core::SC_RUN_TO_TIME;
61using sc_core::SC_EXIT_ON_STARVATION;
62using sc_core::sc_start;
63using sc_core::sc_pause;
64using sc_core::sc_set_stop_mode;
65using sc_core::sc_get_stop_mode;
66using sc_core::sc_stop_mode;
67using sc_core::SC_STOP_FINISH_DELTA;
68using sc_core::SC_STOP_IMMEDIATE;
69using sc_core::sc_stop;
70using sc_core::sc_time_stamp;
71using sc_core::sc_delta_count;
72using sc_core::sc_is_running;
73using sc_core::sc_pending_activity_at_current_time;
74using sc_core::sc_pending_activity_at_future_time;
75using sc_core::sc_pending_activity;
76using sc_core::sc_time_to_pending_activity;
77using sc_core::sc_get_status;
78using sc_core::SC_ELABORATION;
79using sc_core::SC_BEFORE_END_OF_ELABORATION;
80using sc_core::SC_END_OF_ELABORATION;
81using sc_core::SC_START_OF_SIMULATION;
82using sc_core::SC_RUNNING;
83using sc_core::SC_PAUSED;
84using sc_core::SC_STOPPED;
85using sc_core::SC_END_OF_SIMULATION;
86using sc_core::SC_END_OF_INITIALIZATION;
87using sc_core::SC_END_OF_UPDATE;
88using sc_core::SC_BEFORE_TIMESTEP;
89using sc_core::SC_STATUS_ANY;
90using sc_core::sc_status;
91
92using sc_core::sc_bind_proxy;
93using sc_core::SC_BIND_PROXY_NIL;
94using sc_core::sc_module;
95using sc_core::next_trigger;
96using sc_core::wait;
97using sc_core::halt;
98using sc_core::sc_gen_unique_name;
99using sc_core::sc_hierarchical_name_exists;
100using sc_core::sc_behavior;
101using sc_core::sc_channel;
102using sc_core::sc_start_of_simulation_invoked;
103using sc_core::sc_end_of_simulation_invoked;
104
105using sc_core::sc_module_name;
106
107using sc_core::sc_object;
108using sc_core::sc_get_top_level_objects;
109using sc_core::sc_find_object;
110
111using sc_core::sc_port_policy;
112using sc_core::SC_ONE_OR_MORE_BOUND;
113using sc_core::SC_ZERO_OR_MORE_BOUND;
114using sc_core::SC_ALL_BOUND;
115using sc_core::sc_port_base;
116using sc_core::sc_port_b;
117using sc_core::sc_port;
118
119using sc_core::sc_prim_channel;
120
121using sc_core::sc_curr_proc_kind;
122using sc_core::SC_NO_PROC_;
123using sc_core::SC_METHOD_PROC_;
124using sc_core::SC_THREAD_PROC_;
125using sc_core::SC_CTHREAD_PROC_;
126using sc_core::sc_descendent_inclusion_info;
127using sc_core::SC_NO_DESCENDANTS;
128using sc_core::SC_INCLUDE_DESCENDANTS;
129using sc_core::sc_unwind_exception;
130using sc_core::sc_process_b;
131using sc_core::sc_get_curr_process_handle;
132using sc_core::sc_get_current_process_b;
133using sc_core::sc_curr_proc_info;
134using sc_core::sc_curr_proc_handle;
135using sc_core::sc_process_handle;
136using sc_core::sc_get_current_process_handle;
137using sc_core::sc_is_unwinding;
138
139using sc_core::sc_sensitive;
140
141using sc_core::sc_simcontext;
142using sc_core::sc_get_curr_simcontext;
143
144using sc_core::sc_spawn_options;
145using sc_core::sc_spawn;
146
147using sc_core::sc_time_unit;
148using sc_core::SC_FS;
149using sc_core::SC_PS;
150using sc_core::SC_NS;
151using sc_core::SC_US;
152using sc_core::SC_MS;
153using sc_core::SC_SEC;
154using sc_core::sc_time;
155using sc_core::sc_time_tuple;
156using sc_core::SC_ZERO_TIME;
157using sc_core::sc_set_time_resolution;
158using sc_core::sc_get_time_resolution;
159using sc_core::sc_max_time;
160using sc_core::sc_get_default_time_unit;
161using sc_core::sc_set_default_time_unit;
162
163using sc_core::SC_ID_NO_BOOL_RETURNED_;
164using sc_core::SC_ID_NO_INT_RETURNED_;
165using sc_core::SC_ID_NO_SC_LOGIC_RETURNED_;
166using sc_core::SC_ID_OPERAND_NOT_SC_LOGIC_;
167using sc_core::SC_ID_OPERAND_NOT_BOOL_;
168using sc_core::SC_ID_INSTANCE_EXISTS_;
169using sc_core::SC_ID_ILLEGAL_CHARACTERS_;
170using sc_core::SC_ID_VC6_PROCESS_HELPER_;
171using sc_core::SC_ID_VC6_MAX_PROCESSES_EXCEEDED_;
172using sc_core::SC_ID_END_MODULE_NOT_CALLED_;
173using sc_core::SC_ID_HIER_NAME_INCORRECT_;
174using sc_core::SC_ID_SET_STACK_SIZE_;
175using sc_core::SC_ID_SC_MODULE_NAME_USE_;
176using sc_core::SC_ID_SC_MODULE_NAME_REQUIRED_;
177using sc_core::SC_ID_SET_TIME_RESOLUTION_;
178using sc_core::SC_ID_SET_DEFAULT_TIME_UNIT_;
179using sc_core::SC_ID_DEFAULT_TIME_UNIT_CHANGED_;
180using sc_core::SC_ID_INCONSISTENT_API_CONFIG_;
181using sc_core::SC_ID_WAIT_NOT_ALLOWED_;
182using sc_core::SC_ID_NEXT_TRIGGER_NOT_ALLOWED_;
183using sc_core::SC_ID_IMMEDIATE_NOTIFICATION_;
184using sc_core::SC_ID_HALT_NOT_ALLOWED_;
185using sc_core::SC_ID_WATCHING_NOT_ALLOWED_;
186using sc_core::SC_ID_DONT_INITIALIZE_;
187using sc_core::SC_ID_WAIT_N_INVALID_;
188using sc_core::SC_ID_MAKE_SENSITIVE_;
189using sc_core::SC_ID_MAKE_SENSITIVE_POS_;
190using sc_core::SC_ID_MAKE_SENSITIVE_NEG_;
191using sc_core::SC_ID_INSERT_MODULE_;
192using sc_core::SC_ID_REMOVE_MODULE_;
193using sc_core::SC_ID_NOTIFY_DELAYED_;
194using sc_core::SC_ID_GEN_UNIQUE_NAME_;
195using sc_core::SC_ID_MODULE_NAME_STACK_EMPTY_;
196using sc_core::SC_ID_NAME_EXISTS_;
197using sc_core::SC_ID_IMMEDIATE_SELF_NOTIFICATION_;
198using sc_core::SC_ID_WAIT_DURING_UNWINDING_;
199using sc_core::SC_ID_CYCLE_MISSES_EVENTS_;
200using sc_core::SC_ID_RETHROW_UNWINDING_;
201using sc_core::SC_ID_PROCESS_ALREADY_UNWINDING_;
202using sc_core::SC_ID_MODULE_METHOD_AFTER_START_;
203using sc_core::SC_ID_MODULE_THREAD_AFTER_START_;
204using sc_core::SC_ID_MODULE_CTHREAD_AFTER_START_;
205using sc_core::SC_ID_SIMULATION_TIME_OVERFLOW_;
206using sc_core::SC_ID_SIMULATION_STOP_CALLED_TWICE_;
207using sc_core::SC_ID_SIMULATION_START_AFTER_STOP_;
208using sc_core::SC_ID_STOP_MODE_AFTER_START_;
209using sc_core::SC_ID_SIMULATION_START_AFTER_ERROR_;
210using sc_core::SC_ID_SIMULATION_UNCAUGHT_EXCEPTION_;
211using sc_core::SC_ID_PHASE_CALLBACKS_UNSUPPORTED_;
212using sc_core::SC_ID_PHASE_CALLBACK_NOT_IMPLEMENTED_;
213using sc_core::SC_ID_PHASE_CALLBACK_REGISTER_;
214using sc_core::SC_ID_PHASE_CALLBACK_FORBIDDEN_;
215using sc_core::SC_ID_SIMULATION_START_UNEXPECTED_;
216using sc_core::SC_ID_THROW_IT_IGNORED_;
217using sc_core::SC_ID_NOT_EXPECTING_DYNAMIC_EVENT_NOTIFY_;
218using sc_core::SC_ID_DISABLE_WILL_ORPHAN_PROCESS_;
219using sc_core::SC_ID_PROCESS_CONTROL_CORNER_CASE_;
220using sc_core::SC_ID_METHOD_TERMINATION_EVENT_;
221using sc_core::SC_ID_JOIN_ON_METHOD_HANDLE_;
222using sc_core::SC_ID_NO_PROCESS_SEMANTICS_;
223using sc_core::SC_ID_EVENT_ON_NULL_PROCESS_;
224using sc_core::SC_ID_EVENT_LIST_FAILED_;
225using sc_core::SC_ID_UNKNOWN_PROCESS_TYPE_;
226using sc_core::SC_ID_TIME_CONVERSION_FAILED_;
227using sc_core::SC_ID_NEGATIVE_SIMULATION_TIME_;
228using sc_core::SC_ID_BAD_SC_MODULE_CONSTRUCTOR_;
229using sc_core::SC_ID_EMPTY_PROCESS_HANDLE_;
230using sc_core::SC_ID_NO_SC_START_ACTIVITY_;
231using sc_core::SC_ID_KILL_PROCESS_WHILE_UNITIALIZED_;
232using sc_core::SC_ID_RESET_PROCESS_WHILE_NOT_RUNNING_;
233using sc_core::SC_ID_THROW_IT_WHILE_NOT_RUNNING_;
234
235#endif  //__SYSTEMC_EXT_CORE__USING_HH__
236