Lines Matching refs:next
167 pub unsafe fn switch_process(prev: Arc<ProcessControlBlock>, next: Arc<ProcessControlBlock>) { in switch_process()
174 Self::switch_process_fpu(&prev, &next); in switch_process()
175 Self::switch_local_context(&prev, &next); in switch_process()
178 let next_addr_space = next.basic().user_vm().as_ref().unwrap().clone(); in switch_process()
188 let next_arch = SpinLockGuard::leak(next.arch_info_irqsave()) as *mut ArchPCBInfo; in switch_process()
195 PROCESS_SWITCH_RESULT.as_mut().unwrap().get_mut().next_pcb = Some(next); in switch_process()
202 fn switch_process_fpu(prev: &Arc<ProcessControlBlock>, next: &Arc<ProcessControlBlock>) { in switch_process_fpu()
204 let next_regs = unsafe { Self::task_trapframe(next) }; in switch_process_fpu()
208 next.arch_info_irqsave().fp_state.restore(next_regs); in switch_process_fpu()
211 fn switch_local_context(prev: &Arc<ProcessControlBlock>, next: &Arc<ProcessControlBlock>) { in switch_local_context()
215 .restore(&next.arch_info_irqsave().local_context); in switch_local_context()
229 unsafe extern "C" fn switch_to_inner(prev: *mut ArchPCBInfo, next: *mut ArchPCBInfo) { in switch_to_inner()