npx.c File Reference

#include "core.h"

Defines

#define IO_NPX   0x0F0
#define NPX_NM   7
#define NPX_MF   16
#define fldcw(addr)   __asm("fldcw %0" : : "m" (*addr))
#define fnclex()   __asm("fnclex")
#define fninit()   __asm("fninit")
#define fnsave(addr)   __asm("fnsave %0" : "=m" (*addr))
#define fnstcw(addr)   __asm("fnstcw %0" : "=m" (*addr))
#define fnstsw(addr)   __asm("fnstsw %0" : "=m" (*addr))
#define fp_divide_by_0()   __asm("fldz; fld1; fdiv %st,%st(1); fwait")
#define frstor(addr)   __asm("frstor %0" : : "m" (*addr))
#define fwait()   __asm("fwait")
#define clts()   __asm("clts")
#define stts()   lcr0(rcr0() | CR0_TS)

Functions

int npx586bug1 ()
void npx_nm_except_raw ()
void fpu_save (union savefpu *addr)
void sys_npx_save (struct s_tcb_full *caller)
void sys_npx_restore (struct s_tcb_full *caller)
void do_npxsrv_syscall ()
void npxsrv_syscall ()
void npx_nm_except_test ()
void do_npx_mf_except ()
void npx_mf_except ()
void npx_main (int argc, char **argv)

Variables

__cpu_simple_lock_t npx_lock
int npx_fpu_fdivbug = 0
int npx_use_fxsave = 0

Define Documentation

 
#define clts (   )     __asm("clts")
 

#define fldcw (  addr   )     __asm("fldcw %0" : : "m" (*addr))
 

 
#define fnclex (   )     __asm("fnclex")
 

 
#define fninit (   )     __asm("fninit")
 

#define fnsave (  addr   )     __asm("fnsave %0" : "=m" (*addr))
 

#define fnstcw (  addr   )     __asm("fnstcw %0" : "=m" (*addr))
 

#define fnstsw (  addr   )     __asm("fnstsw %0" : "=m" (*addr))
 

 
#define fp_divide_by_0 (   )     __asm("fldz; fld1; fdiv %st,%st(1); fwait")
 

#define frstor (  addr   )     __asm("frstor %0" : : "m" (*addr))
 

 
#define fwait (   )     __asm("fwait")
 

#define IO_NPX   0x0F0
 

#define NPX_MF   16
 

#define NPX_NM   7
 

 
#define stts (   )     lcr0(rcr0() | CR0_TS)
 


Function Documentation

void do_npx_mf_except (   ) 
 

void do_npxsrv_syscall (   ) 
 

void fpu_save (  union savefpu *  addr  ) 
 

int npx586bug1 (   ) 
 

void npx_main (  int  argc,
char **  argv
) 
 

void npx_mf_except (   ) 
 

void npx_nm_except_raw (   ) 
 

void npx_nm_except_test (   ) 
 

void npxsrv_syscall (   ) 
 

void sys_npx_restore (  struct s_tcb_full *  caller  ) 
 

void sys_npx_save (  struct s_tcb_full *  caller  ) 
 


Variable Documentation

int npx_fpu_fdivbug = 0
 

__cpu_simple_lock_t npx_lock
 

int npx_use_fxsave = 0
 


Generated on Wed May 24 23:05:58 2006 for LSE/OS by  doxygen 1.4.6