|
gem5 [DEVELOP-FOR-25.1]
|
Callback interface from PCI devices to the upstream. More...
#include <upstream.hh>
Public Member Functions | |
| DeviceInterface ()=delete | |
| void | operator= (const DeviceInterface &)=delete |
| const std::string | name () const |
| void | postInt () |
| Post a PCI interrupt to the CPU. | |
| void | clearInt () |
| Clear a posted PCI interrupt. | |
| AddrRange | configRange () const |
| Calculate the physical address range of the PCI device configuration space. | |
| Addr | pioAddr (Addr addr) const |
| Calculate the physical address of an IO location on the PCI bus. | |
| Addr | memAddr (Addr addr) const |
| Calculate the physical address of a non-prefetchable memory location in the PCI address space. | |
| Addr | dmaAddr (Addr addr) const |
| Calculate the physical address of a prefetchable memory location in the PCI address space. | |
Protected Member Functions | |
| DeviceInterface (PciUpstream &upstream, const PciDevAddr &dev_addr, PciIntPin pin) | |
| Instantiate a device interface. | |
Protected Attributes | |
| PciUpstream & | upstream |
| const PciDevAddr | devAddr |
| const PciIntPin | interruptPin |
Friends | |
| class | gem5::PciUpstream |
Callback interface from PCI devices to the upstream.
Devices get an instance of this object by calling PciUpstream::registerDevice() on their direct upstream.
Definition at line 111 of file upstream.hh.
|
protected |
Instantiate a device interface.
| upstream | PCI upstream that this device belongs to. |
| dev_addr | The device's position on the PCI bus |
| pin | Interrupt pin |
Definition at line 112 of file upstream.cc.
References devAddr, gem5::PciUpstream, interruptPin, and upstream.
Referenced by operator=().
|
delete |
| void gem5::PciUpstream::DeviceInterface::clearInt | ( | ) |
Clear a posted PCI interrupt.
Definition at line 134 of file upstream.cc.
References devAddr, DPRINTF, gem5::PciUpstream, interruptPin, and upstream.
|
inline |
Calculate the physical address range of the PCI device configuration space.
Definition at line 149 of file upstream.hh.
Calculate the physical address of a prefetchable memory location in the PCI address space.
| addr | Address in the PCI DMA memory address space |
Definition at line 188 of file upstream.hh.
References gem5::X86ISA::addr, devAddr, and upstream.
Calculate the physical address of a non-prefetchable memory location in the PCI address space.
| addr | Address in the PCI memory address space |
Definition at line 175 of file upstream.hh.
References gem5::X86ISA::addr, devAddr, and upstream.
Referenced by gem5::PciMemBar::upper(), and gem5::PciMemBar::write().
| const std::string gem5::PciUpstream::DeviceInterface::name | ( | ) | const |
Definition at line 119 of file upstream.cc.
References gem5::csprintf(), devAddr, and upstream.
|
delete |
References DeviceInterface().
Calculate the physical address of an IO location on the PCI bus.
| addr | Address in the PCI IO address space |
Definition at line 162 of file upstream.hh.
References gem5::X86ISA::addr, devAddr, and upstream.
Referenced by gem5::PciIoBar::write(), and gem5::PciLegacyIoBar::write().
| void gem5::PciUpstream::DeviceInterface::postInt | ( | ) |
Post a PCI interrupt to the CPU.
Definition at line 126 of file upstream.cc.
References devAddr, DPRINTF, gem5::PciUpstream, interruptPin, and upstream.
|
friend |
Definition at line 113 of file upstream.hh.
References gem5::PciUpstream, and upstream.
Referenced by clearInt(), DeviceInterface(), gem5::PciUpstream, and postInt().
|
protected |
Definition at line 196 of file upstream.hh.
Referenced by clearInt(), configRange(), DeviceInterface(), dmaAddr(), memAddr(), name(), pioAddr(), and postInt().
|
protected |
Definition at line 197 of file upstream.hh.
Referenced by clearInt(), DeviceInterface(), and postInt().
|
protected |
Definition at line 194 of file upstream.hh.
Referenced by clearInt(), configRange(), DeviceInterface(), dmaAddr(), gem5::PciUpstream, memAddr(), name(), pioAddr(), and postInt().