Annotation of coherent/f/usr/include.78/ieeefp.h, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.