diff options
Diffstat (limited to 'arch/x86/include/asm/xen/interface.h')
| -rw-r--r-- | arch/x86/include/asm/xen/interface.h | 30 | 
1 files changed, 22 insertions, 8 deletions
diff --git a/arch/x86/include/asm/xen/interface.h b/arch/x86/include/asm/xen/interface.h index e8506c1f0c5..3400dbaec3c 100644 --- a/arch/x86/include/asm/xen/interface.h +++ b/arch/x86/include/asm/xen/interface.h @@ -47,23 +47,35 @@  #endif  #ifndef __ASSEMBLY__ +/* Explicitly size integers that represent pfns in the public interface + * with Xen so that on ARM we can have one ABI that works for 32 and 64 + * bit guests. */ +typedef unsigned long xen_pfn_t; +#define PRI_xen_pfn "lx" +typedef unsigned long xen_ulong_t; +#define PRI_xen_ulong "lx" +typedef long xen_long_t; +#define PRI_xen_long "lx" +  /* Guest handles for primitive C types. */  __DEFINE_GUEST_HANDLE(uchar, unsigned char);  __DEFINE_GUEST_HANDLE(uint,  unsigned int); -__DEFINE_GUEST_HANDLE(ulong, unsigned long);  DEFINE_GUEST_HANDLE(char);  DEFINE_GUEST_HANDLE(int); -DEFINE_GUEST_HANDLE(long);  DEFINE_GUEST_HANDLE(void); +DEFINE_GUEST_HANDLE(uint64_t); +DEFINE_GUEST_HANDLE(uint32_t); +DEFINE_GUEST_HANDLE(xen_pfn_t); +DEFINE_GUEST_HANDLE(xen_ulong_t);  #endif  #ifndef HYPERVISOR_VIRT_START  #define HYPERVISOR_VIRT_START mk_unsigned_long(__HYPERVISOR_VIRT_START)  #endif -#ifndef machine_to_phys_mapping -#define machine_to_phys_mapping ((unsigned long *)HYPERVISOR_VIRT_START) -#endif +#define MACH2PHYS_VIRT_START  mk_unsigned_long(__MACH2PHYS_VIRT_START) +#define MACH2PHYS_VIRT_END    mk_unsigned_long(__MACH2PHYS_VIRT_END) +#define MACH2PHYS_NR_ENTRIES  ((MACH2PHYS_VIRT_END-MACH2PHYS_VIRT_START)>>__MACH2PHYS_SHIFT)  /* Maximum number of virtual CPUs in multi-processor guests. */  #define MAX_VIRT_CPUS 32 @@ -86,7 +98,7 @@ DEFINE_GUEST_HANDLE(void);   * The privilege level specifies which modes may enter a trap via a software   * interrupt. On x86/64, since rings 1 and 2 are unavailable, we allocate   * privilege levels as follows: - *  Level == 0: Noone may enter + *  Level == 0: No one may enter   *  Level == 1: Kernel may enter   *  Level == 2: Kernel may enter   *  Level == 3: Everyone may enter @@ -114,11 +126,13 @@ struct arch_shared_info {  #endif	/* !__ASSEMBLY__ */  #ifdef CONFIG_X86_32 -#include "interface_32.h" +#include <asm/xen/interface_32.h>  #else -#include "interface_64.h" +#include <asm/xen/interface_64.h>  #endif +#include <asm/pvclock-abi.h> +  #ifndef __ASSEMBLY__  /*   * The following is all CPU context. Note that the fpu_ctxt block is filled  | 
