Changeset View
Changeset View
Standalone View
Standalone View
sys/amd64/include/vmparam.h
Show First 20 Lines • Show All 145 Lines • ▼ Show 20 Lines | |||||
#define VM_LEVEL_0_ORDER 9 | #define VM_LEVEL_0_ORDER 9 | ||||
#endif | #endif | ||||
#ifdef SMP | #ifdef SMP | ||||
#define PA_LOCK_COUNT 256 | #define PA_LOCK_COUNT 256 | ||||
#endif | #endif | ||||
/* | /* | ||||
* Kernel physical load address. Needs to be aligned at 2MB superpage | * Kernel physical load address for non-UEFI boot and for legacy UEFI loader. | ||||
* boundary. | * Newer UEFI loader loads kernel anywhere below 4G, with memory allocated | ||||
* by boot services. | |||||
* Needs to be aligned at 2MB superpage boundary. | |||||
*/ | */ | ||||
#ifndef KERNLOAD | #ifndef KERNLOAD | ||||
#define KERNLOAD 0x200000 | #define KERNLOAD 0x200000 | ||||
#endif | #endif | ||||
/* | /* | ||||
* Virtual addresses of things. Derived from the page directory and | * Virtual addresses of things. Derived from the page directory and | ||||
* page table indexes from pmap.h for precision. | * page table indexes from pmap.h for precision. | ||||
Show All 23 Lines | |||||
#define DMAP_MAX_ADDRESS KV4ADDR(DMPML4I + NDMPML4E, 0, 0, 0) | #define DMAP_MAX_ADDRESS KV4ADDR(DMPML4I + NDMPML4E, 0, 0, 0) | ||||
#define KASAN_MIN_ADDRESS KV4ADDR(KASANPML4I, 0, 0, 0) | #define KASAN_MIN_ADDRESS KV4ADDR(KASANPML4I, 0, 0, 0) | ||||
#define KASAN_MAX_ADDRESS KV4ADDR(KASANPML4I + NKASANPML4E, 0, 0, 0) | #define KASAN_MAX_ADDRESS KV4ADDR(KASANPML4I + NKASANPML4E, 0, 0, 0) | ||||
#define LARGEMAP_MIN_ADDRESS KV4ADDR(LMSPML4I, 0, 0, 0) | #define LARGEMAP_MIN_ADDRESS KV4ADDR(LMSPML4I, 0, 0, 0) | ||||
#define LARGEMAP_MAX_ADDRESS KV4ADDR(LMEPML4I + 1, 0, 0, 0) | #define LARGEMAP_MAX_ADDRESS KV4ADDR(LMEPML4I + 1, 0, 0, 0) | ||||
/* | |||||
* Formally kernel mapping starts at KERNBASE, but kernel linker | |||||
* script leaves first PDE reserved. For legacy BIOS boot, kernel is | |||||
* loaded at KERNLOAD = 2M, and initial kernel page table maps | |||||
* physical memory from zero to KERNend starting at KERNBASE. | |||||
* | |||||
* KERNSTART is where the first actual kernel page is mapped, after | |||||
* the compatibility mapping. | |||||
*/ | |||||
#define KERNBASE KV4ADDR(KPML4I, KPDPI, 0, 0) | #define KERNBASE KV4ADDR(KPML4I, KPDPI, 0, 0) | ||||
#define KERNSTART (KERNBASE + NBPDR) | |||||
#define UPT_MAX_ADDRESS KV4ADDR(PML4PML4I, PML4PML4I, PML4PML4I, PML4PML4I) | #define UPT_MAX_ADDRESS KV4ADDR(PML4PML4I, PML4PML4I, PML4PML4I, PML4PML4I) | ||||
#define UPT_MIN_ADDRESS KV4ADDR(PML4PML4I, 0, 0, 0) | #define UPT_MIN_ADDRESS KV4ADDR(PML4PML4I, 0, 0, 0) | ||||
#define VM_MAXUSER_ADDRESS_LA57 UVADDR(NUPML5E, 0, 0, 0, 0) | #define VM_MAXUSER_ADDRESS_LA57 UVADDR(NUPML5E, 0, 0, 0, 0) | ||||
#define VM_MAXUSER_ADDRESS_LA48 UVADDR(0, NUP4ML4E, 0, 0, 0) | #define VM_MAXUSER_ADDRESS_LA48 UVADDR(0, NUP4ML4E, 0, 0, 0) | ||||
#define VM_MAXUSER_ADDRESS VM_MAXUSER_ADDRESS_LA57 | #define VM_MAXUSER_ADDRESS VM_MAXUSER_ADDRESS_LA57 | ||||
▲ Show 20 Lines • Show All 77 Lines • Show Last 20 Lines |