Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.13 116 lines 3.1 kB view raw
1#ifndef __ASM_IA64_IOSAPIC_H 2#define __ASM_IA64_IOSAPIC_H 3 4#define IOSAPIC_REG_SELECT 0x0 5#define IOSAPIC_WINDOW 0x10 6#define IOSAPIC_EOI 0x40 7 8#define IOSAPIC_VERSION 0x1 9 10/* 11 * Redirection table entry 12 */ 13#define IOSAPIC_RTE_LOW(i) (0x10+i*2) 14#define IOSAPIC_RTE_HIGH(i) (0x11+i*2) 15 16#define IOSAPIC_DEST_SHIFT 16 17 18/* 19 * Delivery mode 20 */ 21#define IOSAPIC_DELIVERY_SHIFT 8 22#define IOSAPIC_FIXED 0x0 23#define IOSAPIC_LOWEST_PRIORITY 0x1 24#define IOSAPIC_PMI 0x2 25#define IOSAPIC_NMI 0x4 26#define IOSAPIC_INIT 0x5 27#define IOSAPIC_EXTINT 0x7 28 29/* 30 * Interrupt polarity 31 */ 32#define IOSAPIC_POLARITY_SHIFT 13 33#define IOSAPIC_POL_HIGH 0 34#define IOSAPIC_POL_LOW 1 35 36/* 37 * Trigger mode 38 */ 39#define IOSAPIC_TRIGGER_SHIFT 15 40#define IOSAPIC_EDGE 0 41#define IOSAPIC_LEVEL 1 42 43/* 44 * Mask bit 45 */ 46 47#define IOSAPIC_MASK_SHIFT 16 48#define IOSAPIC_MASK (1<<IOSAPIC_MASK_SHIFT) 49 50#ifndef __ASSEMBLY__ 51 52#ifdef CONFIG_IOSAPIC 53 54#define NR_IOSAPICS 256 55 56static inline unsigned int iosapic_read(char __iomem *iosapic, unsigned int reg) 57{ 58 writel(reg, iosapic + IOSAPIC_REG_SELECT); 59 return readl(iosapic + IOSAPIC_WINDOW); 60} 61 62static inline void iosapic_write(char __iomem *iosapic, unsigned int reg, u32 val) 63{ 64 writel(reg, iosapic + IOSAPIC_REG_SELECT); 65 writel(val, iosapic + IOSAPIC_WINDOW); 66} 67 68static inline void iosapic_eoi(char __iomem *iosapic, u32 vector) 69{ 70 writel(vector, iosapic + IOSAPIC_EOI); 71} 72 73extern void __init iosapic_system_init (int pcat_compat); 74extern int __devinit iosapic_init (unsigned long address, 75 unsigned int gsi_base); 76#ifdef CONFIG_HOTPLUG 77extern int iosapic_remove (unsigned int gsi_base); 78#else 79#define iosapic_remove(gsi_base) (-EINVAL) 80#endif /* CONFIG_HOTPLUG */ 81extern int gsi_to_vector (unsigned int gsi); 82extern int gsi_to_irq (unsigned int gsi); 83extern void iosapic_enable_intr (unsigned int vector); 84extern int iosapic_register_intr (unsigned int gsi, unsigned long polarity, 85 unsigned long trigger); 86#ifdef CONFIG_ACPI_DEALLOCATE_IRQ 87extern void iosapic_unregister_intr (unsigned int irq); 88#endif 89extern void __init iosapic_override_isa_irq (unsigned int isa_irq, unsigned int gsi, 90 unsigned long polarity, 91 unsigned long trigger); 92extern int __init iosapic_register_platform_intr (u32 int_type, 93 unsigned int gsi, 94 int pmi_vector, 95 u16 eid, u16 id, 96 unsigned long polarity, 97 unsigned long trigger); 98extern unsigned int iosapic_version (char __iomem *addr); 99 100extern void iosapic_pci_fixup (int); 101#ifdef CONFIG_NUMA 102extern void __devinit map_iosapic_to_node (unsigned int, int); 103#endif 104#else 105#define iosapic_system_init(pcat_compat) do { } while (0) 106#define iosapic_init(address,gsi_base) (-EINVAL) 107#define iosapic_remove(gsi_base) (-ENODEV) 108#define iosapic_register_intr(gsi,polarity,trigger) (gsi) 109#define iosapic_unregister_intr(irq) do { } while (0) 110#define iosapic_override_isa_irq(isa_irq,gsi,polarity,trigger) do { } while (0) 111#define iosapic_register_platform_intr(type,gsi,pmi,eid,id, \ 112 polarity,trigger) (gsi) 113#endif 114 115# endif /* !__ASSEMBLY__ */ 116#endif /* __ASM_IA64_IOSAPIC_H */