|
|
1.1 root 1: #ifndef _I386_MATH_EMU_H
2: #define _I386_MATH_EMU_H
3:
4: #include <asm/sigcontext.h>
5:
6: void restore_i387_soft(struct _fpstate *buf);
7: struct _fpstate * save_i387_soft(struct _fpstate * buf);
8:
9: struct fpu_reg {
10: char sign;
11: char tag;
12: long exp;
13: unsigned sigl;
14: unsigned sigh;
15: };
16:
17:
18: /* This structure matches the layout of the data saved to the stack
19: following a device-not-present interrupt, part of it saved
20: automatically by the 80386/80486.
21: */
22: struct info {
23: long ___orig_eip;
24: long ___ret_from_system_call;
25: long ___ebx;
26: long ___ecx;
27: long ___edx;
28: long ___esi;
29: long ___edi;
30: long ___ebp;
31: long ___eax;
32: long ___ds;
33: long ___es;
34: long ___fs;
35: long ___gs;
36: long ___orig_eax;
37: long ___eip;
38: long ___cs;
39: long ___eflags;
40: long ___esp;
41: long ___ss;
42: long ___vm86_es; /* This and the following only in vm86 mode */
43: long ___vm86_ds;
44: long ___vm86_fs;
45: long ___vm86_gs;
46: };
47:
48: /* Interface for converting data between the emulator format
49: * and the hardware format. Used for core dumping and for
50: * ptrace(2) */
51: void hardreg_to_softreg(const char hardreg[10],
52: struct fpu_reg *soft_reg);
53:
54: void softreg_to_hardreg(const struct fpu_reg *rp, char d[10],
55: long int control_word);
56:
57: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.