aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/asm-x86/io_apic.h
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2009-10-26 13:33:38 +0000
committerKeir Fraser <keir.fraser@citrix.com>2009-10-26 13:33:38 +0000
commitf821102450a157716034bb22b45d1f8720f091f6 (patch)
treee8e253d157caff96248fff173c985886bdb1b01f /xen/include/asm-x86/io_apic.h
parent9db20f3c2b99baacbfa7f95195cdb77c37ddd81e (diff)
downloadxen-f821102450a157716034bb22b45d1f8720f091f6.tar.gz
xen-f821102450a157716034bb22b45d1f8720f091f6.tar.bz2
xen-f821102450a157716034bb22b45d1f8720f091f6.zip
x86: IRQ Migration logic enhancement.
To programme MSI's addr/vector safely, delay irq migration operation before acking next interrupt. In this way, it should avoid inconsistent interrupts generation due to non-atomic writing addr and data registers about MSI. Port the logic from Linux and tailor it for Xen. Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com>
Diffstat (limited to 'xen/include/asm-x86/io_apic.h')
-rw-r--r--xen/include/asm-x86/io_apic.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/xen/include/asm-x86/io_apic.h b/xen/include/asm-x86/io_apic.h
index e064d4a7d5..6781ac1bac 100644
--- a/xen/include/asm-x86/io_apic.h
+++ b/xen/include/asm-x86/io_apic.h
@@ -22,6 +22,15 @@
#define IO_APIC_ID(idx) (mp_ioapics[idx].mpc_apicid)
+/* I/O Unit Redirection Table */
+#define IO_APIC_REDIR_VECTOR_MASK 0x000FF
+#define IO_APIC_REDIR_DEST_LOGICAL 0x00800
+#define IO_APIC_REDIR_DEST_PHYSICAL 0x00000
+#define IO_APIC_REDIR_SEND_PENDING (1 << 12)
+#define IO_APIC_REDIR_REMOTE_IRR (1 << 14)
+#define IO_APIC_REDIR_LEVEL_TRIGGER (1 << 15)
+#define IO_APIC_REDIR_MASKED (1 << 16)
+
/*
* The structure of the IO-APIC:
*/