File: /usr/src/linux/include/asm-ia64/iosapic.h

1     #ifndef __ASM_IA64_IOSAPIC_H
2     #define __ASM_IA64_IOSAPIC_H
3     
4     #define	IOSAPIC_DEFAULT_ADDR	0xFEC00000
5     
6     #define	IOSAPIC_REG_SELECT	0x0
7     #define	IOSAPIC_WINDOW		0x10
8     #define	IOSAPIC_EOI		0x40
9     
10     #define	IOSAPIC_VERSION	0x1
11     
12     /*
13      * Redirection table entry
14      */
15     #define	IOSAPIC_RTE_LOW(i)	(0x10+i*2)
16     #define	IOSAPIC_RTE_HIGH(i)	(0x11+i*2)
17     
18     #define	IOSAPIC_DEST_SHIFT		16
19     
20     /*
21      * Delivery mode
22      */
23     #define	IOSAPIC_DELIVERY_SHIFT		8
24     #define	IOSAPIC_FIXED			0x0
25     #define	IOSAPIC_LOWEST_PRIORITY	0x1
26     #define	IOSAPIC_PMI			0x2
27     #define	IOSAPIC_NMI			0x4
28     #define	IOSAPIC_INIT			0x5
29     #define	IOSAPIC_EXTINT			0x7
30     
31     /*
32      * Interrupt polarity
33      */
34     #define	IOSAPIC_POLARITY_SHIFT		13
35     #define	IOSAPIC_POL_HIGH		0
36     #define	IOSAPIC_POL_LOW		1
37     
38     /*
39      * Trigger mode
40      */
41     #define	IOSAPIC_TRIGGER_SHIFT		15
42     #define	IOSAPIC_EDGE			0
43     #define	IOSAPIC_LEVEL			1
44     
45     /*
46      * Mask bit
47      */
48     #define	IOSAPIC_MASK_SHIFT		16
49     #define	IOSAPIC_UNMASK			0
50     #define	IOSAPIC_MSAK			1
51     
52     #ifndef __ASSEMBLY__
53     
54     extern void __init iosapic_init (unsigned long address, unsigned int base_irq,
55                                      int pcat_compat);
56     extern void iosapic_register_legacy_irq (unsigned long irq, unsigned long pin,
57     					 unsigned long polarity, unsigned long trigger);
58     extern void iosapic_pci_fixup (int);
59     
60     # endif /* !__ASSEMBLY__ */
61     #endif /* __ASM_IA64_IOSAPIC_H */
62