aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/hvm/vioapic.c
diff options
context:
space:
mode:
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>2006-11-10 18:20:49 +0000
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>2006-11-10 18:20:49 +0000
commit8a02f12b77511c9b109abdecd5c10227189d88c8 (patch)
tree1148e475eb446d7b189129cb279b56efadc97651 /xen/arch/x86/hvm/vioapic.c
parent63ffe9b07eed7a2cc7dfc3d02d51c70b29bd389b (diff)
downloadxen-8a02f12b77511c9b109abdecd5c10227189d88c8.tar.gz
xen-8a02f12b77511c9b109abdecd5c10227189d88c8.tar.bz2
xen-8a02f12b77511c9b109abdecd5c10227189d88c8.zip
[HVM] Simplify apic dest-matching code. Refactor
across vlapic/vioapic source files to reduce code duplication. Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'xen/arch/x86/hvm/vioapic.c')
-rw-r--r--xen/arch/x86/hvm/vioapic.c37
1 files changed, 1 insertions, 36 deletions
diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
index dc7f29d820..c32ece46e3 100644
--- a/xen/arch/x86/hvm/vioapic.c
+++ b/xen/arch/x86/hvm/vioapic.c
@@ -35,6 +35,7 @@
#include <public/hvm/ioreq.h>
#include <asm/hvm/io.h>
#include <asm/hvm/vpic.h>
+#include <asm/hvm/vlapic.h>
#include <asm/hvm/support.h>
#include <asm/current.h>
#include <asm/event.h>
@@ -285,42 +286,6 @@ static int ioapic_inj_irq(struct vioapic *vioapic,
return result;
}
-#ifndef __ia64__
-static int vlapic_match_logical_addr(struct vlapic *vlapic, uint8_t dest)
-{
- int result = 0;
- uint32_t logical_dest;
-
- HVM_DBG_LOG(DBG_LEVEL_IOAPIC, "vlapic_match_logical_addr "
- "vcpu=%d vlapic_id=%x dest=%x\n",
- vlapic_vcpu(vlapic)->vcpu_id, VLAPIC_ID(vlapic), dest);
-
- logical_dest = vlapic_get_reg(vlapic, APIC_LDR);
-
- switch ( vlapic_get_reg(vlapic, APIC_DFR) )
- {
- case APIC_DFR_FLAT:
- result = ((dest & GET_APIC_LOGICAL_ID(logical_dest)) != 0);
- break;
- case APIC_DFR_CLUSTER:
- /* Should we support flat cluster mode ?*/
- if ( (GET_APIC_LOGICAL_ID(logical_dest) >> 4
- == ((dest >> 0x4) & 0xf)) &&
- (logical_dest & (dest & 0xf)) )
- result = 1;
- break;
- default:
- gdprintk(XENLOG_WARNING, "error DFR value for lapic of vcpu %d\n",
- vlapic_vcpu(vlapic)->vcpu_id);
- break;
- }
-
- return result;
-}
-#else
-extern int vlapic_match_logical_addr(struct vlapic *vlapic, uint16_t dest);
-#endif
-
static uint32_t ioapic_get_delivery_bitmask(struct vioapic *vioapic,
uint16_t dest,
uint8_t dest_mode,