+class DefaultPeerPort : public Port
+{
+ protected:
+ void blowUp() const
+ {
+ fatal("%s: Unconnected port!", peer->name());
+ }
+
+ public:
+ DefaultPeerPort()
+ : Port("default_port", NULL)
+ { }
+
+ bool recvTiming(PacketPtr)
+ {
+ blowUp();
+ return false;
+ }
+
+ Tick recvAtomic(PacketPtr)
+ {
+ blowUp();
+ return 0;
+ }
+
+ void recvFunctional(PacketPtr)
+ {
+ blowUp();
+ }
+
+ void recvStatusChange(Status)
+ {
+ blowUp();
+ }
+
+ unsigned
+ deviceBlockSize() const
+ {
+ blowUp();
+ return 0;
+ }
+
+ void getDeviceAddressRanges(AddrRangeList &, bool &)
+ {
+ blowUp();
+ }
+
+ bool isDefaultPort() const { return true; }
+};
+
+DefaultPeerPort defaultPeerPort;
+
+Port::Port(const std::string &_name, MemObject *_owner)
+ : EventManager(_owner), portName(_name), peer(&defaultPeerPort),
+ owner(_owner)
+{
+}
+
+Port::~Port()
+{
+}
+