Changeset View
Changeset View
Standalone View
Standalone View
sys/arm64/arm64/vm_machdep.c
Show First 20 Lines • Show All 85 Lines • ▼ Show 20 Lines | #endif | ||||
} | } | ||||
pcb2 = (struct pcb *)(td2->td_kstack + | pcb2 = (struct pcb *)(td2->td_kstack + | ||||
td2->td_kstack_pages * PAGE_SIZE) - 1; | td2->td_kstack_pages * PAGE_SIZE) - 1; | ||||
td2->td_pcb = pcb2; | td2->td_pcb = pcb2; | ||||
bcopy(td1->td_pcb, pcb2, sizeof(*pcb2)); | bcopy(td1->td_pcb, pcb2, sizeof(*pcb2)); | ||||
/* Clear the debug register state. */ | |||||
bzero(&pcb2->pcb_dbg_regs, sizeof(pcb2->pcb_dbg_regs)); | |||||
tf = (struct trapframe *)STACKALIGN((struct trapframe *)pcb2 - 1); | tf = (struct trapframe *)STACKALIGN((struct trapframe *)pcb2 - 1); | ||||
bcopy(td1->td_frame, tf, sizeof(*tf)); | bcopy(td1->td_frame, tf, sizeof(*tf)); | ||||
tf->tf_x[0] = 0; | tf->tf_x[0] = 0; | ||||
tf->tf_x[1] = 0; | tf->tf_x[1] = 0; | ||||
tf->tf_spsr = td1->td_frame->tf_spsr & (PSR_M_32 | PSR_DAIF); | tf->tf_spsr = td1->td_frame->tf_spsr & (PSR_M_32 | PSR_DAIF); | ||||
td2->td_frame = tf; | td2->td_frame = tf; | ||||
▲ Show 20 Lines • Show All 198 Lines • Show Last 20 Lines |