# HG changeset patch # User tristan.gingold@xxxxxxxx # Node ID 2c3e8c420d66c50ba1d65cd3e5f3571a43e60a44 # Parent 871cbe438c9402e556c192ba6d349ad1f036ff8f Move all Xen memory space constants into xensystem.h Cleanup related to the move. Signed-off-by: Tristan Gingold diff -r 871cbe438c94 -r 2c3e8c420d66 xen/include/asm-ia64/linux-xen/asm/io.h --- a/xen/include/asm-ia64/linux-xen/asm/io.h Wed Apr 19 06:55:01 2006 +++ b/xen/include/asm-ia64/linux-xen/asm/io.h Wed Apr 19 08:01:42 2006 @@ -23,9 +23,7 @@ #define __SLOW_DOWN_IO do { } while (0) #define SLOW_DOWN_IO do { } while (0) -#ifdef XEN -#define __IA64_UNCACHED_OFFSET 0xe800000000000000UL -#else +#ifndef XEN #define __IA64_UNCACHED_OFFSET 0xc000000000000000UL /* region 6 */ #endif diff -r 871cbe438c94 -r 2c3e8c420d66 xen/include/asm-ia64/linux-xen/asm/system.h --- a/xen/include/asm-ia64/linux-xen/asm/system.h Wed Apr 19 06:55:01 2006 +++ b/xen/include/asm-ia64/linux-xen/asm/system.h Wed Apr 19 08:01:42 2006 @@ -20,12 +20,14 @@ #include #define GATE_ADDR __IA64_UL_CONST(0xa000000000000000) +#ifndef XEN /* * 0xa000000000000000+2*PERCPU_PAGE_SIZE * - 0xa000000000000000+3*PERCPU_PAGE_SIZE remain unmapped (guard page) */ #define KERNEL_START __IA64_UL_CONST(0xa000000100000000) #define PERCPU_ADDR (-PERCPU_PAGE_SIZE) +#endif #ifndef __ASSEMBLY__ @@ -185,6 +187,7 @@ (__ia64_id_flags & IA64_PSR_I) == 0; \ }) +#ifndef XEN #ifdef __KERNEL__ #ifdef CONFIG_IA32_SUPPORT @@ -285,6 +288,7 @@ #define arch_align_stack(x) (x) #endif /* __KERNEL__ */ +#endif /* XEN */ #endif /* __ASSEMBLY__ */ diff -r 871cbe438c94 -r 2c3e8c420d66 xen/include/asm-ia64/uaccess.h --- a/xen/include/asm-ia64/uaccess.h Wed Apr 19 06:55:01 2006 +++ b/xen/include/asm-ia64/uaccess.h Wed Apr 19 08:01:42 2006 @@ -42,7 +42,6 @@ #include #include -#define IS_VMM_ADDRESS(addr) ((((addr) >> 60) ^ ((addr) >> 59)) & 1) #define __access_ok(addr) (!IS_VMM_ADDRESS((unsigned long)(addr))) #define access_ok(addr, size) (__access_ok(addr)) #define array_access_ok(addr,count,size)( __access_ok(addr)) diff -r 871cbe438c94 -r 2c3e8c420d66 xen/include/asm-ia64/vmx_uaccess.h --- a/xen/include/asm-ia64/vmx_uaccess.h Wed Apr 19 06:55:01 2006 +++ b/xen/include/asm-ia64/vmx_uaccess.h Wed Apr 19 08:01:42 2006 @@ -40,8 +40,6 @@ */ asm (".section \"__ex_table\", \"a\"\n\t.previous"); -/* VT-i reserves bit 60 for the VMM; guest addresses have bit 60 = bit 59 */ -#define IS_VMM_ADDRESS(addr) ((((addr) >> 60) ^ ((addr) >> 59)) & 1) /* For back compatibility */ #define __access_ok(addr, size, segment) 1 #define access_ok(addr, size, segment) __access_ok((addr), (size), (segment)) diff -r 871cbe438c94 -r 2c3e8c420d66 xen/include/asm-ia64/xensystem.h --- a/xen/include/asm-ia64/xensystem.h Wed Apr 19 06:55:01 2006 +++ b/xen/include/asm-ia64/xensystem.h Wed Apr 19 08:01:42 2006 @@ -13,15 +13,17 @@ #include #include -/* Define HV space hierarchy */ +/* Define HV space hierarchy. + VMM memory space is protected by CPL for paravirtualized domains and + by VA for VTi domains. VTi imposes VA bit 60 != VA bit 59 for VMM. */ #define XEN_VIRT_SPACE_LOW 0xe800000000000000 #define XEN_VIRT_SPACE_HIGH 0xf800000000000000 +#define __IA64_UNCACHED_OFFSET 0xe800000000000000UL + #define XEN_START_ADDR 0xf000000000000000 #define HYPERVISOR_VIRT_START 0xf000000000000000 -#undef KERNEL_START #define KERNEL_START 0xf000000004000000 -#undef PERCPU_ADDR #define SHAREDINFO_ADDR 0xf100000000000000 #define SHARED_ARCHINFO_ADDR (SHAREDINFO_ADDR + PAGE_SIZE) #define PERCPU_ADDR (SHAREDINFO_ADDR - PERCPU_PAGE_SIZE) @@ -33,13 +35,19 @@ #endif #define XEN_END_ADDR 0xf400000000000000 +#define IS_VMM_ADDRESS(addr) ((((addr) >> 60) ^ ((addr) >> 59)) & 1) + #ifndef __ASSEMBLY__ -#undef IA64_HAS_EXTRA_STATE #define IA64_HAS_EXTRA_STATE(t) 0 -#undef __switch_to -extern struct task_struct *vmx_ia64_switch_to (void *next_task); +struct vcpu; +extern void ia64_save_extra (struct vcpu *v); +extern void ia64_load_extra (struct vcpu *v); + +extern struct vcpu *vmx_ia64_switch_to (struct vcpu *next_task); +extern struct vcpu *ia64_switch_to (struct vcpu *next_task); + #define __switch_to(prev,next,last) do { \ ia64_save_fpu(prev->arch._thread.fph); \ ia64_load_fpu(next->arch._thread.fph); \ @@ -62,7 +70,6 @@ } \ } while (0) -#undef switch_to // FIXME SMP... see system.h, does this need to be different? #define switch_to(prev,next,last) __switch_to(prev, next, last)