Changeset View
Changeset View
Standalone View
Standalone View
sys/arm64/arm64/vm_machdep.c
Show First 20 Lines • Show All 102 Lines • ▼ Show 20 Lines | #endif | ||||
/* Set the return value registers for fork() */ | /* Set the return value registers for fork() */ | ||||
td2->td_pcb->pcb_x[8] = (uintptr_t)fork_return; | td2->td_pcb->pcb_x[8] = (uintptr_t)fork_return; | ||||
td2->td_pcb->pcb_x[9] = (uintptr_t)td2; | td2->td_pcb->pcb_x[9] = (uintptr_t)td2; | ||||
td2->td_pcb->pcb_lr = (uintptr_t)fork_trampoline; | td2->td_pcb->pcb_lr = (uintptr_t)fork_trampoline; | ||||
td2->td_pcb->pcb_sp = (uintptr_t)td2->td_frame; | td2->td_pcb->pcb_sp = (uintptr_t)td2->td_frame; | ||||
td2->td_pcb->pcb_fpusaved = &td2->td_pcb->pcb_fpustate; | td2->td_pcb->pcb_fpusaved = &td2->td_pcb->pcb_fpustate; | ||||
td2->td_pcb->pcb_vfpcpu = UINT_MAX; | td2->td_pcb->pcb_vfpcpu = UINT_MAX; | ||||
td2->td_pcb->pcb_fpusaved->vfp_fpcr = initial_fpcr; | |||||
/* Setup to release spin count in fork_exit(). */ | /* Setup to release spin count in fork_exit(). */ | ||||
td2->td_md.md_spinlock_count = 1; | td2->td_md.md_spinlock_count = 1; | ||||
td2->td_md.md_saved_daif = td1->td_md.md_saved_daif & ~DAIF_I_MASKED; | td2->td_md.md_saved_daif = td1->td_md.md_saved_daif & ~DAIF_I_MASKED; | ||||
} | } | ||||
void | void | ||||
cpu_reset(void) | cpu_reset(void) | ||||
▲ Show 20 Lines • Show All 183 Lines • Show Last 20 Lines |