interrupts.hh (11168:f98eb2da15a4) | interrupts.hh (11175:2324ed5fa9f4) |
---|---|
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 --- 198 unchanged lines hidden (view full) --- 207 params() const 208 { 209 return dynamic_cast<const Params *>(_params); 210 } 211 212 /* 213 * Initialize this object by registering it with the IO APIC. 214 */ | 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 --- 198 unchanged lines hidden (view full) --- 207 params() const 208 { 209 return dynamic_cast<const Params *>(_params); 210 } 211 212 /* 213 * Initialize this object by registering it with the IO APIC. 214 */ |
215 void init(); | 215 void init() override; |
216 217 /* 218 * Functions to interact with the interrupt port from IntDevice. 219 */ | 216 217 /* 218 * Functions to interact with the interrupt port from IntDevice. 219 */ |
220 Tick read(PacketPtr pkt); 221 Tick write(PacketPtr pkt); 222 Tick recvMessage(PacketPtr pkt); 223 Tick recvResponse(PacketPtr pkt); | 220 Tick read(PacketPtr pkt) override; 221 Tick write(PacketPtr pkt) override; 222 Tick recvMessage(PacketPtr pkt) override; 223 Tick recvResponse(PacketPtr pkt) override; |
224 225 bool 226 triggerTimerInterrupt() 227 { 228 LVTEntry entry = regs[APIC_LVT_TIMER]; 229 if (!entry.masked) 230 requestInterrupt(entry.vector, entry.deliveryMode, entry.trigger); 231 return entry.periodic; 232 } 233 | 224 225 bool 226 triggerTimerInterrupt() 227 { 228 LVTEntry entry = regs[APIC_LVT_TIMER]; 229 if (!entry.masked) 230 requestInterrupt(entry.vector, entry.deliveryMode, entry.trigger); 231 return entry.periodic; 232 } 233 |
234 AddrRangeList getIntAddrRange() const; | 234 AddrRangeList getIntAddrRange() const override; |
235 236 BaseMasterPort &getMasterPort(const std::string &if_name, | 235 236 BaseMasterPort &getMasterPort(const std::string &if_name, |
237 PortID idx = InvalidPortID) | 237 PortID idx = InvalidPortID) override |
238 { 239 if (if_name == "int_master") { 240 return intMasterPort; 241 } 242 return BasicPioDevice::getMasterPort(if_name, idx); 243 } 244 245 BaseSlavePort &getSlavePort(const std::string &if_name, | 238 { 239 if (if_name == "int_master") { 240 return intMasterPort; 241 } 242 return BasicPioDevice::getMasterPort(if_name, idx); 243 } 244 245 BaseSlavePort &getSlavePort(const std::string &if_name, |
246 PortID idx = InvalidPortID) | 246 PortID idx = InvalidPortID) override |
247 { 248 if (if_name == "int_slave") { 249 return intSlavePort; 250 } 251 return BasicPioDevice::getSlavePort(if_name, idx); 252 } 253 254 /* --- 70 unchanged lines hidden --- | 247 { 248 if (if_name == "int_slave") { 249 return intSlavePort; 250 } 251 return BasicPioDevice::getSlavePort(if_name, idx); 252 } 253 254 /* --- 70 unchanged lines hidden --- |