Go to the documentation of this file.
38 #ifndef __DEV_PCI_HOST_HH__
39 #define __DEV_PCI_HOST_HH__
45 struct GenericPciHostParams;
93 friend class ::PciHost;
109 const std::string
name()
const;
328 #endif // __DEV_PCI_HOST_HH__
Tick read(PacketPtr pkt) override
Pure virtual function that the device must implement.
GenericPciHost(const GenericPciHostParams *p)
void postInt(const PciBusAddr &addr, PciIntPin pin) override
Post an interrupt to the CPU.
PciDevice * getDevice(const PciBusAddr &addr)
Retrieve a PCI device from its bus address.
void operator=(const DeviceInterface &)=delete
void postInt()
Post a PCI interrupt to the CPU.
virtual void clearInt(const PciBusAddr &bus_addr, PciIntPin pin)=0
Post an interrupt to the CPU.
Callback interface from PCI devices to the host.
uint64_t Tick
Tick count type.
AddrRangeList getAddrRanges() const override
Every PIO device is obliged to provide an implementation that returns the address ranges the device r...
Tick write(PacketPtr pkt) override
Pure virtual function that the device must implement.
void clearInt(const PciBusAddr &addr, PciIntPin pin) override
Post an interrupt to the CPU.
std::map< PciBusAddr, PciDevice * > devices
Currently registered PCI devices.
This device is the base class which all devices senstive to an address range inherit from.
void clearInt()
Clear a posted PCI interrupt.
Addr memAddr(Addr addr) const
Calculate the physical address of a non-prefetchable memory location in the PCI address space.
PciHost(const PciHostParams *p)
Addr pioAddr(Addr addr) const
Calculate the physical address of an IO location on the PCI bus.
Configurable generic PCI host interface.
const std::string name() const
Addr pioAddr(const PciBusAddr &bus_addr, Addr pci_addr) const override
Calculate the physical address of an IO location on the PCI bus.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
virtual Addr dmaAddr(const PciBusAddr &bus_addr, Addr pci_addr) const =0
Calculate the physical address of a prefetchable memory location in the PCI address space.
virtual DeviceInterface registerDevice(PciDevice *device, PciBusAddr bus_addr, PciIntPin pin)
Register a PCI device with the host.
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
virtual ~GenericPciHost()
virtual Addr pioAddr(const PciBusAddr &bus_addr, Addr pci_addr) const =0
Calculate the physical address of an IO location on the PCI bus.
virtual void postInt(const PciBusAddr &bus_addr, PciIntPin pin)=0
Post an interrupt to the CPU.
const uint8_t confDeviceBits
virtual std::pair< PciBusAddr, Addr > decodeAddress(Addr address)
Decode a configuration space address.
virtual Addr memAddr(const PciBusAddr &bus_addr, Addr pci_addr) const =0
Calculate the physical address of a non-prefetchable memory location in the PCI address space.
The PCI host describes the interface between PCI devices and a simulated system.
Addr dmaAddr(const PciBusAddr &bus_addr, Addr pci_addr) const override
Calculate the physical address of a prefetchable memory location in the PCI address space.
Addr memAddr(const PciBusAddr &bus_addr, Addr pci_addr) const override
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.
const PciIntPin interruptPin
virtual uint32_t mapPciInterrupt(const PciBusAddr &bus_addr, PciIntPin pin) const
PCI device, base implementation is only config space.
Generated on Wed Sep 30 2020 14:02:11 for gem5 by doxygen 1.8.17