Changeset View
Changeset View
Standalone View
Standalone View
sys/arm64/arm64/machdep.c
Show First 20 Lines • Show All 563 Lines • ▼ Show 20 Lines | exec_setregs(struct thread *td, struct image_params *imgp, uintptr_t stack) | ||||
td->td_pcb->pcb_tpidrro_el0 = 0; | td->td_pcb->pcb_tpidrro_el0 = 0; | ||||
WRITE_SPECIALREG(tpidrro_el0, 0); | WRITE_SPECIALREG(tpidrro_el0, 0); | ||||
WRITE_SPECIALREG(tpidr_el0, 0); | WRITE_SPECIALREG(tpidr_el0, 0); | ||||
#ifdef VFP | #ifdef VFP | ||||
vfp_reset_state(td, pcb); | vfp_reset_state(td, pcb); | ||||
#endif | #endif | ||||
/* TODO: Shouldn't we also reset pcb_dbg_regs? */ | /* | ||||
* Clear debug register state. It is not applicable to the new process. | |||||
*/ | |||||
bzero(&pcb->pcb_dbg_regs, sizeof(pcb->pcb_dbg_regs)); | |||||
} | } | ||||
/* Sanity check these are the same size, they will be memcpy'd to and fro */ | /* Sanity check these are the same size, they will be memcpy'd to and fro */ | ||||
CTASSERT(sizeof(((struct trapframe *)0)->tf_x) == | CTASSERT(sizeof(((struct trapframe *)0)->tf_x) == | ||||
sizeof((struct gpregs *)0)->gp_x); | sizeof((struct gpregs *)0)->gp_x); | ||||
CTASSERT(sizeof(((struct trapframe *)0)->tf_x) == | CTASSERT(sizeof(((struct trapframe *)0)->tf_x) == | ||||
sizeof((struct reg *)0)->x); | sizeof((struct reg *)0)->x); | ||||
▲ Show 20 Lines • Show All 910 Lines • Show Last 20 Lines |