Changeset View
Changeset View
Standalone View
Standalone View
head/sys/i386/include/pmap_pae.h
Show First 20 Lines • Show All 95 Lines • ▼ Show 20 Lines | |||||
#define PTESHIFT (3) | #define PTESHIFT (3) | ||||
#define PDESHIFT (3) | #define PDESHIFT (3) | ||||
#define pde_cmpset(pdep, old, new) atomic_cmpset_64_i586(pdep, old, new) | #define pde_cmpset(pdep, old, new) atomic_cmpset_64_i586(pdep, old, new) | ||||
#define pte_load_store(ptep, pte) atomic_swap_64_i586(ptep, pte) | #define pte_load_store(ptep, pte) atomic_swap_64_i586(ptep, pte) | ||||
#define pte_load_clear(ptep) atomic_swap_64_i586(ptep, 0) | #define pte_load_clear(ptep) atomic_swap_64_i586(ptep, 0) | ||||
#define pte_store(ptep, pte) atomic_store_rel_64_i586(ptep, pte) | #define pte_store(ptep, pte) atomic_store_rel_64_i586(ptep, pte) | ||||
#define pte_store_zero(ptep, pte) \ | |||||
do { \ | |||||
uint32_t *p; \ | |||||
\ | |||||
MPASS((*ptep & PG_V) == 0); \ | |||||
p = (void *)ptep; \ | |||||
*(p + 1) = (uint32_t)(pte >> 32); \ | |||||
__compiler_membar(); \ | |||||
*p = (uint32_t)pte; \ | |||||
} while (0) | |||||
#define pte_load(ptep) atomic_load_acq_64_i586(ptep) | #define pte_load(ptep) atomic_load_acq_64_i586(ptep) | ||||
extern pdpt_entry_t *IdlePDPT; | extern pdpt_entry_t *IdlePDPT; | ||||
extern pt_entry_t pg_nx; | extern pt_entry_t pg_nx; | ||||
extern pd_entry_t *IdlePTD_pae; /* physical address of "Idle" state directory */ | extern pd_entry_t *IdlePTD_pae; /* physical address of "Idle" state directory */ | ||||
/* | /* | ||||
* KPTmap is a linear mapping of the kernel page table. It differs from the | * KPTmap is a linear mapping of the kernel page table. It differs from the | ||||
Show All 12 Lines |