sc_module.cc revision 12909
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 <memory> 31#include <vector> 32 33#include "base/logging.hh" 34#include "systemc/ext/core/sc_module.hh" 35 36namespace sc_core 37{ 38 39sc_bind_proxy::sc_bind_proxy(const sc_interface &interface) 40{ 41 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 42} 43 44sc_bind_proxy::sc_bind_proxy(const sc_port_base &port) 45{ 46 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 47} 48 49const sc_bind_proxy SC_BIND_PROXY_NUL(*(const sc_port_base *)nullptr); 50 51sc_module::~sc_module() 52{ 53 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 54} 55 56const char * 57sc_module::kind() const 58{ 59 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 60 return ""; 61} 62 63const sc_bind_proxy SC_BIND_PROXY_NIL(*(const sc_port_base *)nullptr); 64 65void 66sc_module::operator () (const sc_bind_proxy &p001, 67 const sc_bind_proxy &p002, 68 const sc_bind_proxy &p003, 69 const sc_bind_proxy &p004, 70 const sc_bind_proxy &p005, 71 const sc_bind_proxy &p006, 72 const sc_bind_proxy &p007, 73 const sc_bind_proxy &p008, 74 const sc_bind_proxy &p009, 75 const sc_bind_proxy &p010, 76 const sc_bind_proxy &p011, 77 const sc_bind_proxy &p012, 78 const sc_bind_proxy &p013, 79 const sc_bind_proxy &p014, 80 const sc_bind_proxy &p015, 81 const sc_bind_proxy &p016, 82 const sc_bind_proxy &p017, 83 const sc_bind_proxy &p018, 84 const sc_bind_proxy &p019, 85 const sc_bind_proxy &p020, 86 const sc_bind_proxy &p021, 87 const sc_bind_proxy &p022, 88 const sc_bind_proxy &p023, 89 const sc_bind_proxy &p024, 90 const sc_bind_proxy &p025, 91 const sc_bind_proxy &p026, 92 const sc_bind_proxy &p027, 93 const sc_bind_proxy &p028, 94 const sc_bind_proxy &p029, 95 const sc_bind_proxy &p030, 96 const sc_bind_proxy &p031, 97 const sc_bind_proxy &p032, 98 const sc_bind_proxy &p033, 99 const sc_bind_proxy &p034, 100 const sc_bind_proxy &p035, 101 const sc_bind_proxy &p036, 102 const sc_bind_proxy &p037, 103 const sc_bind_proxy &p038, 104 const sc_bind_proxy &p039, 105 const sc_bind_proxy &p040, 106 const sc_bind_proxy &p041, 107 const sc_bind_proxy &p042, 108 const sc_bind_proxy &p043, 109 const sc_bind_proxy &p044, 110 const sc_bind_proxy &p045, 111 const sc_bind_proxy &p046, 112 const sc_bind_proxy &p047, 113 const sc_bind_proxy &p048, 114 const sc_bind_proxy &p049, 115 const sc_bind_proxy &p050, 116 const sc_bind_proxy &p051, 117 const sc_bind_proxy &p052, 118 const sc_bind_proxy &p053, 119 const sc_bind_proxy &p054, 120 const sc_bind_proxy &p055, 121 const sc_bind_proxy &p056, 122 const sc_bind_proxy &p057, 123 const sc_bind_proxy &p058, 124 const sc_bind_proxy &p059, 125 const sc_bind_proxy &p060, 126 const sc_bind_proxy &p061, 127 const sc_bind_proxy &p062, 128 const sc_bind_proxy &p063, 129 const sc_bind_proxy &p064) 130{ 131 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 132} 133 134const std::vector<sc_object *> & 135sc_module::get_child_objects() const 136{ 137 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 138 return *(const std::vector<sc_object *> *)nullptr; 139} 140 141const std::vector<sc_event *> & 142sc_module::get_child_events() const 143{ 144 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 145 return *(const std::vector<sc_event *> *)nullptr; 146} 147 148sc_module::sc_module(const sc_module_name &) 149{ 150 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 151} 152 153sc_module::sc_module() 154{ 155 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 156} 157 158void 159sc_module::reset_signal_is(const sc_in<bool> &, bool) 160{ 161 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 162} 163 164void 165sc_module::reset_signal_is(const sc_inout<bool> &, bool) 166{ 167 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 168} 169 170void 171sc_module::reset_signal_is(const sc_out<bool> &, bool) 172{ 173 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 174} 175 176void 177sc_module::reset_signal_is(const sc_signal_in_if<bool> &, bool) 178{ 179 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 180} 181 182 183void 184sc_module::async_reset_signal_is(const sc_in<bool> &, bool) 185{ 186 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 187} 188 189void 190sc_module::async_reset_signal_is(const sc_inout<bool> &, bool) 191{ 192 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 193} 194 195void 196sc_module::async_reset_signal_is(const sc_out<bool> &, bool) 197{ 198 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 199} 200 201void 202sc_module::async_reset_signal_is(const sc_signal_in_if<bool> &, bool) 203{ 204 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 205} 206 207 208void 209sc_module::dont_initialize() 210{ 211 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 212} 213 214void 215sc_module::set_stack_size(size_t) 216{ 217 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 218} 219 220 221void 222sc_module::next_trigger() 223{ 224 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 225} 226 227void 228sc_module::next_trigger(const sc_event &) 229{ 230 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 231} 232 233void 234sc_module::next_trigger(const sc_event_or_list &) 235{ 236 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 237} 238 239void 240sc_module::next_trigger(const sc_event_and_list &) 241{ 242 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 243} 244 245void 246sc_module::next_trigger(const sc_time &) 247{ 248 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 249} 250 251void 252sc_module::next_trigger(double, sc_time_unit) 253{ 254 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 255} 256 257void 258sc_module::next_trigger(const sc_time &, const sc_event &) 259{ 260 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 261} 262 263void 264sc_module::next_trigger(double, sc_time_unit, const sc_event &) 265{ 266 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 267} 268 269void 270sc_module::next_trigger(const sc_time &, const sc_event_or_list &) 271{ 272 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 273} 274 275void 276sc_module::next_trigger(double, sc_time_unit, const sc_event_or_list &) 277{ 278 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 279} 280 281void 282sc_module::next_trigger(const sc_time &, const sc_event_and_list &) 283{ 284 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 285} 286 287void 288sc_module::next_trigger(double, sc_time_unit, const sc_event_and_list &) 289{ 290 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 291} 292 293 294void 295sc_module::wait() 296{ 297 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 298} 299 300void 301sc_module::wait(int) 302{ 303 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 304} 305 306void 307sc_module::wait(const sc_event &) 308{ 309 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 310} 311 312void 313sc_module::wait(const sc_event_or_list &) 314{ 315 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 316} 317 318void 319sc_module::wait(const sc_event_and_list &) 320{ 321 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 322} 323 324void 325sc_module::wait(const sc_time &) 326{ 327 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 328} 329 330void 331sc_module::wait(double, sc_time_unit) 332{ 333 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 334} 335 336void 337sc_module::wait(const sc_time &, const sc_event &) 338{ 339 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 340} 341 342void 343sc_module::wait(double, sc_time_unit, const sc_event &) 344{ 345 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 346} 347 348void 349sc_module::wait(const sc_time &, const sc_event_or_list &) 350{ 351 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 352} 353 354void 355sc_module::wait(double, sc_time_unit, const sc_event_or_list &) 356{ 357 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 358} 359 360void 361sc_module::wait(const sc_time &, const sc_event_and_list &) 362{ 363 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 364} 365 366void 367sc_module::wait(double, sc_time_unit, const sc_event_and_list &) 368{ 369 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 370} 371 372 373void 374sc_module::halt() 375{ 376 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 377} 378 379 380void 381next_trigger() 382{ 383 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 384} 385 386void 387next_trigger(const sc_event &) 388{ 389 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 390} 391 392void 393next_trigger(const sc_event_or_list &) 394{ 395 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 396} 397 398void 399next_trigger(const sc_event_and_list &) 400{ 401 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 402} 403 404void 405next_trigger(const sc_time &) 406{ 407 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 408} 409 410void 411next_trigger(double, sc_time_unit) 412{ 413 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 414} 415 416void 417next_trigger(const sc_time &, const sc_event &) 418{ 419 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 420} 421 422void 423next_trigger(double, sc_time_unit, const sc_event &) 424{ 425 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 426} 427 428void 429next_trigger(const sc_time &, const sc_event_or_list &) 430{ 431 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 432} 433 434void 435next_trigger(double, sc_time_unit, const sc_event_or_list &) 436{ 437 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 438} 439 440void 441next_trigger(const sc_time &, const sc_event_and_list &) 442{ 443 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 444} 445 446void 447next_trigger(double, sc_time_unit, const sc_event_and_list &) 448{ 449 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 450} 451 452 453void 454wait() 455{ 456 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 457} 458 459void 460wait(int) 461{ 462 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 463} 464 465void 466wait(const sc_event &) 467{ 468 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 469} 470 471void 472wait(const sc_event_or_list &) 473{ 474 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 475} 476 477void 478wait(const sc_event_and_list &) 479{ 480 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 481} 482 483void 484wait(const sc_time &) 485{ 486 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 487} 488 489void 490wait(double, sc_time_unit) 491{ 492 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 493} 494 495void 496wait(const sc_time &, const sc_event &) 497{ 498 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 499} 500 501void 502wait(double, sc_time_unit, const sc_event &) 503{ 504 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 505} 506 507void 508wait(const sc_time &, const sc_event_or_list &) 509{ 510 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 511} 512 513void 514wait(double, sc_time_unit, const sc_event_or_list &) 515{ 516 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 517} 518 519void 520wait(const sc_time &, const sc_event_and_list &) 521{ 522 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 523} 524 525void 526wait(double, sc_time_unit, const sc_event_and_list &) 527{ 528 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 529} 530 531void 532halt() 533{ 534 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 535} 536 537const char * 538sc_gen_unique_name(const char *) 539{ 540 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 541 return ""; 542} 543 544bool 545sc_start_of_simulation_invoked() 546{ 547 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 548 return false; 549} 550 551bool 552sc_end_of_simulation_invoked() 553{ 554 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 555 return false; 556} 557 558sc_module * 559sc_module_sc_new(sc_module *mod) 560{ 561 static std::vector<std::unique_ptr<sc_module> > modules; 562 modules.emplace_back(mod); 563 return mod; 564} 565 566} // namespace sc_core 567