timing.hh (7520:67c670459d01) timing.hh (7745:434b5dfb87d9)
1/*
2 * Copyright (c) 2002-2005 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

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

135 {
136 protected:
137 TimingSimpleCPU *cpu;
138 Tick lat;
139
140 public:
141
142 CpuPort(const std::string &_name, TimingSimpleCPU *_cpu, Tick _lat)
1/*
2 * Copyright (c) 2002-2005 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

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

135 {
136 protected:
137 TimingSimpleCPU *cpu;
138 Tick lat;
139
140 public:
141
142 CpuPort(const std::string &_name, TimingSimpleCPU *_cpu, Tick _lat)
143 : Port(_name, _cpu), cpu(_cpu), lat(_lat)
143 : Port(_name, _cpu), cpu(_cpu), lat(_lat), retryEvent(this)
144 { }
145
146 bool snoopRangeSent;
147
148 protected:
149
150 virtual Tick recvAtomic(PacketPtr pkt);
151

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

156 virtual void getDeviceAddressRanges(AddrRangeList &resp,
157 bool &snoop)
158 { resp.clear(); snoop = false; }
159
160 struct TickEvent : public Event
161 {
162 PacketPtr pkt;
163 TimingSimpleCPU *cpu;
144 { }
145
146 bool snoopRangeSent;
147
148 protected:
149
150 virtual Tick recvAtomic(PacketPtr pkt);
151

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

156 virtual void getDeviceAddressRanges(AddrRangeList &resp,
157 bool &snoop)
158 { resp.clear(); snoop = false; }
159
160 struct TickEvent : public Event
161 {
162 PacketPtr pkt;
163 TimingSimpleCPU *cpu;
164 CpuPort *port;
164
165 TickEvent(TimingSimpleCPU *_cpu) : cpu(_cpu) {}
166 const char *description() const { return "Timing CPU tick"; }
167 void schedule(PacketPtr _pkt, Tick t);
168 };
169
165
166 TickEvent(TimingSimpleCPU *_cpu) : cpu(_cpu) {}
167 const char *description() const { return "Timing CPU tick"; }
168 void schedule(PacketPtr _pkt, Tick t);
169 };
170
171 EventWrapper<Port, &Port::sendRetry> retryEvent;
170 };
171
172 class IcachePort : public CpuPort
173 {
174 public:
175
176 IcachePort(TimingSimpleCPU *_cpu, Tick _lat)
177 : CpuPort(_cpu->name() + "-iport", _cpu, _lat), tickEvent(_cpu)

--- 124 unchanged lines hidden ---
172 };
173
174 class IcachePort : public CpuPort
175 {
176 public:
177
178 IcachePort(TimingSimpleCPU *_cpu, Tick _lat)
179 : CpuPort(_cpu->name() + "-iport", _cpu, _lat), tickEvent(_cpu)

--- 124 unchanged lines hidden ---