Main Page | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

fpu_system.h File Reference

#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/mm.h>

Include dependency graph for fpu_system.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define SETUP_DATA_AREA(arg)   FPU_info = (struct info *) &arg
#define LDT_DESCRIPTOR(s)   (((struct desc_struct *)current->mm->segments)[(s) >> 3])
#define SEG_D_SIZE(x)   ((x).b & (3 << 21))
#define SEG_G_BIT(x)   ((x).b & (1 << 23))
#define SEG_GRANULARITY(x)   (((x).b & (1 << 23)) ? 4096 : 1)
#define SEG_286_MODE(x)   ((x).b & ( 0xff000000 | 0xf0000 | (1 << 23)))
#define SEG_BASE_ADDR(s)
#define SEG_LIMIT(s)   (((s).b & 0xff0000) | ((s).a & 0xffff))
#define SEG_EXECUTE_ONLY(s)   (((s).b & ((1 << 11) | (1 << 9))) == (1 << 11))
#define SEG_WRITE_PERM(s)   (((s).b & ((1 << 11) | (1 << 9))) == (1 << 9))
#define SEG_EXPAND_DOWN(s)
#define I387   (current->tss.i387)
#define FPU_info   (I387.soft.info)
#define FPU_CS   (*(unsigned short *) &(FPU_info->___cs))
#define FPU_SS   (*(unsigned short *) &(FPU_info->___ss))
#define FPU_DS   (*(unsigned short *) &(FPU_info->___ds))
#define FPU_EAX   (FPU_info->___eax)
#define FPU_EFLAGS   (FPU_info->___eflags)
#define FPU_EIP   (FPU_info->___eip)
#define FPU_ORIG_EIP   (FPU_info->___orig_eip)
#define FPU_lookahead   (I387.soft.lookahead)
#define no_ip_update   (*(u_char *)&(I387.soft.no_update))
#define FPU_rm   (*(u_char *)&(I387.soft.rm))
#define access_limit   (*(u_char *)&(I387.soft.alimit))
#define partial_status   (I387.soft.swd)
#define control_word   (I387.soft.cwd)
#define fpu_tag_word   (I387.soft.twd)
#define registers   (I387.soft.st_space)
#define top   (I387.soft.ftop)
#define instruction_address   (*(struct address *)&I387.soft.fip)
#define operand_address   (*(struct address *)&I387.soft.foo)
#define FPU_verify_area(x, y, z)
#define FPU_code_verify_area(z)   FPU_verify_area(VERIFY_READ,(void *)FPU_EIP,z)
#define FPU_get_user(x, y)   get_user((x),(y))
#define FPU_put_user(x, y)   put_user((x),(y))


Define Documentation

#define access_limit   (*(u_char *)&(I387.soft.alimit))
 

Definition at line 56 of file fpu_system.h.

Referenced by FPU_load_store(), and pm_address().

#define control_word   (I387.soft.cwd)
 

Definition at line 59 of file fpu_system.h.

Referenced by arith_invalid(), arith_overflow(), arith_underflow(), compare_st_st(), compare_u_st_st(), denormal_operand(), do_fprem(), fadd__(), fadd_i(), faddp_(), fconst(), fdiv__(), fdiv_i(), fdivp_(), fdivr_(), fdivri(), fdivrp(), finit(), fld_i_(), fldenv(), fmul__(), fmul_i(), fmulp_(), fptan(), FPU_divide_by_zero(), FPU_exception(), FPU_load_store(), FPU_printall(), FPU_round_to_int(), FPU_stack_overflow(), FPU_stack_underflow(), FPU_stack_underflow_i(), FPU_stack_underflow_pop(), FPU_store_bcd(), FPU_store_double(), FPU_store_extended(), FPU_store_int16(), FPU_store_int32(), FPU_store_int64(), FPU_store_single(), fscale(), fsincos(), fsqrt_(), fstenv(), fsub__(), fsub_i(), fsubp_(), fsubr_(), fsubri(), fsubrp(), fxch_i(), fxtract(), math_emulate(), real_1op_NaN(), real_2op_NaN(), set_precision_flag(), set_precision_flag_down(), set_precision_flag_up(), single_arg_2_error(), and trig_arg().

#define FPU_code_verify_area z   )     FPU_verify_area(VERIFY_READ,(void *)FPU_EIP,z)
 

Definition at line 81 of file fpu_system.h.

