diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2012-03-10 13:46:33 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2020-03-28 16:28:11 +0100 |
commit | 773c29c71a66a567a1cf125d2e1082afb7867b01 (patch) | |
tree | d3513040549d7d1abe4ad35e9e3e376bd126fd3f /i386 | |
parent | e3a25bd6b41397b88688b77d86953990251391b5 (diff) | |
download | gnumach-773c29c71a66a567a1cf125d2e1082afb7867b01.tar.gz gnumach-773c29c71a66a567a1cf125d2e1082afb7867b01.tar.bz2 gnumach-773c29c71a66a567a1cf125d2e1082afb7867b01.zip |
vm_param: Add 64bit variant
* i386/i386/vm_param.h (VM_MIN_KERNEL_ADDRESS, HYP_VIRT_START,
LINEAR_MIN_KERNEL_ADDRESS, LINEAR_MAX_KERNEL_ADDRESS): Add 64bit
variants.
Diffstat (limited to 'i386')
-rw-r--r-- | i386/i386/vm_param.h | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/i386/i386/vm_param.h b/i386/i386/vm_param.h index 7051b7af..1ca6b22c 100644 --- a/i386/i386/vm_param.h +++ b/i386/i386/vm_param.h @@ -35,7 +35,11 @@ /* This can be changed freely to separate kernel addresses from user addresses * for better trace support in kdb; the _START symbol has to be offset by the * same amount. */ +#ifdef __x86_64__ +#define VM_MIN_KERNEL_ADDRESS 0x40000000UL +#else #define VM_MIN_KERNEL_ADDRESS 0xC0000000UL +#endif #ifdef MACH_XEN /* PV kernels can be loaded directly to the target virtual address */ @@ -46,11 +50,15 @@ #endif /* MACH_XEN */ #ifdef MACH_PV_PAGETABLES +#ifdef __i386__ #if PAE #define HYP_VIRT_START HYPERVISOR_VIRT_START_PAE #else /* PAE */ #define HYP_VIRT_START HYPERVISOR_VIRT_START_NONPAE #endif /* PAE */ +#else +#define HYP_VIRT_START HYPERVISOR_VIRT_START +#endif #define VM_MAX_KERNEL_ADDRESS (HYP_VIRT_START - LINEAR_MIN_KERNEL_ADDRESS + VM_MIN_KERNEL_ADDRESS) #else /* MACH_PV_PAGETABLES */ #define VM_MAX_KERNEL_ADDRESS (LINEAR_MAX_KERNEL_ADDRESS - LINEAR_MIN_KERNEL_ADDRESS + VM_MIN_KERNEL_ADDRESS) @@ -62,11 +70,16 @@ */ #define VM_KERNEL_MAP_SIZE (152 * 1024 * 1024) -/* The kernel virtual address space is actually located - at high linear addresses. - This is the kernel address range in linear addresses. */ +/* This is the kernel address range in linear addresses. */ +#ifdef __x86_64__ +#define LINEAR_MIN_KERNEL_ADDRESS VM_MIN_KERNEL_ADDRESS +#define LINEAR_MAX_KERNEL_ADDRESS (0x00007fffffffffffUL) +#else +/* On x86, the kernel virtual address space is actually located + at high linear addresses. */ #define LINEAR_MIN_KERNEL_ADDRESS (VM_MAX_ADDRESS) #define LINEAR_MAX_KERNEL_ADDRESS (0xffffffffUL) +#endif #ifdef MACH_PV_PAGETABLES /* need room for mmu updates (2*8bytes) */ |