# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID 781b6dd73e4c66ab0f05cd03a045b47e429510cc
# Parent a05e55c919c1f765b9b93a0178005c4a19cb471e
This patch change the vmx mmio handler to static.
Signed-off-by: Yunhong Jiang <yunhong.jiang@xxxxxxxxx>
Signed-off-by: Xin Li <xin.b.li@xxxxxxxxx>
diff -r a05e55c919c1 -r 781b6dd73e4c xen/arch/x86/vmx_intercept.c
--- a/xen/arch/x86/vmx_intercept.c Mon Nov 7 14:06:27 2005
+++ b/xen/arch/x86/vmx_intercept.c Mon Nov 7 15:35:46 2005
@@ -33,13 +33,13 @@
#ifdef CONFIG_VMX
-struct vmx_mmio_handler vmx_mmio_handers[VMX_MMIO_HANDLER_NR] =
-{
- {
- .check_handler = vlapic_range,
- .read_handler = vlapic_read,
- .write_handler = vlapic_write
- }
+extern struct vmx_mmio_handler vlapic_mmio_handler;
+
+#define VMX_MMIO_HANDLER_NR 1
+
+struct vmx_mmio_handler *vmx_mmio_handlers[VMX_MMIO_HANDLER_NR] =
+{
+ &vlapic_mmio_handler
};
static inline void vmx_mmio_access(struct vcpu *v,
@@ -134,16 +134,16 @@
{
struct vcpu *v = current;
int i;
- struct vmx_mmio_handler *handler = vmx_mmio_handers;
/* XXX currently only APIC use intercept */
if ( !vmx_apic_support(v->domain) )
return 0;
for ( i = 0; i < VMX_MMIO_HANDLER_NR; i++ ) {
- if ( handler[i].check_handler(v, p->addr) ) {
+ if ( vmx_mmio_handlers[i]->check_handler(v, p->addr) ) {
vmx_mmio_access(v, p,
- handler[i].read_handler, handler[i].write_handler);
+ vmx_mmio_handlers[i]->read_handler,
+ vmx_mmio_handlers[i]->write_handler);
return 1;
}
}
diff -r a05e55c919c1 -r 781b6dd73e4c xen/arch/x86/vmx_vlapic.c
--- a/xen/arch/x86/vmx_vlapic.c Mon Nov 7 14:06:27 2005
+++ b/xen/arch/x86/vmx_vlapic.c Mon Nov 7 15:35:46 2005
@@ -543,8 +543,8 @@
}
}
-unsigned long vlapic_read(struct vcpu *v, unsigned long address,
- unsigned long len)
+static unsigned long vlapic_read(struct vcpu *v, unsigned long address,
+ unsigned long len)
{
unsigned int alignment;
unsigned int tmp;
@@ -585,8 +585,8 @@
return result;
}
-unsigned long vlapic_write(struct vcpu *v, unsigned long address,
- unsigned long len, unsigned long val)
+static void vlapic_write(struct vcpu *v, unsigned long address,
+ unsigned long len, unsigned long val)
{
struct vlapic *vlapic = VLAPIC(v);
unsigned int offset = address - vlapic->base_address;
@@ -758,10 +758,9 @@
printk("Local APIC Write to read-only register\n");
break;
}
- return 1;
-}
-
-int vlapic_range(struct vcpu *v, unsigned long addr)
+}
+
+static int vlapic_range(struct vcpu *v, unsigned long addr)
{
struct vlapic *vlapic = VLAPIC(v);
@@ -772,6 +771,12 @@
return 0;
}
+
+struct vmx_mmio_handler vlapic_mmio_handler = {
+ .check_handler = vlapic_range,
+ .read_handler = vlapic_read,
+ .write_handler = vlapic_write
+};
void vlapic_msr_set(struct vlapic *vlapic, uint64_t value)
{
diff -r a05e55c919c1 -r 781b6dd73e4c xen/include/asm-x86/vmx_intercept.h
--- a/xen/include/asm-x86/vmx_intercept.h Mon Nov 7 14:06:27 2005
+++ b/xen/include/asm-x86/vmx_intercept.h Mon Nov 7 15:35:46 2005
@@ -18,10 +18,10 @@
unsigned long addr,
unsigned long length);
-typedef unsigned long (*vmx_mmio_write_t)(struct vcpu *v,
- unsigned long addr,
- unsigned long length,
- unsigned long val);
+typedef void (*vmx_mmio_write_t)(struct vcpu *v,
+ unsigned long addr,
+ unsigned long length,
+ unsigned long val);
typedef int (*vmx_mmio_check_t)(struct vcpu *v, unsigned long addr);
@@ -43,10 +43,6 @@
vmx_mmio_write_t write_handler;
};
-#define VMX_MMIO_HANDLER_NR 1
-
-extern struct vmx_mmio_handler vmx_mmio_handers[VMX_MMIO_HANDLER_NR];
-
/* global io interception point in HV */
extern int vmx_io_intercept(ioreq_t *p, int type);
extern int register_io_handler(unsigned long addr, unsigned long size,
diff -r a05e55c919c1 -r 781b6dd73e4c xen/include/asm-x86/vmx_vlapic.h
--- a/xen/include/asm-x86/vmx_vlapic.h Mon Nov 7 14:06:27 2005
+++ b/xen/include/asm-x86/vmx_vlapic.h Mon Nov 7 15:35:46 2005
@@ -225,14 +225,6 @@
extern void vlapic_msr_set(struct vlapic *vlapic, uint64_t value);
-int vlapic_range(struct vcpu *v, unsigned long addr);
-
-unsigned long vlapic_write(struct vcpu *v, unsigned long address,
- unsigned long len, unsigned long val);
-
-unsigned long vlapic_read(struct vcpu *v, unsigned long address,
- unsigned long len);
-
int vlapic_accept_pic_intr(struct vcpu *v);
struct vlapic* apic_round_robin(struct domain *d,
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|