]> Zhao Yanbai Git Server - minix.git/commitdiff
FPU cleanup
authorTomas Hruby <tom@minix3.org>
Thu, 1 Jul 2010 12:23:25 +0000 (12:23 +0000)
committerTomas Hruby <tom@minix3.org>
Thu, 1 Jul 2010 12:23:25 +0000 (12:23 +0000)
- last reference to MF_USED_FPU removed

- proc_used_fpu() used to test for MF_FPU_INITIALIZED

kernel/arch/i386/arch_system.c
kernel/proc.h
kernel/system/do_fork.c
kernel/system/do_mcontext.c
kernel/system/do_sigsend.c

index e98888786707dc973e4feed770374cb9bce5fcfc..ee039e3a9359ff27190d25188e2eb38658d633e8 100644 (file)
@@ -219,7 +219,7 @@ PUBLIC void save_fpu(struct proc *pr)
 
 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 {
index 115bf01ac0dc39ce3fa70851a44bcd464b538480..45da12c9e88e1d5356dba217180dda46bca12da0 100644 (file)
@@ -146,7 +146,7 @@ struct proc {
 #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 || \
index 9f25c893d907b2af16b815aa21d67128485e5dd7..c6956a5e60abdde03e474c9a2d24487ef8477c1b 100644 (file)
@@ -67,7 +67,7 @@ PUBLIC int do_fork(struct proc * caller, message * m_ptr)
 #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);
index fa0ed772d625ba6b3cc73cb67988a89783a4686f..7b27137e0e6fbc0f430fdd69fa9febe49dcf1cf7 100644 (file)
@@ -29,7 +29,7 @@ PUBLIC int do_getmcontext(struct proc * caller, message * m_ptr)
   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
 
@@ -41,7 +41,7 @@ PUBLIC int do_getmcontext(struct proc * caller, message * m_ptr)
 #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();
index 6da9463a0ab3d66dbc89474265e9760814522389..3346ae10edde20f6d80de272c9c4ae022fca7c56 100644 (file)
@@ -44,7 +44,7 @@ PUBLIC int do_sigsend(struct proc * caller, message * m_ptr)
   /* 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();