Changeset View
Changeset View
Standalone View
Standalone View
sys/amd64/include/vmparam.h
Show First 20 Lines • Show All 154 Lines • ▼ Show 20 Lines | |||||
* | * | ||||
* 0x0000000000000000 - 0x00007fffffffffff user map | * 0x0000000000000000 - 0x00007fffffffffff user map | ||||
* 0x0000800000000000 - 0xffff7fffffffffff does not exist (hole) | * 0x0000800000000000 - 0xffff7fffffffffff does not exist (hole) | ||||
* 0xffff800000000000 - 0xffff804020100fff recursive page table (512GB slot) | * 0xffff800000000000 - 0xffff804020100fff recursive page table (512GB slot) | ||||
* 0xffff804020100fff - 0xffff807fffffffff unused | * 0xffff804020100fff - 0xffff807fffffffff unused | ||||
* 0xffff808000000000 - 0xffff847fffffffff large map (can be tuned up) | * 0xffff808000000000 - 0xffff847fffffffff large map (can be tuned up) | ||||
* 0xffff848000000000 - 0xfffff7ffffffffff unused (large map extends there) | * 0xffff848000000000 - 0xfffff7ffffffffff unused (large map extends there) | ||||
* 0xfffff80000000000 - 0xfffffbffffffffff 4TB direct map | * 0xfffff80000000000 - 0xfffffbffffffffff 4TB direct map | ||||
* 0xfffffc0000000000 - 0xfffffdffffffffff unused | * 0xfffffc0000000000 - 0xfffffcffffffffff unused | ||||
* 0xfffffd0000000000 - 0xfffffd7fffffffff page array 512GB | |||||
* 0xfffffd8000000000 - 0xfffffdffffffffff unused | |||||
* 0xfffffe0000000000 - 0xffffffffffffffff 2TB kernel map | * 0xfffffe0000000000 - 0xffffffffffffffff 2TB kernel map | ||||
* | * | ||||
* Within the kernel map: | * Within the kernel map: | ||||
* | * | ||||
* 0xffffffff80000000 KERNBASE | * 0xffffffff80000000 KERNBASE | ||||
*/ | */ | ||||
#define VM_MIN_KERNEL_ADDRESS KVADDR(KPML4BASE, 0, 0, 0) | #define VM_MIN_KERNEL_ADDRESS KVADDR(KPML4BASE, 0, 0, 0) | ||||
#define VM_MAX_KERNEL_ADDRESS KVADDR(KPML4BASE + NKPML4E - 1, \ | #define VM_MAX_KERNEL_ADDRESS KVADDR(KPML4BASE + NKPML4E - 1, \ | ||||
NPDPEPG-1, NPDEPG-1, NPTEPG-1) | NPDPEPG-1, NPDEPG-1, NPTEPG-1) | ||||
#define DMAP_MIN_ADDRESS KVADDR(DMPML4I, 0, 0, 0) | #define DMAP_MIN_ADDRESS KVADDR(DMPML4I, 0, 0, 0) | ||||
#define DMAP_MAX_ADDRESS KVADDR(DMPML4I + NDMPML4E, 0, 0, 0) | #define DMAP_MAX_ADDRESS KVADDR(DMPML4I + NDMPML4E, 0, 0, 0) | ||||
#define PA_MIN_ADDRESS KVADDR(PAPML4I, 0, 0, 0) | |||||
#define LARGEMAP_MIN_ADDRESS KVADDR(LMSPML4I, 0, 0, 0) | #define LARGEMAP_MIN_ADDRESS KVADDR(LMSPML4I, 0, 0, 0) | ||||
#define LARGEMAP_MAX_ADDRESS KVADDR(LMEPML4I + 1, 0, 0, 0) | #define LARGEMAP_MAX_ADDRESS KVADDR(LMEPML4I + 1, 0, 0, 0) | ||||
#define KERNBASE KVADDR(KPML4I, KPDPI, 0, 0) | #define KERNBASE KVADDR(KPML4I, KPDPI, 0, 0) | ||||
#define UPT_MAX_ADDRESS KVADDR(PML4PML4I, PML4PML4I, PML4PML4I, PML4PML4I) | #define UPT_MAX_ADDRESS KVADDR(PML4PML4I, PML4PML4I, PML4PML4I, PML4PML4I) | ||||
#define UPT_MIN_ADDRESS KVADDR(PML4PML4I, 0, 0, 0) | #define UPT_MIN_ADDRESS KVADDR(PML4PML4I, 0, 0, 0) | ||||
Show All 19 Lines | #define PHYS_TO_DMAP(x) ({ \ | ||||
(x) | DMAP_MIN_ADDRESS; }) | (x) | DMAP_MIN_ADDRESS; }) | ||||
#define DMAP_TO_PHYS(x) ({ \ | #define DMAP_TO_PHYS(x) ({ \ | ||||
KASSERT((x) < (DMAP_MIN_ADDRESS + dmaplimit) && \ | KASSERT((x) < (DMAP_MIN_ADDRESS + dmaplimit) && \ | ||||
(x) >= DMAP_MIN_ADDRESS, \ | (x) >= DMAP_MIN_ADDRESS, \ | ||||
("virtual address %#jx not covered by the DMAP", \ | ("virtual address %#jx not covered by the DMAP", \ | ||||
(uintmax_t)x)); \ | (uintmax_t)x)); \ | ||||
(x) & ~DMAP_MIN_ADDRESS; }) | (x) & ~DMAP_MIN_ADDRESS; }) | ||||
/* | |||||
* amd64 statically allocates the page array address so that it can | |||||
* be more easily allocated on the correct memory domains. | |||||
*/ | |||||
#define PMAP_HAS_PAGE_ARRAY 1 | |||||
/* | /* | ||||
* How many physical pages per kmem arena virtual page. | * How many physical pages per kmem arena virtual page. | ||||
*/ | */ | ||||
#ifndef VM_KMEM_SIZE_SCALE | #ifndef VM_KMEM_SIZE_SCALE | ||||
#define VM_KMEM_SIZE_SCALE (1) | #define VM_KMEM_SIZE_SCALE (1) | ||||
#endif | #endif | ||||
Show All 23 Lines |