Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | /* |
2 | ** This file is private to iosapic driver. | |
3 | ** If stuff needs to be used by another driver, move it to a common file. | |
4 | ** | |
5 | ** WARNING: fields most data structures here are ordered to make sure | |
6 | ** they pack nicely for 64-bit compilation. (ie sizeof(long) == 8) | |
7 | */ | |
8 | ||
9 | ||
10 | /* | |
11 | ** I/O SAPIC init function | |
12 | ** Caller knows where an I/O SAPIC is. LBA has an integrated I/O SAPIC. | |
13 | ** Call setup as part of per instance initialization. | |
14 | ** (ie *not* init_module() function unless only one is present.) | |
15 | ** fixup_irq is to initialize PCI IRQ line support and | |
16 | ** virtualize pcidev->irq value. To be called by pci_fixup_bus(). | |
17 | */ | |
18 | extern void *iosapic_register(unsigned long hpa); | |
19 | extern int iosapic_fixup_irq(void *obj, struct pci_dev *pcidev); | |
20 | ||
21 | ||
22 | #ifdef __IA64__ | |
23 | /* | |
24 | ** PA: PIB (Processor Interrupt Block) is handled by Runway bus adapter. | |
25 | ** and is hardcoded to 0xfeeNNNN0 where NNNN is id_eid field. | |
26 | ** | |
27 | ** IA64: PIB is handled by "Local SAPIC" (integrated in the processor). | |
28 | */ | |
29 | struct local_sapic_info { | |
30 | struct local_sapic_info *lsi_next; /* point to next CPU info */ | |
31 | int *lsi_cpu_id; /* point to logical CPU id */ | |
32 | unsigned long *lsi_id_eid; /* point to IA-64 CPU id */ | |
33 | int *lsi_status; /* point to CPU status */ | |
34 | void *lsi_private; /* point to special info */ | |
35 | }; | |
36 | ||
37 | /* | |
38 | ** "root" data structure which ties everything together. | |
39 | ** Should always be able to start with sapic_root and locate | |
40 | ** the desired information. | |
41 | */ | |
42 | struct sapic_info { | |
43 | struct sapic_info *si_next; /* info is per cell */ | |
44 | int si_cellid; /* cell id */ | |
45 | unsigned int si_status; /* status */ | |
46 | char *si_pib_base; /* intr blk base address */ | |
47 | local_sapic_info_t *si_local_info; | |
48 | io_sapic_info_t *si_io_info; | |
49 | extint_info_t *si_extint_info;/* External Intr info */ | |
50 | }; | |
51 | ||
52 | #endif /* IA64 */ | |
53 |