Referenced by FPU_get_address(), FPU_get_address_16(), math_emulate(), sib(), and valid_prefix().

#define FPU_CS   (*(unsigned short *) &(FPU_info->___cs))
 

Definition at line 39 of file fpu_system.h.

Referenced by FPU_printall(), math_emulate(), and Un_impl().

#define FPU_DS   (*(unsigned short *) &(FPU_info->___ds))
 

Definition at line 41 of file fpu_system.h.

Referenced by FPU_get_address(), FPU_get_address_16(), and math_emulate().

#define FPU_EAX   (FPU_info->___eax)
 

Definition at line 42 of file fpu_system.h.

Referenced by fstsw_ax().

#define FPU_EFLAGS   (FPU_info->___eflags)
 

Definition at line 43 of file fpu_system.h.

Referenced by math_emulate().

#define FPU_EIP   (FPU_info->___eip)
 

Definition at line 44 of file fpu_system.h.

Referenced by math_abort(), and math_emulate().

#define FPU_get_user x,
y   )     get_user((x),(y))
 

Definition at line 84 of file fpu_system.h.

Referenced by fldenv(), FPU_get_address(), FPU_get_address_16(), FPU_load_bcd(), FPU_load_double(), FPU_load_int16(), FPU_load_int32(), FPU_load_single(), FPU_load_store(), FPU_printall(), math_emulate(), sib(), Un_impl(), and valid_prefix().

#define FPU_info   (I387.soft.info)
 

Definition at line 37 of file fpu_system.h.

Referenced by FPU_exception(), FPU_get_address(), FPU_get_address_16(), FPU_illegal(), FPU_load_store(), math_emulate(), pm_address(), and vm86_segment().

#define FPU_lookahead   (I387.soft.lookahead)
 

Definition at line 47 of file fpu_system.h.

Referenced by math_emulate().

#define FPU_ORIG_EIP   (FPU_info->___orig_eip)
 

Definition at line 45 of file fpu_system.h.

Referenced by FPU_printall(), math_abort(), math_emulate(), and Un_impl().

#define FPU_put_user x,
y   )     put_user((x),(y))
 

Definition at line 85 of file fpu_system.h.

Referenced by FPU_load_store(), FPU_store_bcd(), FPU_store_double(), FPU_store_extended(), FPU_store_int16(), FPU_store_int32(), FPU_store_single(), and fstenv().

#define FPU_rm   (*(u_char *)&(I387.soft.rm))
 

Definition at line 52 of file fpu_system.h.

Referenced by fadd__(), fadd_i(), faddp_(), fcom_st(), fcompp(), fcompst(), fconst(), fdiv__(), fdiv_i(), fdivp_(), fdivr_(), fdivri(), fdivrp(), ffree_(), ffreep(), finit_(), fld_i_(), fmul__(), fmul_i(), fmulp_(), fp_nop(), FPU_etc(), FPU_triga(), FPU_trigb(), fst_i_(), fstp_i(), fstsw_(), fsub__(), fsub_i(), fsubp_(), fsubr_(), fsubri(), fsubrp(), fucom_(), fucomp(), fucompp(), fxch_i(), and math_emulate().

#define FPU_SS   (*(unsigned short *) &(FPU_info->___ss))
 

Definition at line 40 of file fpu_system.h.

#define fpu_tag_word   (I387.soft.twd)
 

Definition at line 60 of file fpu_system.h.

Referenced by finit(), FPU_copy_to_reg0(), FPU_empty_i(), FPU_gettag(), FPU_gettag0(), FPU_gettagi(), FPU_pop(), FPU_settag(), FPU_settag0(), FPU_settagi(), FPU_stackoverflow(), fstenv(), and fxch_i().

#define FPU_verify_area x,
y,
z   ) 
 

Value:

Definition at line 67 of file fpu_system.h.

Referenced by fldenv(), FPU_load_bcd(), FPU_load_double(), FPU_load_extended(), FPU_load_int16(), FPU_load_int32(), FPU_load_int64(), FPU_load_single(), FPU_load_store(), FPU_store_bcd(), FPU_store_double(), FPU_store_extended(), FPU_store_int16(), FPU_store_int32(), FPU_store_int64(), FPU_store_single(), frstor(), fsave(), fstenv(), restore_i387_soft(), and save_i387_soft().

#define I387   (current->tss.i387)
 

Definition at line 36 of file fpu_system.h.

Referenced by fstenv().

