Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
fpu_entry.c File Reference
#include <linux/signal.h>
#include <linux/regset.h>
#include <asm/uaccess.h>
#include <asm/traps.h>
#include <asm/desc.h>
#include <asm/user.h>
#include <asm/i387.h>
#include "fpu_system.h"
#include "fpu_emu.h"
#include "exception.h"
#include "control_w.h"
#include "status_w.h"

Go to the source code of this file.

Macros

#define __BAD__   FPU_illegal /* Illegal on an 80486, causes SIGILL */
 
#define _d9_d8_   fstp_i /* unofficial code (19) */
 
#define _dc_d0_   fcom_st /* unofficial code (14) */
 
#define _dc_d8_   fcompst /* unofficial code (1c) */
 
#define _dd_c8_   fxch_i /* unofficial code (0d) */
 
#define _de_d0_   fcompst /* unofficial code (16) */
 
#define _df_c0_   ffreep /* unofficial code (07) ffree + pop */
 
#define _df_c8_   fxch_i /* unofficial code (0f) */
 
#define _df_d0_   fstp_i /* unofficial code (17) */
 
#define _df_d8_   fstp_i /* unofficial code (1f) */
 
#define _NONE_   0 /* Take no special action */
 
#define _REG0_   1 /* Need to check for not empty st(0) */
 
#define _REGI_   2 /* Need to check for not empty st(0) and st(rm) */
 
#define _REGi_   0 /* Uses st(rm) */
 
#define _PUSH_   3 /* Need to check for space to push onto stack */
 
#define _null_   4 /* Function illegal or not implemented */
 
#define _REGIi   5 /* Uses st(0) and st(rm), result to st(rm) */
 
#define _REGIp   6 /* Uses st(0) and st(rm), result to st(rm) then pop */
 
#define _REGIc   0 /* Compare st(0) and st(rm) */
 
#define _REGIn   0 /* Uses st(0) and st(rm), but handle checks later */
 
#define S387   ((struct i387_soft_struct *)s387)
 
#define sstatus_word()   ((S387->swd & ~SW_Top & 0xffff) | ((S387->ftop << SW_Top_Shift) & SW_Top))
 

Functions

void math_emulate (struct math_emu_info *info)
 
void math_abort (struct math_emu_info *info, unsigned int signal)
 
int fpregs_soft_set (struct task_struct *target, const struct user_regset *regset, unsigned int pos, unsigned int count, const void *kbuf, const void __user *ubuf)
 
int fpregs_soft_get (struct task_struct *target, const struct user_regset *regset, unsigned int pos, unsigned int count, void *kbuf, void __user *ubuf)
 

Macro Definition Documentation

#define __BAD__   FPU_illegal /* Illegal on an 80486, causes SIGILL */

Definition at line 42 of file fpu_entry.c.

#define _d9_d8_   fstp_i /* unofficial code (19) */

Definition at line 51 of file fpu_entry.c.

#define _dc_d0_   fcom_st /* unofficial code (14) */

Definition at line 52 of file fpu_entry.c.

#define _dc_d8_   fcompst /* unofficial code (1c) */

Definition at line 53 of file fpu_entry.c.

#define _dd_c8_   fxch_i /* unofficial code (0d) */

Definition at line 54 of file fpu_entry.c.

#define _de_d0_   fcompst /* unofficial code (16) */

Definition at line 55 of file fpu_entry.c.

#define _df_c0_   ffreep /* unofficial code (07) ffree + pop */

Definition at line 56 of file fpu_entry.c.

#define _df_c8_   fxch_i /* unofficial code (0f) */

Definition at line 57 of file fpu_entry.c.

#define _df_d0_   fstp_i /* unofficial code (17) */

Definition at line 58 of file fpu_entry.c.

#define _df_d8_   fstp_i /* unofficial code (1f) */

Definition at line 59 of file fpu_entry.c.

#define _NONE_   0 /* Take no special action */

Definition at line 87 of file fpu_entry.c.

#define _null_   4 /* Function illegal or not implemented */

Definition at line 92 of file fpu_entry.c.

#define _PUSH_   3 /* Need to check for space to push onto stack */

Definition at line 91 of file fpu_entry.c.

#define _REG0_   1 /* Need to check for not empty st(0) */

Definition at line 88 of file fpu_entry.c.

#define _REGI_   2 /* Need to check for not empty st(0) and st(rm) */

Definition at line 89 of file fpu_entry.c.

#define _REGi_   0 /* Uses st(rm) */

Definition at line 90 of file fpu_entry.c.

#define _REGIc   0 /* Compare st(0) and st(rm) */

Definition at line 95 of file fpu_entry.c.

#define _REGIi   5 /* Uses st(0) and st(rm), result to st(rm) */

Definition at line 93 of file fpu_entry.c.

#define _REGIn   0 /* Uses st(0) and st(rm), but handle checks later */

Definition at line 96 of file fpu_entry.c.

#define _REGIp   6 /* Uses st(0) and st(rm), result to st(rm) then pop */

Definition at line 94 of file fpu_entry.c.

#define S387   ((struct i387_soft_struct *)s387)

Definition at line 676 of file fpu_entry.c.

#define sstatus_word ( )    ((S387->swd & ~SW_Top & 0xffff) | ((S387->ftop << SW_Top_Shift) & SW_Top))

Definition at line 677 of file fpu_entry.c.

Function Documentation

int fpregs_soft_get ( struct task_struct target,
const struct user_regset regset,
unsigned int  pos,
unsigned int  count,
void kbuf,
void __user ubuf 
)

Definition at line 732 of file fpu_entry.c.

int fpregs_soft_set ( struct task_struct target,
const struct user_regset regset,
unsigned int  pos,
unsigned int  count,
const void kbuf,
const void __user ubuf 
)

Definition at line 680 of file fpu_entry.c.

void math_abort ( struct math_emu_info info,
unsigned int  signal 
)

Definition at line 663 of file fpu_entry.c.

void math_emulate ( struct math_emu_info info)

Definition at line 135 of file fpu_entry.c.