PUBLIC void restore_fpu(struct proc *pr)
{
- if(!(pr->p_misc_flags & MF_FPU_INITIALIZED)) {
+ if(!proc_used_fpu(pr)) {
fninit();
pr->p_misc_flags |= MF_FPU_INITIALIZED;
} else {
#define proc_is_preempted(p) ((p)->p_rts_flags & RTS_PREEMPTED)
#define proc_no_quantum(p) ((p)->p_rts_flags & RTS_NO_QUANTUM)
#define proc_ptr_ok(p) ((p)->p_magic == PMAGIC)
-#define proc_used_fpu(p) ((p)->p_misc_flags & (MF_FPU_INITIALIZED|MF_USED_FPU))
+#define proc_used_fpu(p) ((p)->p_misc_flags & (MF_FPU_INITIALIZED))
/* test whether the process is scheduled by the kernel's default policy */
#define proc_kernel_scheduler(p) ((p)->p_scheduler == NULL || \
#if (_MINIX_CHIP == _CHIP_INTEL)
rpc->p_seg.p_ldt_sel = old_ldt_sel; /* restore descriptors */
rpc->p_fpu_state.fpu_save_area_p = old_fpu_save_area_p;
- if(rpp->p_misc_flags & MF_FPU_INITIALIZED)
+ if(proc_used_fpu(rpp)) {
memcpy(rpc->p_fpu_state.fpu_save_area_p,
rpp->p_fpu_state.fpu_save_area_p,
FPU_XFP_SIZE);
rp = proc_addr(proc_nr);
#if (_MINIX_CHIP == _CHIP_INTEL)
- if (!(rp->p_misc_flags & MF_FPU_INITIALIZED))
+ if (!proc_used_fpu(rp)) {
return(OK); /* No state to copy */
#endif
#if (_MINIX_CHIP == _CHIP_INTEL)
/* Copy FPU state */
mc.mc_fpu_flags = 0;
- if (rp->p_misc_flags & MF_FPU_INITIALIZED) {
+ if (proc_used_fpu(rp)) {
/* make sure that the FPU context is saved into proc structure first */
if (fpu_owner == rp) {
disable_fpu_exception();
/* Copy the registers to the sigcontext structure. */
memcpy(&sc.sc_regs, (char *) &rp->p_reg, sizeof(sigregs));
#if (_MINIX_CHIP == _CHIP_INTEL)
- if(rp->p_misc_flags & MF_FPU_INITIALIZED) {
+ if(proc_used_fpu(rp)) {
/* save the FPU context before saving it to the sig context */
if (fpu_owner == rp) {
disable_fpu_exception();