|
|
1.1 root 1: /*
2: * /usr/include/ieeefp.h
3: *
4: * Describes the stack frame presented to a user signal handler,
5: * including (optional) floating point context.
6: *
7: * Revised Mon Mar 22 13:11:43 1993 CST
8: */
9:
10: #ifndef __IEEEFP_H__
11: #define __IEEEFP_H__
12:
13: #include <sys/reg.h>
14: /*
15: * "fpem" objects are for floating point emulation.
16: *
17: * The stackframe passed to a signal handler includes a pointer "fpsp".
18: * This pointer is a (struct _fpstate *) when a true coprocessor is in use.
19: * It is actually a (struct _fpemstate *), and must be cast thus, when
20: * the emulator is used.
21: * The declaration of "fpsp" is kept as (struct _fpstate *) for BCS
22: * compatibility.
23: */
24:
25: struct _fpem_reg {
26: char sign;
27: char tag;
28: long exp;
29: unsigned sigl;
30: unsigned sigh;
31: };
32:
33: struct _fpstackframe {
34: long signo;
35: long regs[SS+1];
36: struct _fpstate *fpsp;
37: char *wsp;
38: };
39:
40: struct _fpreg {
41: unsigned short significand[4];
42: unsigned short exponent;
43: };
44:
45: struct _fpstate {
46: unsigned long cw,
47: sw,
48: tag,
49: ipoff,
50: cssel,
51: dataoff,
52: datasel;
53: struct _fpreg _st[8];
54: unsigned long status;
55: };
56:
57: struct _fpemstate {
58: unsigned long cw,
59: sw,
60: tag,
61: ipoff,
62: cssel,
63: dataoff,
64: datasel,
65: top;
66: struct _fpem_reg regs[8]; /* pseudo regs */
67: unsigned char lookahead;
68: unsigned long status,
69: entry_eip;
70: };
71:
72: /* For kernel context in u area, which keeps either emulator or ndp status. */
73: union _fpcontext {
74: struct _fpstate fpstate;
75: struct _fpemstate fpemstate;
76: };
77: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.