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 --- 19 unchanged lines hidden (view full) --- 28 */ 29 30#include <sstream> 31 32#include "base/logging.hh" 33#include "systemc/core/module.hh" 34#include "systemc/core/port.hh" 35#include "systemc/core/scheduler.hh" |
36#include "systemc/ext/channel/messages.hh" |
37#include "systemc/ext/core/sc_main.hh" 38#include "systemc/ext/core/sc_port.hh" 39 40namespace sc_core 41{ 42 43namespace 44{ --- 12 unchanged lines hidden (view full) --- 57} 58 59} 60 61sc_port_base::sc_port_base(const char *n, int max_size, sc_port_policy p) : 62 sc_object(n), _gem5Port(nullptr) 63{ 64 if (sc_is_running()) { |
65 reportError(SC_ID_INSERT_PORT_, "simulation running", |
66 name(), kind()); 67 } 68 if (::sc_gem5::scheduler.elaborationDone()) { |
69 reportError(SC_ID_INSERT_PORT_, "elaboration done", |
70 name(), kind()); 71 } 72 73 auto m = sc_gem5::pickParentModule(); |
74 if (!m) 75 reportError(SC_ID_PORT_OUTSIDE_MODULE_, nullptr, name(), kind()); 76 else |
77 m->ports.push_back(this); |
78 _gem5Port = new ::sc_gem5::Port(this, max_size); 79} 80 81sc_port_base::~sc_port_base() 82{ 83 delete _gem5Port; 84} 85 --- 23 unchanged lines hidden --- |