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