summaryrefslogtreecommitdiff
path: root/src/systemc/ext/core/sc_port.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/systemc/ext/core/sc_port.hh')
-rw-r--r--src/systemc/ext/core/sc_port.hh22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/systemc/ext/core/sc_port.hh b/src/systemc/ext/core/sc_port.hh
index 262ca382b..0f5a66189 100644
--- a/src/systemc/ext/core/sc_port.hh
+++ b/src/systemc/ext/core/sc_port.hh
@@ -30,9 +30,19 @@
#ifndef __SYSTEMC_EXT_CORE_SC_PORT_HH__
#define __SYSTEMC_EXT_CORE_SC_PORT_HH__
+#include <vector>
+
#include "sc_module.hh" // for sc_gen_unique_name
#include "sc_object.hh"
+namespace sc_gem5
+{
+
+class BindInfo;
+class PendingSensitivityPort;
+
+};
+
namespace sc_core
{
@@ -48,11 +58,13 @@ enum sc_port_policy
class sc_port_base : public sc_object
{
public:
- sc_port_base(const char *name, int n, sc_port_policy p) : sc_object(name)
- {}
+ sc_port_base(const char *name, int n, sc_port_policy p);
void warn_unimpl(const char *func) const;
+ int maxSize() const;
+ int size() const;
+
protected:
// Implementation defined, but depended on by the tests.
void bind(sc_interface &);
@@ -61,6 +73,12 @@ class sc_port_base : public sc_object
// Implementation defined, but depended on by the tests.
virtual int vbind(sc_interface &) = 0;
virtual int vbind(sc_port_base &) = 0;
+
+ private:
+ friend class ::sc_gem5::PendingSensitivityPort;
+
+ std::vector<::sc_gem5::BindInfo *> _gem5BindInfo;
+ int _maxSize;
};
template <class IF>