RubyPort.hh (8874:9e2a4cf89be6) RubyPort.hh (8914:8c3bd7bea667)
1/*
2 * Copyright (c) 2009 Advanced Micro Devices, Inc.
3 * Copyright (c) 2011 Mark D. Hill and David A. Wood
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met: redistributions of source code must retain the above copyright

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

41#include "params/RubyPort.hh"
42
43class MessageBuffer;
44class AbstractController;
45
46class RubyPort : public MemObject
47{
48 public:
1/*
2 * Copyright (c) 2009 Advanced Micro Devices, Inc.
3 * Copyright (c) 2011 Mark D. Hill and David A. Wood
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met: redistributions of source code must retain the above copyright

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

41#include "params/RubyPort.hh"
42
43class MessageBuffer;
44class AbstractController;
45
46class RubyPort : public MemObject
47{
48 public:
49 class M5Port : public SimpleTimingPort
49 class M5Port : public QueuedPort
50 {
51 private:
50 {
51 private:
52
53 PacketQueue queue;
52 RubyPort *ruby_port;
53 RubySystem* ruby_system;
54 bool _onRetryList;
55 bool access_phys_mem;
56
57 public:
58 M5Port(const std::string &_name, RubyPort *_port,
59 RubySystem*_system, bool _access_phys_mem);

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

76 private:
77 bool isPhysMemAddress(Addr addr);
78 bool doFunctionalRead(PacketPtr pkt);
79 bool doFunctionalWrite(PacketPtr pkt);
80 };
81
82 friend class M5Port;
83
54 RubyPort *ruby_port;
55 RubySystem* ruby_system;
56 bool _onRetryList;
57 bool access_phys_mem;
58
59 public:
60 M5Port(const std::string &_name, RubyPort *_port,
61 RubySystem*_system, bool _access_phys_mem);

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

78 private:
79 bool isPhysMemAddress(Addr addr);
80 bool doFunctionalRead(PacketPtr pkt);
81 bool doFunctionalWrite(PacketPtr pkt);
82 };
83
84 friend class M5Port;
85
84 class PioPort : public SimpleTimingPort
86 class PioPort : public QueuedPort
85 {
86 private:
87 {
88 private:
89
90 PacketQueue queue;
91
87 RubyPort *ruby_port;
88
89 public:
90 PioPort(const std::string &_name, RubyPort *_port);
91 bool sendNextCycle(PacketPtr pkt);
92
93 protected:
94 virtual bool recvTiming(PacketPtr pkt);
95 virtual Tick recvAtomic(PacketPtr pkt);
92 RubyPort *ruby_port;
93
94 public:
95 PioPort(const std::string &_name, RubyPort *_port);
96 bool sendNextCycle(PacketPtr pkt);
97
98 protected:
99 virtual bool recvTiming(PacketPtr pkt);
100 virtual Tick recvAtomic(PacketPtr pkt);
101 virtual void recvFunctional(PacketPtr pkt) { }
96 };
97
98 friend class PioPort;
99
100 struct SenderState : public Packet::SenderState
101 {
102 M5Port* port;
103 Packet::SenderState *saved;

--- 76 unchanged lines hidden ---
102 };
103
104 friend class PioPort;
105
106 struct SenderState : public Packet::SenderState
107 {
108 M5Port* port;
109 Packet::SenderState *saved;

--- 76 unchanged lines hidden ---