aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/asm-arm/irq.h
diff options
context:
space:
mode:
authorIan Campbell <ian.campbell@citrix.com>2012-10-09 15:05:40 +0100
committerIan Campbell <ian.campbell@citrix.com>2012-10-09 15:05:40 +0100
commitde43d7a373eef95bedcd816f1fcf8c062e1ac328 (patch)
tree4b78f73c75a74ff0400d9920e66aae2d013db3a9 /xen/include/asm-arm/irq.h
parent55ba3b2be653e85e73cbad96f5cd2e5307e83730 (diff)
downloadxen-de43d7a373eef95bedcd816f1fcf8c062e1ac328.tar.gz
xen-de43d7a373eef95bedcd816f1fcf8c062e1ac328.tar.bz2
xen-de43d7a373eef95bedcd816f1fcf8c062e1ac328.zip
arm: Use per-CPU irq_desc for PPIs and SGIs
The first 32 interrupts on a GIC are the Peripheral Private Interrupts and Software-Generated Interrupts and are local to each processor. The irq_desc cannot be shared since we use irq_desc->status to track whether the IRQ is in-progress etc. Therefore give each processor its own local irq_desc for each of these interupts. We must also route them on each CPU, so do so. This feels like a bit of a layering violation (since the core ARM irq.c now knows about thinkgs wich are really gic.c business) Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Tim Deegan <tim@xen.org> Committed-by: Ian Campbell <ian.campbell@citrix.com>
Diffstat (limited to 'xen/include/asm-arm/irq.h')
-rw-r--r--xen/include/asm-arm/irq.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/xen/include/asm-arm/irq.h b/xen/include/asm-arm/irq.h
index 21e0b85f26..abde83951f 100644
--- a/xen/include/asm-arm/irq.h
+++ b/xen/include/asm-arm/irq.h
@@ -17,10 +17,23 @@ struct irq_cfg {
#define arch_irq_desc irq_cfg
};
+#define NR_LOCAL_IRQS 32
+#define NR_IRQS 1024
+#define nr_irqs NR_IRQS
+
+struct irq_desc;
+
+struct irq_desc *__irq_to_desc(int irq);
+
+#define irq_to_desc(irq) __irq_to_desc(irq)
+
void do_IRQ(struct cpu_user_regs *regs, unsigned int irq, int is_fiq);
#define domain_pirq_to_irq(d, pirq) (pirq)
+void init_IRQ(void);
+void init_secondary_IRQ(void);
+
#endif /* _ASM_HW_IRQ_H */
/*
* Local variables: