RubyPort.hh (8948:e95ee70f876c) RubyPort.hh (8975:7f36d4436074)
1/*
2 * Copyright (c) 2012 ARM Limited
3 * All rights reserved.
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 48 unchanged lines hidden (view full) ---

57
58class RubyPort : public MemObject
59{
60 public:
61 class M5Port : public QueuedSlavePort
62 {
63 private:
64
1/*
2 * Copyright (c) 2012 ARM Limited
3 * All rights reserved.
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 48 unchanged lines hidden (view full) ---

57
58class RubyPort : public MemObject
59{
60 public:
61 class M5Port : public QueuedSlavePort
62 {
63 private:
64
65 PacketQueue queue;
65 SlavePacketQueue queue;
66 RubyPort *ruby_port;
67 RubySystem* ruby_system;
68 bool _onRetryList;
69 bool access_phys_mem;
70
71 public:
72 M5Port(const std::string &_name, RubyPort *_port,
73 RubySystem*_system, bool _access_phys_mem);

--- 4 unchanged lines hidden (view full) ---

78
79 bool onRetryList()
80 { return _onRetryList; }
81
82 void onRetryList(bool newVal)
83 { _onRetryList = newVal; }
84
85 protected:
66 RubyPort *ruby_port;
67 RubySystem* ruby_system;
68 bool _onRetryList;
69 bool access_phys_mem;
70
71 public:
72 M5Port(const std::string &_name, RubyPort *_port,
73 RubySystem*_system, bool _access_phys_mem);

--- 4 unchanged lines hidden (view full) ---

78
79 bool onRetryList()
80 { return _onRetryList; }
81
82 void onRetryList(bool newVal)
83 { _onRetryList = newVal; }
84
85 protected:
86 virtual bool recvTiming(PacketPtr pkt);
86 virtual bool recvTimingReq(PacketPtr pkt);
87 virtual Tick recvAtomic(PacketPtr pkt);
88 virtual void recvFunctional(PacketPtr pkt);
89 virtual AddrRangeList getAddrRanges();
90
91 private:
92 bool isPhysMemAddress(Addr addr);
93 bool doFunctionalRead(PacketPtr pkt);
94 bool doFunctionalWrite(PacketPtr pkt);
95 };
96
97 friend class M5Port;
98
99 class PioPort : public QueuedMasterPort
100 {
101 private:
102
87 virtual Tick recvAtomic(PacketPtr pkt);
88 virtual void recvFunctional(PacketPtr pkt);
89 virtual AddrRangeList getAddrRanges();
90
91 private:
92 bool isPhysMemAddress(Addr addr);
93 bool doFunctionalRead(PacketPtr pkt);
94 bool doFunctionalWrite(PacketPtr pkt);
95 };
96
97 friend class M5Port;
98
99 class PioPort : public QueuedMasterPort
100 {
101 private:
102
103 PacketQueue queue;
103 MasterPacketQueue queue;
104
105 RubyPort *ruby_port;
106
107 public:
108 PioPort(const std::string &_name, RubyPort *_port);
109 bool sendNextCycle(PacketPtr pkt);
110
111 protected:
104
105 RubyPort *ruby_port;
106
107 public:
108 PioPort(const std::string &_name, RubyPort *_port);
109 bool sendNextCycle(PacketPtr pkt);
110
111 protected:
112 virtual bool recvTiming(PacketPtr pkt);
112 virtual bool recvTimingResp(PacketPtr pkt);
113 };
114
115 friend class PioPort;
116
117 struct SenderState : public Packet::SenderState
118 {
119 M5Port* port;
120 Packet::SenderState *saved;

--- 76 unchanged lines hidden ---
113 };
114
115 friend class PioPort;
116
117 struct SenderState : public Packet::SenderState
118 {
119 M5Port* port;
120 Packet::SenderState *saved;

--- 76 unchanged lines hidden ---