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.19-rc3 112 lines 3.0 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 int iosapic_register_intr (unsigned int gsi, unsigned long polarity, 84 unsigned long trigger); 85extern void iosapic_unregister_intr (unsigned int irq); 86extern void __init iosapic_override_isa_irq (unsigned int isa_irq, unsigned int gsi, 87 unsigned long polarity, 88 unsigned long trigger); 89extern int __init iosapic_register_platform_intr (u32 int_type, 90 unsigned int gsi, 91 int pmi_vector, 92 u16 eid, u16 id, 93 unsigned long polarity, 94 unsigned long trigger); 95extern unsigned int iosapic_version (char __iomem *addr); 96 97#ifdef CONFIG_NUMA 98extern void __devinit map_iosapic_to_node (unsigned int, int); 99#endif 100#else 101#define iosapic_system_init(pcat_compat) do { } while (0) 102#define iosapic_init(address,gsi_base) (-EINVAL) 103#define iosapic_remove(gsi_base) (-ENODEV) 104#define iosapic_register_intr(gsi,polarity,trigger) (gsi) 105#define iosapic_unregister_intr(irq) do { } while (0) 106#define iosapic_override_isa_irq(isa_irq,gsi,polarity,trigger) do { } while (0) 107#define iosapic_register_platform_intr(type,gsi,pmi,eid,id, \ 108 polarity,trigger) (gsi) 109#endif 110 111# endif /* !__ASSEMBLY__ */ 112#endif /* __ASM_IA64_IOSAPIC_H */