1 #ifndef __PIRTABLE_H
2 #define __PIRTABLE_H
3 
4 #include "types.h" // u32
5 
6 struct link_info {
7     u8 link;
8     u16 bitmap;
9 } PACKED;
10 
11 struct pir_slot {
12     u8 bus;
13     u8 dev;
14     struct link_info links[4];
15     u8 slot_nr;
16     u8 reserved;
17 } PACKED;
18 
19 struct pir_header {
20     u32 signature;
21     u16 version;
22     u16 size;
23     u8 router_bus;
24     u8 router_devfunc;
25     u16 exclusive_irqs;
26     u32 compatible_devid;
27     u32 miniport_data;
28     u8 reserved[11];
29     u8 checksum;
30     struct pir_slot slots[0];
31 } PACKED;
32 
33 #define PIR_SIGNATURE 0x52495024 // $PIR
34 
35 #endif // pirtable.h
36