summaryrefslogtreecommitdiff
path: root/sys/arch/aviion/include/av530.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch/aviion/include/av530.h')
-rw-r--r--sys/arch/aviion/include/av530.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/sys/arch/aviion/include/av530.h b/sys/arch/aviion/include/av530.h
index 73965e000b9..62f4b907b8e 100644
--- a/sys/arch/aviion/include/av530.h
+++ b/sys/arch/aviion/include/av530.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: av530.h,v 1.2 2010/04/21 19:33:47 miod Exp $ */
+/* $OpenBSD: av530.h,v 1.3 2010/04/24 18:46:55 miod Exp $ */
/*
* Copyright (c) 2006, 2010 Miodrag Vallat
*
@@ -106,6 +106,22 @@
"\10SIGLPI\7IRQ2\5IRQ1\4SWI3\3SWI2\2SWI1\1SWI0"
/*
+ * Software interrupts 0 to 3, and 4 to 7, are used to deliver IPIs to
+ * CPU0-3. We use two software interrupts per CPU because we want clock
+ * IPIs to be maskable.
+ */
+#define AV530_CLOCK_IPI_MASK (AV530_IRQ_SWI7 | AV530_IRQ_SWI6 | \
+ AV530_IRQ_SWI5 | AV530_IRQ_SWI4)
+#define AV530_IPI_MASK (AV530_IRQ_SWI3 | AV530_IRQ_SWI2 | \
+ AV530_IRQ_SWI1 | AV530_IRQ_SWI0)
+/* values for SETSWI and CLRSWI registers */
+#define AV530_SWI_IPI_BIT(cpu) (0x01 << (cpu))
+#define AV530_SWI_CLOCK_IPI_BIT(cpu) (0x10 << (cpu))
+/* values for IEN and IST registers */
+#define AV530_SWI_IPI_MASK(cpu) (AV530_IRQ_SWI0 << (cpu))
+#define AV530_SWI_CLOCK_IPI_MASK(cpu) (AV530_IRQ_SWI4 << (cpu))
+
+/*
* Extended interrupts
*/