#define instruction_address   (*(struct address *)&I387.soft.fip)
 

Definition at line 64 of file fpu_system.h.

Referenced by finit(), fldenv(), fstenv(), and math_emulate().

#define LDT_DESCRIPTOR s   )     (((struct desc_struct *)current->mm->segments)[(s) >> 3])
 

Definition at line 23 of file fpu_system.h.

Referenced by math_emulate(), and pm_address().

#define no_ip_update   (*(u_char *)&(I387.soft.no_update))
 

Definition at line 51 of file fpu_system.h.

Referenced by fclex(), finit(), fstsw_ax(), and math_emulate().

#define operand_address   (*(struct address *)&I387.soft.foo)
 

Definition at line 65 of file fpu_system.h.

Referenced by finit(), fldenv(), fstenv(), and math_emulate().

#define partial_status   (I387.soft.swd)
 

Definition at line 58 of file fpu_system.h.

Referenced by arith_underflow(), denormal_operand(), do_fprem(), fclex(), finit(), fldenv(), FPU_exception(), FPU_load_store(), FPU_printall(), fstenv(), math_emulate(), set_precision_flag(), set_precision_flag_down(), set_precision_flag_up(), and trig_arg().

data align l3 SAVE_ALL sethi l4 l5 inc l5 st l4 l3 l0 l1 l2 rd l5 sub sp Make room for input &locals hidden arg arg spill doubleword alignment registers[72] local var or l0 wr psr WRITE_PAUSE wr psr WRITE_PAUSE call o0 Pass address of registers wr y sethi l4 l5 dec l5 st add sp Undo the kgdb trap frame RESTORE_ALL globl bad_trap_handler psr WRITE_PAUSE mov o0 trap number mov o1 psr call o2 pc RESTORE_ALL align globl patch_handler_irq g2 wr psr WRITE_PAUSE wr psr WRITE_PAUSE mov o0 irq level o1 pt_regs ptr or g2 restore PIL after handler_irq wr psr keep ET up WRITE_PAUSE RESTORE_ALL align globl bad_instruction l4 l6 sethi l7 and l5 cmp l7 sethi l4 be f cmp l4 be f SAVE_ALL wr psr re enable traps WRITE_PAUSE add o0 mov o1 mov o2 call o3 g0 rett l2 align globl priv_instruction psr WRITE_PAUSE add o0 mov o1 mov o2 call o3 RESTORE_ALL align globl mna_handler g0 be mna_fromuser nop SAVE_ALL wr psr WRITE_PAUSE o1 call o0 RESTORE_ALL psr re enable traps WRITE_PAUSE o1 call o0 RESTORE_ALL align globl fpd_trap_handler psr re enable traps WRITE_PAUSE add o0 mov o1 mov o2 call o3 RESTORE_ALL align globl fpe_trap_handler l5 cmp l5 be f sethi l5 or l5 cmp l5 bne f sethi l5 or l5 wr psr WRITE_PAUSE jmp l5 rett l5 or l5 wr psr WRITE_PAUSE jmp l5 rett psr re enable traps WRITE_PAUSE add o0 mov o1 mov o2 call o3 RESTORE_ALL align globl do_tag_overflow psr re enable traps WRITE_PAUSE add o0 mov o1 mov o2 call o3 RESTORE_ALL align globl do_watchpoint psr re enable traps WRITE_PAUSE add o0 mov o1 mov o2 call o3 RESTORE_ALL align globl do_reg_access psr re enable traps WRITE_PAUSE add o0 mov o1 mov o2 call o3 RESTORE_ALL align globl do_cp_disabled psr re enable traps WRITE_PAUSE add o0 mov o1 mov o2 call o3 RESTORE_ALL align globl do_cp_exception psr re enable traps WRITE_PAUSE add o0 mov o1 mov o2 call o3 RESTORE_ALL align globl do_hw_divzero psr re enable traps WRITE_PAUSE add o0 mov o1 mov o2 call o3 RESTORE_ALL align globl do_flush_windows psr WRITE_PAUSE andcc g0 bne dfw_kernel nop call l1 add l2 st st RESTORE_ALL globl flush_patch_one l1 add l2 st st RESTORE_ALL align globl getcc_trap_handler g1 give user and g1 only ICC bits in psr jmp l2 advance over trap instruction rett l2 x4 like this align globl setcc_trap_handler l4 set l5 andn l0 clear ICC bits in psr and l4 clear non ICC bits in user value or l4 or them in mix mix mix wr psr set new psr WRITE_PAUSE TI scumbags jmp l2 advance over trap instruction rett l2 x4 like this align globl linux_trap_nmi_sun4c l5 l5 l6 andn l6 stb or l0 wr psr WRITE_PAUSE sethi o0 add o0 lda[%o0] o2 sync vaddr sub o0 lda[%o0] o1 sync error add o0 lda[%o0] o4 async vaddr sub o0 lda[%o0] o3 async error call o0 RESTORE_ALL align globl C_LABEL(invalid_segment_patch1_ff) xc.globl C_LABEL(invalid_segment_patch2_ff) C_LABEL(invalid_segment_patch1_ff) rd g4 WRITE_PAUSE mov o0 g5 WRITE_PAUSE mov o1 add o2 o7 globl flush_patch_three C_LABEL(sys_clone) rd g4 WRITE_PAUSE cmp x0 Is new_usp NULL rd g5 WRITE_PAUSE a f mov o1 use callers usp andn o1 align to add o2 o7 globl flush_patch_four C_LABEL(sys_vfork) rd g4 WRITE_PAUSE rd g5 WRITE_PAUSE std sethi o0 mov o1 or o0 sethi l1 jmpl l1 g0 add o2 align l7 b syscall_is_too_hard or l7 l7 mov o0 mov o1 mov o2 jmpl l7 g0 mov o3 o0 mov o1 mov o2 mov o3 b f mov o4 globl C_LABEL(ret_from_syscall) C_LABEL(ret_from_syscall) o6 jmpl o)   (I387.soft.st_space)
 

