Changeset View
Changeset View
Standalone View
Standalone View
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) \ | |||||
markj: I think style(9) puts `do {` on the same line as the `#define`. | |||||
do \ | |||||
Done Inline ActionsIs _z for _zero? I think it might as well be spelled out if so. Perhaps assert that PG_V is not set in the old entry. markj: Is _z for _zero? I think it might as well be spelled out if so.
Perhaps assert that PG_V is… | |||||
{ \ | |||||
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 |
I think style(9) puts do { on the same line as the #define.