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), 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; |
164 CpuPort *port; |
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; |
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 --- |