Definition at line 61 of file fpu_system.h.

Referenced by handle_exception().

#define SEG_286_MODE x   )     ((x).b & ( 0xff000000 | 0xf0000 | (1 << 23)))
 

Definition at line 27 of file fpu_system.h.

#define SEG_BASE_ADDR s   ) 
 

Value:

(((s).b & 0xff000000) \
                                 | (((s).b & 0xff) << 16) | ((s).a >> 16))

Definition at line 28 of file fpu_system.h.

Referenced by math_emulate(), and pm_address().

#define SEG_D_SIZE x   )     ((x).b & (3 << 21))
 

Definition at line 24 of file fpu_system.h.

Referenced by math_emulate().

#define SEG_EXECUTE_ONLY s   )     (((s).b & ((1 << 11) | (1 << 9))) == (1 << 11))
 

Definition at line 31 of file fpu_system.h.

Referenced by pm_address().

#define SEG_EXPAND_DOWN s   ) 
 

Value:

(((s).b & ((1 << 11) | (1 << 10))) \
                                 == (1 << 10))

Definition at line 33 of file fpu_system.h.

Referenced by pm_address().

#define SEG_G_BIT x   )     ((x).b & (1 << 23))
 

Definition at line 25 of file fpu_system.h.

Referenced by pm_address().

#define SEG_GRANULARITY x   )     (((x).b & (1 << 23)) ? 4096 : 1)
 

Definition at line 26 of file fpu_system.h.

Referenced by math_emulate(), and pm_address().

#define SEG_LIMIT s   )     (((s).b & 0xff0000) | ((s).a & 0xffff))
 

Definition at line 30 of file fpu_system.h.

Referenced by math_emulate(), and pm_address().

#define SEG_WRITE_PERM s   )     (((s).b & ((1 << 11) | (1 << 9))) == (1 << 9))
 

Definition at line 32 of file fpu_system.h.

Referenced by pm_address().

#define SETUP_DATA_AREA arg   )     FPU_info = (struct info *) &arg
 

Definition at line 21 of file fpu_system.h.

Referenced by math_emulate().

#define top   (I387.soft.ftop)
 

Definition at line 62 of file fpu_system.h.

Referenced by acornfb_init(), bdelete(), binsert(), cursor_report(), do_con_trol(), fdecstp(), fincstp(), finit(), fldenv(), FPU_copy_to_reg0(), FPU_empty_i(), FPU_gettag0(), FPU_gettagi(), FPU_load_store(), FPU_pop(), FPU_settag0(), FPU_settagi(), FPU_stack_overflow(), FPU_stackoverflow(), frstor(), fsave(), fxch_i(), gotoxay(), gotoxy(), inherit_prom_mappings(), lf(), reset_terminal(), ri(), smt_fill_state(), strnlen_user(), and vc_resize().