Go to the documentation of this file.
28 #ifndef __SYSTEMC_EXT_CORE_SC_PORT_HH__
29 #define __SYSTEMC_EXT_CORE_SC_PORT_HH__
34 #include "../channel/messages.hh"
35 #include "../utils/sc_report_handler.hh"
85 const char *
kind()
const {
return "sc_port_base"; }
92 friend class ::sc_gem5::Module;
103 void report_error(
const char *
id,
const char *add_msg)
const;
106 friend class ::sc_gem5::Port;
107 friend class ::sc_gem5::Kernel;
149 if (n < 0 || n >=
size()) {
158 if (n < 0 || n >=
size()) {
198 IF *
interface = dynamic_cast<IF *>(&
i);
220 if (n < 0 || n >=
size()) {
229 IF *
interface = dynamic_cast<IF *>(iface);
234 "interface already bound to port");
248 template <
class IF,
int N=1, sc_port_policy P=SC_ONE_OR_MORE_BOUND>
290 virtual const char *
kind()
const override {
return "sc_port"; }
302 #endif //__SYSTEMC_EXT_CORE_SC_PORT_HH__
sc_port(const IF &interface)
int vbind(sc_port_base &pb) override
void warn_port_constructor() const
virtual sc_interface * _gem5Interface(int n) const =0
int vbind(sc_interface &i) override
void start_of_simulation() override
void before_end_of_elaboration() override
void end_of_elaboration() override
const char * _ifTypeName() const override
std::vector< sc_trace_params * > sc_trace_params_vec
virtual const char * kind() const override
void report_error(const char *id, const char *add_msg) const
const char SC_ID_GET_IF_[]
sc_port_b(const char *name, int n, sc_port_policy p)
sc_port_base(const char *name, int n, sc_port_policy p)
virtual void start_of_simulation()=0
virtual void _gem5AddInterface(sc_interface *i)=0
void bind(sc_interface &)
virtual const char * _ifTypeName() const =0
sc_port(const char *name, const IF &interface)
sc_port(const char *name, sc_port_b< IF > &parent)
sc_port_b(int n, sc_port_policy p)
virtual int vbind(sc_interface &)=0
void end_of_simulation() override
sc_interface * _gem5Interface(int n) const override
sc_port(const char *name, sc_port< IF, N, P > &parent)
sc_port_b< IF > & operator=(const sc_port_b< IF > &)
Ports are used to interface objects to each other.
const char * kind() const
virtual void bind(sc_port_b< IF > &p)
sc_port(const sc_port< IF, N, P > &)
sc_port_b(const sc_port_b< IF > &)
const char * sc_gen_unique_name(const char *seed)
::sc_gem5::Port * _gem5Port
sc_port< IF, N, P > & operator=(const sc_port< IF, N, P > &)
sc_port(const char *name)
void _gem5AddInterface(sc_interface *iface) override
virtual sc_port_policy _portPolicy() const =0
const char * name() const
sc_trace_params(sc_trace_file *tf, const std::string &name)
virtual sc_port_policy _portPolicy() const override
const sc_interface * get_interface() const
virtual void end_of_elaboration()=0
virtual void before_end_of_elaboration()=0
std::vector< IF * > _interfaces
sc_port(sc_port_b< IF > &parent)
virtual void end_of_simulation()=0
sc_port(sc_port< IF, N, P > &parent)
sc_interface * get_interface()
const char SC_ID_BIND_IF_TO_PORT_[]
Generated on Wed Sep 30 2020 14:02:15 for gem5 by doxygen 1.8.17