X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fasm-ia64%2Fiosapic.h;h=87de4873f50f15b45b0d2fc72dea61617bedc4fc;hb=97bf2856c6014879bd04983a3e9dfcdac1e7fe85;hp=3fac17e9811317b8efbdc92a62698b49aac702a1;hpb=9bf4aaab3e101692164d49b7ca357651eb691cb6;p=linux-2.6.git diff --git a/include/asm-ia64/iosapic.h b/include/asm-ia64/iosapic.h index 3fac17e98..87de4873f 100644 --- a/include/asm-ia64/iosapic.h +++ b/include/asm-ia64/iosapic.h @@ -53,31 +53,38 @@ #define NR_IOSAPICS 256 -static inline unsigned int iosapic_read(char *iosapic, unsigned int reg) +#ifndef CONFIG_XEN +static inline unsigned int iosapic_read(char __iomem *iosapic, unsigned int reg) { writel(reg, iosapic + IOSAPIC_REG_SELECT); return readl(iosapic + IOSAPIC_WINDOW); } -static inline void iosapic_write(char *iosapic, unsigned int reg, u32 val) +static inline void iosapic_write(char __iomem *iosapic, unsigned int reg, u32 val) { writel(reg, iosapic + IOSAPIC_REG_SELECT); writel(val, iosapic + IOSAPIC_WINDOW); } +#endif -static inline void iosapic_eoi(char *iosapic, u32 vector) +static inline void iosapic_eoi(char __iomem *iosapic, u32 vector) { writel(vector, iosapic + IOSAPIC_EOI); } extern void __init iosapic_system_init (int pcat_compat); -extern void __init iosapic_init (unsigned long address, +extern int __devinit iosapic_init (unsigned long address, unsigned int gsi_base); +#ifdef CONFIG_HOTPLUG +extern int iosapic_remove (unsigned int gsi_base); +#else +#define iosapic_remove(gsi_base) (-EINVAL) +#endif /* CONFIG_HOTPLUG */ extern int gsi_to_vector (unsigned int gsi); extern int gsi_to_irq (unsigned int gsi); -extern void iosapic_enable_intr (unsigned int vector); extern int iosapic_register_intr (unsigned int gsi, unsigned long polarity, unsigned long trigger); +extern void iosapic_unregister_intr (unsigned int irq); extern void __init iosapic_override_isa_irq (unsigned int isa_irq, unsigned int gsi, unsigned long polarity, unsigned long trigger); @@ -87,13 +94,17 @@ extern int __init iosapic_register_platform_intr (u32 int_type, u16 eid, u16 id, unsigned long polarity, unsigned long trigger); -extern unsigned int iosapic_version (char *addr); +extern unsigned int iosapic_version (char __iomem *addr); -extern void iosapic_pci_fixup (int); +#ifdef CONFIG_NUMA +extern void __devinit map_iosapic_to_node (unsigned int, int); +#endif #else #define iosapic_system_init(pcat_compat) do { } while (0) -#define iosapic_init(address,gsi_base) do { } while (0) +#define iosapic_init(address,gsi_base) (-EINVAL) +#define iosapic_remove(gsi_base) (-ENODEV) #define iosapic_register_intr(gsi,polarity,trigger) (gsi) +#define iosapic_unregister_intr(irq) do { } while (0) #define iosapic_override_isa_irq(isa_irq,gsi,polarity,trigger) do { } while (0) #define iosapic_register_platform_intr(type,gsi,pmi,eid,id, \ polarity,trigger) (gsi)