NPDPEPG
pdpeindex = (va >> PDPSHIFT) & (NPDPEPG-1);
#define KPDPI (NPDPEPG-2) /* kernbase at -2GB */
#define NUPD_TOTAL (NPDPEPG * NUPDP_TOTAL)
#define NUPTE_USER ((vm_pindex_t)NPTEPG * NPDEPG * NPDPEPG * NUPDP_USER)
#define NKPDPE (NKPML4E*NPDPEPG-1)
#define VM_MIN_KERNEL_ADDRESS KVADDR(KPML4I, NKPML4E*NPDPEPG - NKPDPE, 0, 0)
NPDPEPG - 1, MPPTDI, NPTEPG - 1)
#define VM_MAX_USER_ADDRESS UVADDR(NUPDP_USER - 1, NPDPEPG - 1, \
ptesize = NPML4EPG * NPDPEPG * 8;
(NPML4EPG * NPDPEPG - 1);
(NPML4EPG * NPDPEPG - 1);
(NPML4EPG * NPDPEPG - 1);
(NPML4EPG * NPDPEPG - 1);
(NPML4EPG * NPDPEPG - 1);
for (i = 0; i < NPML4EPG * NPDPEPG; ++i) {
fakept[i & (NPDPEPG - 1)] = 0;
fakept[i & (NPDPEPG - 1)] = pdp[i - kpdp];
if ((i & (NPDPEPG - 1)) == (NPDPEPG - 1)) {
((pdp_entry_t *)KPDPphys)[NKPML4E * NPDPEPG - NKPDPE + i] =
((pdp_entry_t *)KPDPphys)[NKPML4E * NPDPEPG - NKPDPE + i] |=
i = (NKPML4E - 1) * NPDPEPG + KPDPI;
for (j = 0; j < NPDPEPG - KPDPI; ++j) {
nkpt_base = (NPDPEPG - KPDPI) * NPTEPG; /* typically 2 x 512 */
nkpd_phys = (nkpt_phys + NPDPEPG - 1) / NPDPEPG;
kpd_base = allocpages(firstaddr, NPDPEPG - KPDPI);
#define NUPD_TOTAL (NUPDP_TOTAL*NPDPEPG) /* total PD pages */
#define VM_MAX_USER_ADDRESS UVADDR(NUPML4E - 1, NPDPEPG - 1, NPDEPG - 1, 0)
(p->pindex - NUPT_TOTAL) / NPDPEPG);
idx = (p->pindex - NUPT_TOTAL) % NPDPEPG;
pindex = (ptepindex - NUPT_TOTAL) & (NPDPEPG - 1);