[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] Cleanup naming for ia64 and x86 interrupt handling functions
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1234435735 0 # Node ID 9e3be0660c1e7214cbb83700285b8ef33a9916c9 # Parent bf9cdbec516ab1ad79e11f277a5bbdd8cb340f3c Cleanup naming for ia64 and x86 interrupt handling functions - Append '_IRQ' to AUTO_ASSIGN, NEVER_ASSIGN, and FREE_TO_ASSIGN - Rename {request,setup}_irq to {request,setup}_irq_vector - Rename free_irq to release_irq_vector - Add {request,setup,release}_irq wrappers for their {request,setup,release}_irq_vector counterparts - Added generic irq_to_vector inline for ia64 - Changed ia64 to use the new naming scheme Signed-off-by: Espen Skoglund <espen.skoglund@xxxxxxxxxxxxx> Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx> --- xen/arch/ia64/linux-xen/iosapic.c | 10 ++++++ xen/arch/ia64/linux-xen/irq_ia64.c | 26 ++++++++++------- xen/arch/ia64/linux-xen/mca.c | 9 ++++-- xen/arch/ia64/xen/hypercall.c | 2 - xen/arch/ia64/xen/irq.c | 24 ++++++---------- xen/arch/x86/i8259.c | 4 +- xen/arch/x86/irq.c | 34 ++++++++++------------- xen/arch/x86/physdev.c | 2 - xen/drivers/char/serial.c | 2 - xen/drivers/passthrough/amd/iommu_init.c | 7 ++-- xen/drivers/passthrough/vtd/ia64/vtd.c | 4 ++ xen/drivers/passthrough/vtd/iommu.c | 8 ++--- xen/include/asm-ia64/hvm/iommu.h | 4 -- xen/include/asm-ia64/hvm/irq.h | 14 ++++++--- xen/include/asm-ia64/linux-xen/linux/interrupt.h | 4 +- xen/include/asm-ia64/linux/asm/hw_irq.h | 2 - xen/include/asm-x86/irq.h | 3 -- xen/include/xen/irq.h | 20 +++++++++++-- 18 files changed, 103 insertions(+), 76 deletions(-) diff -r bf9cdbec516a -r 9e3be0660c1e xen/arch/ia64/linux-xen/iosapic.c --- a/xen/arch/ia64/linux-xen/iosapic.c Wed Feb 11 16:36:59 2009 +0000 +++ b/xen/arch/ia64/linux-xen/iosapic.c Thu Feb 12 10:48:55 2009 +0000 @@ -93,6 +93,16 @@ #include <asm/ptrace.h> #include <asm/system.h> +#ifdef XEN +static inline int iosapic_irq_to_vector (int irq) +{ + return irq; +} + +#undef irq_to_vector +#define irq_to_vector(irq) iosapic_irq_to_vector(irq) +#define AUTO_ASSIGN AUTO_ASSIGN_IRQ +#endif #undef DEBUG_INTERRUPT_ROUTING diff -r bf9cdbec516a -r 9e3be0660c1e xen/arch/ia64/linux-xen/irq_ia64.c --- a/xen/arch/ia64/linux-xen/irq_ia64.c Wed Feb 11 16:36:59 2009 +0000 +++ b/xen/arch/ia64/linux-xen/irq_ia64.c Thu Feb 12 10:48:55 2009 +0000 @@ -250,6 +250,7 @@ register_percpu_irq (ia64_vector vec, st register_percpu_irq (ia64_vector vec, struct irqaction *action) { irq_desc_t *desc; +#ifndef XEN unsigned int irq; for (irq = 0; irq < NR_IRQS; ++irq) @@ -258,16 +259,19 @@ register_percpu_irq (ia64_vector vec, st desc->status |= IRQ_PER_CPU; desc->handler = &irq_type_ia64_lsapic; if (action) -#ifdef XEN - setup_vector(irq, action); -#else setup_irq(irq, action); -#endif - } -} - -#ifdef XEN -int request_irq(unsigned int irq, + } +#else + desc = irq_descp(vec); + desc->status |= IRQ_PER_CPU; + desc->handler = &irq_type_ia64_lsapic; + if (action) + setup_vector(vec, action); +#endif +} + +#ifdef XEN +int request_irq_vector(unsigned int vector, void (*handler)(int, void *, struct cpu_user_regs *), unsigned long irqflags, const char * devname, void *dev_id) { @@ -279,7 +283,7 @@ int request_irq(unsigned int irq, * otherwise we'll have trouble later trying to figure out * which interrupt is which (messes up the interrupt freeing logic etc). * */ - if (irq >= NR_IRQS) + if (vector >= NR_VECTORS) return -EINVAL; if (!handler) return -EINVAL; @@ -291,7 +295,7 @@ int request_irq(unsigned int irq, action->handler = handler; action->name = devname; action->dev_id = dev_id; - setup_vector(irq, action); + setup_vector(vector, action); if (retval) xfree(action); diff -r bf9cdbec516a -r 9e3be0660c1e xen/arch/ia64/linux-xen/mca.c --- a/xen/arch/ia64/linux-xen/mca.c Wed Feb 11 16:36:59 2009 +0000 +++ b/xen/arch/ia64/linux-xen/mca.c Thu Feb 12 10:48:55 2009 +0000 @@ -114,7 +114,6 @@ extern void ia64_slave_init_handler (v extern void ia64_slave_init_handler (void); #ifdef XEN extern void setup_vector (unsigned int vec, struct irqaction *action); -#define setup_irq(irq, action) setup_vector(irq, action) #endif static ia64_mc_info_t ia64_mc_info; @@ -1922,12 +1921,18 @@ ia64_mca_late_init(void) if (cpe_vector >= 0) { /* If platform supports CPEI, enable the irq. */ cpe_poll_enabled = 0; +#ifndef XEN for (irq = 0; irq < NR_IRQS; ++irq) if (irq_to_vector(irq) == cpe_vector) { desc = irq_descp(irq); desc->status |= IRQ_PER_CPU; - setup_irq(irq, &mca_cpe_irqaction); + setup_vector(irq, &mca_cpe_irqaction); } +#else + desc = irq_descp(cpe_vector); + desc->status |= IRQ_PER_CPU; + setup_vector(cpe_vector, &mca_cpe_irqaction); +#endif ia64_mca_register_cpev(cpe_vector); IA64_MCA_DEBUG("%s: CPEI/P setup and enabled.\n", __FUNCTION__); } else { diff -r bf9cdbec516a -r 9e3be0660c1e xen/arch/ia64/xen/hypercall.c --- a/xen/arch/ia64/xen/hypercall.c Wed Feb 11 16:36:59 2009 +0000 +++ b/xen/arch/ia64/xen/hypercall.c Thu Feb 12 10:48:55 2009 +0000 @@ -543,7 +543,7 @@ long do_physdev_op(int cmd, XEN_GUEST_HA break; irq_status_query.flags = 0; /* Edge-triggered interrupts don't need an explicit unmask downcall. */ - if ( !strstr(irq_desc[irq_to_vector(irq)].handler->typename, "edge") ) + if ( !strstr(irq_descp(irq)->handler->typename, "edge") ) irq_status_query.flags |= XENIRQSTAT_needs_eoi; ret = copy_to_guest(arg, &irq_status_query, 1) ? -EFAULT : 0; break; diff -r bf9cdbec516a -r 9e3be0660c1e xen/arch/ia64/xen/irq.c --- a/xen/arch/ia64/xen/irq.c Wed Feb 11 16:36:59 2009 +0000 +++ b/xen/arch/ia64/xen/irq.c Thu Feb 12 10:48:55 2009 +0000 @@ -228,11 +228,11 @@ out: * disabled. */ -int setup_vector(unsigned int irq, struct irqaction * new) +int setup_vector(unsigned int vector, struct irqaction * new) { unsigned long flags; struct irqaction *old, **p; - irq_desc_t *desc = irq_descp(irq); + irq_desc_t *desc = irq_descp(vector); /* * The following block of code has to be executed atomically @@ -248,8 +248,8 @@ int setup_vector(unsigned int irq, struc desc->depth = 0; desc->status &= ~(IRQ_DISABLED | IRQ_INPROGRESS | IRQ_GUEST); - desc->handler->startup(irq); - desc->handler->enable(irq); + desc->handler->startup(vector); + desc->handler->enable(vector); spin_unlock_irqrestore(&desc->lock,flags); return 0; @@ -258,13 +258,11 @@ int setup_vector(unsigned int irq, struc /* Vectors reserved by xen (and thus not sharable with domains). */ unsigned long ia64_xen_vector[BITS_TO_LONGS(NR_IRQS)]; -int setup_irq(unsigned int irq, struct irqaction * new) -{ - unsigned int vec; +int setup_irq_vector(unsigned int vec, struct irqaction * new) +{ int res; - /* Get vector for IRQ. */ - if (acpi_gsi_to_irq (irq, &vec) < 0) + if ( vec == IA64_INVALID_VECTOR ) return -ENOSYS; /* Reserve the vector (and thus the irq). */ if (test_and_set_bit(vec, ia64_xen_vector)) @@ -273,14 +271,12 @@ int setup_irq(unsigned int irq, struct i return res; } -void free_irq(unsigned int irq) -{ - unsigned int vec; +void release_irq_vector(unsigned int vec) +{ unsigned long flags; irq_desc_t *desc; - /* Get vector for IRQ. */ - if (acpi_gsi_to_irq(irq, &vec) < 0) + if ( vec == IA64_INVALID_VECTOR ) return; desc = irq_descp(vec); diff -r bf9cdbec516a -r 9e3be0660c1e xen/arch/x86/i8259.c --- a/xen/arch/x86/i8259.c Wed Feb 11 16:36:59 2009 +0000 +++ b/xen/arch/x86/i8259.c Thu Feb 12 10:48:55 2009 +0000 @@ -410,8 +410,8 @@ void __init init_IRQ(void) } /* Never allocate the hypercall vector or Linux/BSD fast-trap vector. */ - vector_irq[HYPERCALL_VECTOR] = NEVER_ASSIGN; - vector_irq[0x80] = NEVER_ASSIGN; + vector_irq[HYPERCALL_VECTOR] = NEVER_ASSIGN_IRQ; + vector_irq[0x80] = NEVER_ASSIGN_IRQ; apic_intr_init(); diff -r bf9cdbec516a -r 9e3be0660c1e xen/arch/x86/irq.c --- a/xen/arch/x86/irq.c Wed Feb 11 16:36:59 2009 +0000 +++ b/xen/arch/x86/irq.c Thu Feb 12 10:48:55 2009 +0000 @@ -29,7 +29,7 @@ irq_desc_t irq_desc[NR_VECTORS]; static DEFINE_SPINLOCK(vector_lock); int vector_irq[NR_VECTORS] __read_mostly = { - [0 ... NR_VECTORS - 1] = FREE_TO_ASSIGN + [0 ... NR_VECTORS - 1] = FREE_TO_ASSIGN_IRQ }; static void __do_IRQ_guest(int vector); @@ -66,11 +66,11 @@ int free_irq_vector(int vector) BUG_ON((vector > LAST_DYNAMIC_VECTOR) || (vector < FIRST_DYNAMIC_VECTOR)); spin_lock(&vector_lock); - if ((irq = vector_irq[vector]) == AUTO_ASSIGN) - vector_irq[vector] = FREE_TO_ASSIGN; + if ((irq = vector_irq[vector]) == AUTO_ASSIGN_IRQ) + vector_irq[vector] = FREE_TO_ASSIGN_IRQ; spin_unlock(&vector_lock); - return (irq == AUTO_ASSIGN) ? 0 : -EINVAL; + return (irq == AUTO_ASSIGN_IRQ) ? 0 : -EINVAL; } int assign_irq_vector(int irq) @@ -82,13 +82,13 @@ int assign_irq_vector(int irq) spin_lock(&vector_lock); - if ((irq != AUTO_ASSIGN) && (IO_APIC_VECTOR(irq) > 0)) { + if ((irq != AUTO_ASSIGN_IRQ) && (IO_APIC_VECTOR(irq) > 0)) { spin_unlock(&vector_lock); return IO_APIC_VECTOR(irq); } vector = current_vector; - while (vector_irq[vector] != FREE_TO_ASSIGN) { + while (vector_irq[vector] != FREE_TO_ASSIGN_IRQ) { vector += 8; if (vector > LAST_DYNAMIC_VECTOR) vector = FIRST_DYNAMIC_VECTOR + ((vector + 1) & 7); @@ -101,7 +101,7 @@ int assign_irq_vector(int irq) current_vector = vector; vector_irq[vector] = irq; - if (irq != AUTO_ASSIGN) + if (irq != AUTO_ASSIGN_IRQ) IO_APIC_VECTOR(irq) = vector; spin_unlock(&vector_lock); @@ -159,7 +159,7 @@ asmlinkage void do_IRQ(struct cpu_user_r spin_unlock(&desc->lock); } -int request_irq(unsigned int irq, +int request_irq_vector(unsigned int vector, void (*handler)(int, void *, struct cpu_user_regs *), unsigned long irqflags, const char * devname, void *dev_id) { @@ -172,7 +172,7 @@ int request_irq(unsigned int irq, * which interrupt is which (messes up the interrupt freeing * logic etc). */ - if (irq >= NR_IRQS) + if (vector >= NR_VECTORS) return -EINVAL; if (!handler) return -EINVAL; @@ -185,17 +185,16 @@ int request_irq(unsigned int irq, action->name = devname; action->dev_id = dev_id; - retval = setup_irq(irq, action); + retval = setup_irq_vector(vector, action); if (retval) xfree(action); return retval; } -void free_irq(unsigned int irq) -{ - unsigned int vector = irq_to_vector(irq); - irq_desc_t *desc = &irq_desc[vector]; +void release_irq_vector(unsigned int vector) +{ + irq_desc_t *desc = &irq_desc[vector]; unsigned long flags; spin_lock_irqsave(&desc->lock,flags); @@ -209,10 +208,9 @@ void free_irq(unsigned int irq) do { smp_mb(); } while ( desc->status & IRQ_INPROGRESS ); } -int setup_irq(unsigned int irq, struct irqaction *new) -{ - unsigned int vector = irq_to_vector(irq); - irq_desc_t *desc = &irq_desc[vector]; +int setup_irq_vector(unsigned int vector, struct irqaction *new) +{ + irq_desc_t *desc = &irq_desc[vector]; unsigned long flags; spin_lock_irqsave(&desc->lock,flags); diff -r bf9cdbec516a -r 9e3be0660c1e xen/arch/x86/physdev.c --- a/xen/arch/x86/physdev.c Wed Feb 11 16:36:59 2009 +0000 +++ b/xen/arch/x86/physdev.c Thu Feb 12 10:48:55 2009 +0000 @@ -75,7 +75,7 @@ static int physdev_map_pirq(struct physd case MAP_PIRQ_TYPE_MSI: vector = map->index; if ( vector == -1 ) - vector = assign_irq_vector(AUTO_ASSIGN); + vector = assign_irq_vector(AUTO_ASSIGN_IRQ); if ( vector < 0 || vector >= NR_VECTORS ) { diff -r bf9cdbec516a -r 9e3be0660c1e xen/drivers/char/serial.c --- a/xen/drivers/char/serial.c Wed Feb 11 16:36:59 2009 +0000 +++ b/xen/drivers/char/serial.c Thu Feb 12 10:48:55 2009 +0000 @@ -471,7 +471,7 @@ void serial_suspend(void) int i, irq; for ( i = 0; i < ARRAY_SIZE(com); i++ ) if ( (irq = serial_irq(i)) >= 0 ) - free_irq(irq); + release_irq(irq); } void serial_resume(void) diff -r bf9cdbec516a -r 9e3be0660c1e xen/drivers/passthrough/amd/iommu_init.c --- a/xen/drivers/passthrough/amd/iommu_init.c Wed Feb 11 16:36:59 2009 +0000 +++ b/xen/drivers/passthrough/amd/iommu_init.c Thu Feb 12 10:48:55 2009 +0000 @@ -479,7 +479,7 @@ static int set_iommu_interrupt_handler(s { int vector, ret; - vector = assign_irq_vector(AUTO_ASSIGN); + vector = assign_irq_vector(AUTO_ASSIGN_IRQ); if ( vector <= 0 ) { gdprintk(XENLOG_ERR VTDPREFIX, "IOMMU: no vectors\n"); @@ -487,7 +487,8 @@ static int set_iommu_interrupt_handler(s } irq_desc[vector].handler = &iommu_msi_type; - ret = request_irq(vector, amd_iommu_page_fault, 0, "amd_iommu", iommu); + ret = request_irq_vector(vector, amd_iommu_page_fault, 0, + "amd_iommu", iommu); if ( ret ) { irq_desc[vector].handler = &no_irq_type; @@ -497,7 +498,7 @@ static int set_iommu_interrupt_handler(s } /* Make sure that vector is never re-used. */ - vector_irq[vector] = NEVER_ASSIGN; + vector_irq[vector] = NEVER_ASSIGN_IRQ; vector_to_iommu[vector] = iommu; iommu->vector = vector; return vector; diff -r bf9cdbec516a -r 9e3be0660c1e xen/drivers/passthrough/vtd/ia64/vtd.c --- a/xen/drivers/passthrough/vtd/ia64/vtd.c Wed Feb 11 16:36:59 2009 +0000 +++ b/xen/drivers/passthrough/vtd/ia64/vtd.c Thu Feb 12 10:48:55 2009 +0000 @@ -29,7 +29,9 @@ #include "../vtd.h" -int vector_irq[NR_VECTORS] __read_mostly = { [0 ... NR_VECTORS - 1] = -1}; +int vector_irq[NR_VECTORS] __read_mostly = { + [0 ... NR_VECTORS - 1] = FREE_TO_ASSIGN_IRQ +}; /* irq_vectors is indexed by the sum of all RTEs in all I/O APICs. */ u8 irq_vector[NR_IRQS] __read_mostly; diff -r bf9cdbec516a -r 9e3be0660c1e xen/drivers/passthrough/vtd/iommu.c --- a/xen/drivers/passthrough/vtd/iommu.c Wed Feb 11 16:36:59 2009 +0000 +++ b/xen/drivers/passthrough/vtd/iommu.c Thu Feb 12 10:48:55 2009 +0000 @@ -874,7 +874,7 @@ int iommu_set_interrupt(struct iommu *io { int vector, ret; - vector = assign_irq_vector(AUTO_ASSIGN); + vector = assign_irq_vector(AUTO_ASSIGN_IRQ); if ( vector <= 0 ) { gdprintk(XENLOG_ERR VTDPREFIX, "IOMMU: no vectors\n"); @@ -882,7 +882,7 @@ int iommu_set_interrupt(struct iommu *io } irq_desc[vector].handler = &dma_msi_type; - ret = request_irq(vector, iommu_page_fault, 0, "dmar", iommu); + ret = request_irq_vector(vector, iommu_page_fault, 0, "dmar", iommu); if ( ret ) { irq_desc[vector].handler = &no_irq_type; @@ -892,7 +892,7 @@ int iommu_set_interrupt(struct iommu *io } /* Make sure that vector is never re-used. */ - vector_irq[vector] = NEVER_ASSIGN; + vector_irq[vector] = NEVER_ASSIGN_IRQ; vector_to_iommu[vector] = iommu; return vector; @@ -970,7 +970,7 @@ static void iommu_free(struct acpi_drhd_ iounmap(iommu->reg); free_intel_iommu(iommu->intel); - free_irq(iommu->vector); + release_irq_vector(iommu->vector); xfree(iommu); drhd->iommu = NULL; diff -r bf9cdbec516a -r 9e3be0660c1e xen/include/asm-ia64/hvm/iommu.h --- a/xen/include/asm-ia64/hvm/iommu.h Wed Feb 11 16:36:59 2009 +0000 +++ b/xen/include/asm-ia64/hvm/iommu.h Thu Feb 12 10:48:55 2009 +0000 @@ -28,10 +28,6 @@ static inline void pci_cleanup_msi(struc /* TODO */ } -/* Special IRQ numbers */ -#define AUTO_ASSIGN (-1) -#define NEVER_ASSIGN (-2) -#define FREE_TO_ASSIGN (-3) extern int assign_irq_vector (int irq); diff -r bf9cdbec516a -r 9e3be0660c1e xen/include/asm-ia64/hvm/irq.h --- a/xen/include/asm-ia64/hvm/irq.h Wed Feb 11 16:36:59 2009 +0000 +++ b/xen/include/asm-ia64/hvm/irq.h Thu Feb 12 10:48:55 2009 +0000 @@ -90,13 +90,17 @@ struct hvm_irq { #define hvm_pci_intx_link(dev, intx) \ (((dev) + (intx)) & 3) -/* Extract the IA-64 vector that corresponds to IRQ. */ -static inline int -irq_to_vector (int irq) +#define IA64_INVALID_VECTOR ((unsigned int)((int)-1)) +static inline unsigned int irq_to_vector(int irq) { - return irq; + int acpi_gsi_to_irq (u32 gsi, unsigned int *irq); + unsigned int vector; + + if ( acpi_gsi_to_irq(irq, &vector) < 0) + return 0; + + return vector; } - extern u8 irq_vector[NR_IRQS]; extern int vector_irq[NR_VECTORS]; diff -r bf9cdbec516a -r 9e3be0660c1e xen/include/asm-ia64/linux-xen/linux/interrupt.h --- a/xen/include/asm-ia64/linux-xen/linux/interrupt.h Wed Feb 11 16:36:59 2009 +0000 +++ b/xen/include/asm-ia64/linux-xen/linux/interrupt.h Thu Feb 12 10:48:55 2009 +0000 @@ -52,10 +52,10 @@ struct irqaction { }; extern irqreturn_t no_action(int cpl, void *dev_id, struct pt_regs *regs); -extern int request_irq(unsigned int, +extern int request_irq_vector(unsigned int, irqreturn_t (*handler)(int, void *, struct pt_regs *), unsigned long, const char *, void *); -extern void free_irq(unsigned int, void *); +extern void release_irq_vector(unsigned int, void *); #endif diff -r bf9cdbec516a -r 9e3be0660c1e xen/include/asm-ia64/linux/asm/hw_irq.h --- a/xen/include/asm-ia64/linux/asm/hw_irq.h Wed Feb 11 16:36:59 2009 +0000 +++ b/xen/include/asm-ia64/linux/asm/hw_irq.h Thu Feb 12 10:48:55 2009 +0000 @@ -34,7 +34,7 @@ typedef u8 ia64_vector; #define IA64_MAX_VECTORED_IRQ 255 #define IA64_NUM_VECTORS 256 -#define AUTO_ASSIGN -1 +#define AUTO_ASSIGN_IRQ (-1) #define IA64_SPURIOUS_INT_VECTOR 0x0f diff -r bf9cdbec516a -r 9e3be0660c1e xen/include/asm-x86/irq.h --- a/xen/include/asm-x86/irq.h Wed Feb 11 16:36:59 2009 +0000 +++ b/xen/include/asm-x86/irq.h Thu Feb 12 10:48:55 2009 +0000 @@ -19,9 +19,6 @@ extern int vector_irq[NR_VECTORS]; extern u8 irq_vector[NR_IRQS]; -#define AUTO_ASSIGN -1 -#define NEVER_ASSIGN -2 -#define FREE_TO_ASSIGN -3 #define platform_legacy_irq(irq) ((irq) < 16) diff -r bf9cdbec516a -r 9e3be0660c1e xen/include/xen/irq.h --- a/xen/include/xen/irq.h Wed Feb 11 16:36:59 2009 +0000 +++ b/xen/include/xen/irq.h Thu Feb 12 10:48:55 2009 +0000 @@ -24,6 +24,11 @@ struct irqaction #define IRQ_GUEST 16 /* IRQ is handled by guest OS(es) */ #define IRQ_GUEST_EOI_PENDING 32 /* IRQ was disabled, pending a guest EOI */ #define IRQ_PER_CPU 256 /* IRQ is per CPU */ + +/* Special IRQ numbers. */ +#define AUTO_ASSIGN_IRQ (-1) +#define NEVER_ASSIGN_IRQ (-2) +#define FREE_TO_ASSIGN_IRQ (-3) /* * Interrupt controller descriptor. This is all we need @@ -64,11 +69,20 @@ typedef struct { extern irq_desc_t irq_desc[NR_VECTORS]; -extern int setup_irq(unsigned int, struct irqaction *); -extern void free_irq(unsigned int); -extern int request_irq(unsigned int irq, +extern int setup_irq_vector(unsigned int, struct irqaction *); +extern void release_irq_vector(unsigned int); +extern int request_irq_vector(unsigned int vector, void (*handler)(int, void *, struct cpu_user_regs *), unsigned long irqflags, const char * devname, void *dev_id); + +#define setup_irq(irq, action) \ + setup_irq_vector(irq_to_vector(irq), action) + +#define release_irq(irq) \ + release_irq_vector(irq_to_vector(irq)) + +#define request_irq(irq, handler, irqflags, devname, devid) \ + request_irq_vector(irq_to_vector(irq), handler, irqflags, defname, devid) extern hw_irq_controller no_irq_type; extern void no_action(int cpl, void *dev_id, struct cpu_user_regs *regs); _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |