FPU cleanup

- last reference to MF_USED_FPU removed

- proc_used_fpu() used to test for MF_FPU_INITIALIZED
This commit is contained in:
Tomas Hruby 2010-07-01 12:23:25 +00:00
parent b5ae3961bb
commit 7920d48156
5 changed files with 6 additions and 6 deletions

View 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 {

View 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 || \

View 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);

View 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();

View 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();