MP_TRAMPOLINE
pmap_kremove(MP_TRAMPOLINE, PAGE_SIZE);
dwordptr[1] = MP_TRAMPOLINE >> 4;
x86_ipi(MP_TRAMPOLINE/PAGE_SIZE, ci->ci_apicid,
x86_ipi(MP_TRAMPOLINE/PAGE_SIZE, ci->ci_apicid,
pmap_kenter_pa(MP_TRAMPOLINE, MP_TRAMPOLINE, PROT_READ | PROT_EXEC);
hiber_info->ranges[hiber_info->nranges].base = MP_TRAMPOLINE;
pmap_kenter_pa(MP_TRAMPOLINE, MP_TRAMPOLINE,
memset((caddr_t)MP_TRAMPOLINE, 0xcc, PAGE_SIZE);
memcpy((caddr_t)MP_TRAMPOLINE,
pmap_kremove(MP_TRAMPOLINE, PAGE_SIZE);
if (avail_start < MP_TRAMPOLINE + PAGE_SIZE)
avail_start = MP_TRAMPOLINE + PAGE_SIZE;
pmap_kenter_pa((vaddr_t)MP_TRAMPOLINE, /* virtual */
(paddr_t)MP_TRAMPOLINE, /* physical */
memcpy((caddr_t)MP_TRAMPOLINE, cpu_spinup_trampoline,
pmap_write_protect(pmap_kernel(), (vaddr_t)MP_TRAMPOLINE,
(vaddr_t)(MP_TRAMPOLINE + NBPG), PROT_READ | PROT_EXEC);
dwordptr[1] = MP_TRAMPOLINE >> 4;
i386_ipi(MP_TRAMPOLINE / PAGE_SIZE, ci->ci_apicid,
i386_ipi(MP_TRAMPOLINE / PAGE_SIZE, ci->ci_apicid,
hiber_info->ranges[hiber_info->nranges].base = MP_TRAMPOLINE;
if (a < MP_TRAMPOLINE + NBPG)
a = MP_TRAMPOLINE + NBPG;