qemu/hw/pci_internals.h
<<
>>
Prefs
   1#ifndef QEMU_PCI_INTERNALS_H
   2#define QEMU_PCI_INTERNALS_H
   3
   4/*
   5 * This header files is private to pci.c and pci_bridge.c
   6 * So following structures are opaque to others and shouldn't be
   7 * accessed.
   8 *
   9 * For pci-to-pci bridge needs to include this header file to embed
  10 * PCIBridge in its structure or to get sizeof(PCIBridge),
  11 * However, they shouldn't access those following members directly.
  12 * Use accessor function in pci.h, pci_bridge.h
  13 */
  14
  15extern struct BusInfo pci_bus_info;
  16
  17struct PCIBus {
  18    BusState qbus;
  19    int devfn_min;
  20    pci_set_irq_fn set_irq;
  21    pci_map_irq_fn map_irq;
  22    pci_hotplug_fn hotplug;
  23    DeviceState *hotplug_qdev;
  24    void *irq_opaque;
  25    PCIDevice *devices[256];
  26    PCIDevice *parent_dev;
  27    target_phys_addr_t mem_base;
  28
  29    QLIST_HEAD(, PCIBus) child; /* this will be replaced by qdev later */
  30    QLIST_ENTRY(PCIBus) sibling;/* this will be replaced by qdev later */
  31
  32    /* The bus IRQ state is the logical OR of the connected devices.
  33       Keep a count of the number of devices with raised IRQs.  */
  34    int nirq;
  35    int *irq_count;
  36};
  37
  38struct PCIBridge {
  39    PCIDevice dev;
  40
  41    /* private member */
  42    PCIBus sec_bus;
  43    pci_map_irq_fn map_irq;
  44    const char *bus_name;
  45};
  46
  47#endif /* QEMU_PCI_INTERNALS_H */
  48