struct irq_info {
u8 bus, devfn; /* Bus, device and function */ struct {
u8 link; /* IRQ line ID, chipset dependent,
0 = not routed */
u16 bitmap; /* Available IRQs */
} __attribute__((packed)) irq[4];
u8 slot; /* Slot number, 0=onboard */
u8 rfu;
} __attribute__((packed));
struct irq_routing_table {
u32 signature; /* PIRQ_SIGNATURE should be here */
u16 version; /* PIRQ_VERSION */
u16 size; /* Table size in bytes */
u8 rtr_bus, rtr_devfn; /* Where the interrupt router lies */
u16 exclusive_irqs; /* IRQs devoted exclusively to
PCI usage */
u16 rtr_vendor, rtr_device; /* Vendor and device ID of
interrupt router */
u32 miniport_data; /* Crap */
u8 rfu[11];
u8 checksum; /* Modulo 256 checksum must give 0 */ struct irq_info slots[];
} __attribute__((packed));
struct irt_routing_table {
u32 signature; /* IRT_SIGNATURE should be here */
u8 size; /* Number of entries provided */
u8 used; /* Number of entries actually used */
u16 exclusive_irqs; /* IRQs devoted exclusively to
PCI usage */ struct irq_info slots[];
} __attribute__((packed));
struct pci_raw_ops { int (*read)(unsignedint domain, unsignedint bus, unsignedint devfn, int reg, int len, u32 *val); int (*write)(unsignedint domain, unsignedint bus, unsignedint devfn, int reg, int len, u32 val);
};
/* * On AMD Fam10h CPUs, all PCI MMIO configuration space accesses must use * %eax. No other source or target registers may be used. The following * mmio_config_* accessors enforce this. See "BIOS and Kernel Developer's * Guide (BKDG) For AMD Family 10h Processors", rev. 3.48, sec 2.11.1, * "MMIO Configuration Coding Requirements".
*/ staticinlineunsignedchar mmio_config_readb(void __iomem *pos)
{
u8 val; asmvolatile("movb (%1),%%al" : "=a" (val) : "r" (pos)); return val;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.