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 --- 14 unchanged lines hidden (view full) --- 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#include "base/logging.hh" |
31#include "systemc/core/channel.hh" |
32#include "systemc/ext/core/sc_prim.hh" 33 34namespace sc_core 35{ 36 |
37sc_prim_channel::sc_prim_channel() : 38 _gem5_channel(new sc_gem5::Channel(this)) 39{} |
40 |
41sc_prim_channel::sc_prim_channel(const char *_name) : 42 sc_object(_name), _gem5_channel(new sc_gem5::Channel(this)) 43{} |
44 |
45sc_prim_channel::~sc_prim_channel() { delete _gem5_channel; } |
46 47void 48sc_prim_channel::request_update() 49{ |
50 _gem5_channel->requestUpdate(); |
51} 52 53void 54sc_prim_channel::async_request_update() 55{ |
56 _gem5_channel->asyncRequestUpdate(); |
57} 58 59void 60sc_prim_channel::next_trigger() 61{ |
62 ::sc_core::next_trigger(); |
63} 64 65void |
66sc_prim_channel::next_trigger(const sc_event &e) |
67{ |
68 ::sc_core::next_trigger(e); |
69} 70 71void |
72sc_prim_channel::next_trigger(const sc_event_or_list &eol) |
73{ |
74 ::sc_core::next_trigger(eol); |
75} 76 77void |
78sc_prim_channel::next_trigger(const sc_event_and_list &eal) |
79{ |
80 ::sc_core::next_trigger(eal); |
81} 82 83void |
84sc_prim_channel::next_trigger(const sc_time &t) |
85{ |
86 ::sc_core::next_trigger(t); |
87} 88 89void |
90sc_prim_channel::next_trigger(double d, sc_time_unit u) |
91{ |
92 ::sc_core::next_trigger(d, u); |
93} 94 95void |
96sc_prim_channel::next_trigger(const sc_time &t, const sc_event &e) |
97{ |
98 ::sc_core::next_trigger(t, e); |
99} 100 101void |
102sc_prim_channel::next_trigger(double d, sc_time_unit u, const sc_event &e) |
103{ |
104 ::sc_core::next_trigger(d, u, e); |
105} 106 107void |
108sc_prim_channel::next_trigger(const sc_time &t, const sc_event_or_list &eol) |
109{ |
110 ::sc_core::next_trigger(t, eol); |
111} 112 113void |
114sc_prim_channel::next_trigger( 115 double d, sc_time_unit u, const sc_event_or_list &eol) |
116{ |
117 ::sc_core::next_trigger(d, u, eol); |
118} 119 120void |
121sc_prim_channel::next_trigger(const sc_time &t, const sc_event_and_list &eal) |
122{ |
123 ::sc_core::next_trigger(t, eal); |
124} 125 126void |
127sc_prim_channel::next_trigger( 128 double d, sc_time_unit u, const sc_event_and_list &eal) |
129{ |
130 ::sc_core::next_trigger(d, u, eal); |
131} 132 133bool 134sc_prim_channel::timed_out() 135{ 136 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 137 return false; 138} 139 140void 141sc_prim_channel::wait() 142{ |
143 ::sc_core::wait(); |
144} 145 146void |
147sc_prim_channel::wait(int i) |
148{ |
149 ::sc_core::wait(i); |
150} 151 152void |
153sc_prim_channel::wait(const sc_event &e) |
154{ |
155 ::sc_core::wait(e); |
156} 157 158void |
159sc_prim_channel::wait(const sc_event_or_list &eol) |
160{ |
161 ::sc_core::wait(eol); |
162} 163 164void |
165sc_prim_channel::wait(const sc_event_and_list &eal) |
166{ |
167 ::sc_core::wait(eal); |
168} 169 170void |
171sc_prim_channel::wait(const sc_time &t) |
172{ |
173 ::sc_core::wait(t); |
174} 175 176void |
177sc_prim_channel::wait(double d, sc_time_unit u) |
178{ |
179 ::sc_core::wait(d, u); |
180} 181 182void |
183sc_prim_channel::wait(const sc_time &t, const sc_event &e) |
184{ |
185 ::sc_core::wait(t, e); |
186} 187 188void |
189sc_prim_channel::wait(double d, sc_time_unit u, const sc_event &e) |
190{ |
191 ::sc_core::wait(d, u, e); |
192} 193 194void |
195sc_prim_channel::wait(const sc_time &t, const sc_event_or_list &eol) |
196{ |
197 ::sc_core::wait(t, eol); |
198} 199 200void |
201sc_prim_channel::wait(double d, sc_time_unit u, const sc_event_or_list &eol) |
202{ |
203 ::sc_core::wait(d, u, eol); |
204} 205 206void |
207sc_prim_channel::wait(const sc_time &t, const sc_event_and_list &eal) |
208{ |
209 ::sc_core::wait(t, eal); |
210} 211 212void |
213sc_prim_channel::wait(double d, sc_time_unit u, const sc_event_and_list &eal) |
214{ |
215 ::sc_core::wait(d, u, eal); |
216} 217 218} // namespace sc_core |