FPU cleanup
- last reference to MF_USED_FPU removed - proc_used_fpu() used to test for MF_FPU_INITIALIZED
This commit is contained in:
parent
b5ae3961bb
commit
7920d48156
|
@ -219,7 +219,7 @@ PUBLIC void save_fpu(struct proc *pr)
|
||||||
|
|
||||||
PUBLIC void restore_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();
|
fninit();
|
||||||
pr->p_misc_flags |= MF_FPU_INITIALIZED;
|
pr->p_misc_flags |= MF_FPU_INITIALIZED;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -146,7 +146,7 @@ struct proc {
|
||||||
#define proc_is_preempted(p) ((p)->p_rts_flags & RTS_PREEMPTED)
|
#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_no_quantum(p) ((p)->p_rts_flags & RTS_NO_QUANTUM)
|
||||||
#define proc_ptr_ok(p) ((p)->p_magic == PMAGIC)
|
#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 */
|
/* test whether the process is scheduled by the kernel's default policy */
|
||||||
#define proc_kernel_scheduler(p) ((p)->p_scheduler == NULL || \
|
#define proc_kernel_scheduler(p) ((p)->p_scheduler == NULL || \
|
||||||
|
|
|
@ -67,7 +67,7 @@ PUBLIC int do_fork(struct proc * caller, message * m_ptr)
|
||||||
#if (_MINIX_CHIP == _CHIP_INTEL)
|
#if (_MINIX_CHIP == _CHIP_INTEL)
|
||||||
rpc->p_seg.p_ldt_sel = old_ldt_sel; /* restore descriptors */
|
rpc->p_seg.p_ldt_sel = old_ldt_sel; /* restore descriptors */
|
||||||
rpc->p_fpu_state.fpu_save_area_p = old_fpu_save_area_p;
|
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,
|
memcpy(rpc->p_fpu_state.fpu_save_area_p,
|
||||||
rpp->p_fpu_state.fpu_save_area_p,
|
rpp->p_fpu_state.fpu_save_area_p,
|
||||||
FPU_XFP_SIZE);
|
FPU_XFP_SIZE);
|
||||||
|
|
|
@ -29,7 +29,7 @@ PUBLIC int do_getmcontext(struct proc * caller, message * m_ptr)
|
||||||
rp = proc_addr(proc_nr);
|
rp = proc_addr(proc_nr);
|
||||||
|
|
||||||
#if (_MINIX_CHIP == _CHIP_INTEL)
|
#if (_MINIX_CHIP == _CHIP_INTEL)
|
||||||
if (!(rp->p_misc_flags & MF_FPU_INITIALIZED))
|
if (!proc_used_fpu(rp)) {
|
||||||
return(OK); /* No state to copy */
|
return(OK); /* No state to copy */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ PUBLIC int do_getmcontext(struct proc * caller, message * m_ptr)
|
||||||
#if (_MINIX_CHIP == _CHIP_INTEL)
|
#if (_MINIX_CHIP == _CHIP_INTEL)
|
||||||
/* Copy FPU state */
|
/* Copy FPU state */
|
||||||
mc.mc_fpu_flags = 0;
|
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 */
|
/* make sure that the FPU context is saved into proc structure first */
|
||||||
if (fpu_owner == rp) {
|
if (fpu_owner == rp) {
|
||||||
disable_fpu_exception();
|
disable_fpu_exception();
|
||||||
|
|
|
@ -44,7 +44,7 @@ PUBLIC int do_sigsend(struct proc * caller, message * m_ptr)
|
||||||
/* Copy the registers to the sigcontext structure. */
|
/* Copy the registers to the sigcontext structure. */
|
||||||
memcpy(&sc.sc_regs, (char *) &rp->p_reg, sizeof(sigregs));
|
memcpy(&sc.sc_regs, (char *) &rp->p_reg, sizeof(sigregs));
|
||||||
#if (_MINIX_CHIP == _CHIP_INTEL)
|
#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 */
|
/* save the FPU context before saving it to the sig context */
|
||||||
if (fpu_owner == rp) {
|
if (fpu_owner == rp) {
|
||||||
disable_fpu_exception();
|
disable_fpu_exception();
|
||||||
|
|
Loading…
Reference in a new issue