Annotation of GNUtools/cctools/include/mach/hppa/thread_status.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * @HP_COPYRIGHT@
                      3:  */
                      4: /*
                      5:  * HISTORY
                      6:  * $Log: thread_status.h,v $
                      7:  * Revision 1.4.3.2  1992/01/09  20:05:31  sharpe
                      8:  *     initial 1.1 vers from 1.0
                      9:  *     [1992/01/09  19:29:20  sharpe]
                     10:  *
                     11:  * Revision 1.4  1991/07/03  17:25:42  osfrcs
                     12:  *     06/19/90 rand       Add THREAD_STATE_FLAVOR_LIST to getstatus
                     13:  *     [91/06/21  17:29:52  brezak]
                     14:  * 
                     15:  * Revision 1.3.2.2  91/06/21  18:05:17  brezak
                     16:  *     06/19/90 rand       Add THREAD_STATE_FLAVOR_LIST to getstatus
                     17:  *     [91/06/21  17:29:52  brezak]
                     18:  * 
                     19:  * Revision 1.2.2.2  91/04/30  09:48:00  brezak
                     20:  *     rand         04/19/91 Add options to control reflection of assist/unalign exceptions
                     21:  *     [91/04/29  11:46:12  brezak]
                     22:  * 
                     23:  * Revision 1.2  91/04/14  20:47:10  osfrcs
                     24:  *     Initial version.
                     25:  *     [91/03/30  09:32:42  brezak]
                     26:  * 
                     27:  * $EndLog$
                     28:  */
                     29: 
                     30: #ifndef        _HPPA_THREAD_STATE_ 
                     31: #define        _HPPA_THREAD_STATE_
                     32: 
                     33: #include <mach/machine/boolean.h>
                     34: 
                     35: 
                     36: #define        HPPA_INTEGER_THREAD_STATE     1
                     37: #define        HPPA_FRAME_THREAD_STATE     2
                     38: #define        HPPA_FP_THREAD_STATE     3
                     39: 
                     40: /*
                     41:  * Flow control information that can
                     42:  * be changed from user state (with
                     43:  * some restrictions on psw).
                     44:  */
                     45: struct hp_pa_frame_thread_state {
                     46:        unsigned long   ts_pcsq_front;  /* instruction address space front */
                     47:        unsigned long   ts_pcsq_back;   /* instruction address space back */
                     48:        unsigned long   ts_pcoq_front;  /* instruction offset space front */
                     49:        unsigned long   ts_pcoq_back;   /* instruction offset space back */
                     50:        unsigned long   ts_psw;         /* process status word */
                     51:        unsigned long   ts_unaligned_faults;    /* number of unaligned data references READ-ONLY */
                     52:        unsigned long   ts_fault_address;       /* address of failing page fault READ-ONLY */
                     53: /*
                     54:  * A step range is a range of address that
                     55:  * will be executed with out generating a single
                     56:  * step event. If both values are 0 no stepping
                     57:  * will occur. Otherwise the program will run while:
                     58:  *
                     59:  *     if (step_range_start <= step_range_stop)
                     60:  *             pcoq0 >= step_range_start && pcoq0 < step_range_stop 
                     61:  *     if (step_range_start > step_range_stop)
                     62:  *             pcoq0 < step_range_stop && pcoq0 >= step_range_start 
                     63:  *
                     64:  * notice that setting step_range_start and step_range_stop to the
                     65:  * same non-zero value will execute only one instruction due to action
                     66:  * of the pc queue. (Yes, nullified instructions count)
                     67:  */
                     68:        unsigned long   ts_step_range_start;
                     69:        unsigned long   ts_step_range_stop;
                     70: 
                     71:        /* Generate an exception when OS assists with an alignment fault */
                     72:        boolean_t       ts_alignment_trap_reflect;
                     73: 
                     74:        /* Generate an exception when OS assists with an FP fault */
                     75:        boolean_t       ts_execution_trap_reflect;
                     76: };
                     77: 
                     78: /*
                     79:  * Get rid of as soon as all users of frame_thread_state 
                     80:  * have been recompiled. XXX
                     81:  */
                     82: struct hp_pa_old_frame_thread_state {
                     83:        unsigned long   ts_pcsq_front;  /* instruction address space front */
                     84:        unsigned long   ts_pcsq_back;   /* instruction address space back */
                     85:        unsigned long   ts_pcoq_front;  /* instruction offset space front */
                     86:        unsigned long   ts_pcoq_back;   /* instruction offset space back */
                     87:        unsigned long   ts_psw;         /* process status word */
                     88: };
                     89: 
                     90: /*
                     91:  * The unsigned longeger state that may be changed by any
                     92:  * process in user space.
                     93:  */
                     94: typedef struct hp_pa_integer_thread_state {
                     95:        unsigned long   ts_gr1;         /* the user's general registers */
                     96:        unsigned long   ts_gr2;
                     97:        unsigned long   ts_gr3;
                     98:        unsigned long   ts_gr4;
                     99:        unsigned long   ts_gr5;
                    100:        unsigned long   ts_gr6;
                    101:        unsigned long   ts_gr7;
                    102:        unsigned long   ts_gr8;
                    103:        unsigned long   ts_gr9;
                    104:        unsigned long   ts_gr10;
                    105:        unsigned long   ts_gr11;
                    106:        unsigned long   ts_gr12;
                    107:        unsigned long   ts_gr13;
                    108:        unsigned long   ts_gr14;
                    109:        unsigned long   ts_gr15;
                    110:        unsigned long   ts_gr16;
                    111:        unsigned long   ts_gr17;
                    112:        unsigned long   ts_gr18;
                    113:        unsigned long   ts_gr19;
                    114:        unsigned long   ts_gr20;
                    115:        unsigned long   ts_gr21;
                    116:        unsigned long   ts_gr22;
                    117:        unsigned long   ts_gr23;
                    118:        unsigned long   ts_gr24;
                    119:        unsigned long   ts_gr25;
                    120:        unsigned long   ts_gr26;
                    121:        unsigned long   ts_gr27;
                    122:        unsigned long   ts_gr28;
                    123:        unsigned long   ts_gr29;
                    124:        unsigned long   ts_gr30;
                    125:        unsigned long   ts_gr31;
                    126:        unsigned long   ts_sr0;         /* the user's space registgers */
                    127:        unsigned long   ts_sr1;
                    128:        unsigned long   ts_sr2;
                    129:        unsigned long   ts_sr3;
                    130:        unsigned long   ts_sar;         /* the user's shift amount register */
                    131: } hp_pa_integer_thread_state_t;
                    132: 
                    133: /*
                    134:  * The floating point state that may be changed by any
                    135:  * process in user space.
                    136:  */
                    137: typedef struct hp_pa_fp_thread_state {
                    138:        double  ts_fp0;         /* all of the execution unit registers */
                    139:        double  ts_fp1;
                    140:        double  ts_fp2;
                    141:        double  ts_fp3;
                    142:        double  ts_fp4;
                    143:        double  ts_fp5;
                    144:        double  ts_fp6;
                    145:        double  ts_fp7;
                    146:        double  ts_fp8;
                    147:        double  ts_fp9;
                    148:        double  ts_fp10;
                    149:        double  ts_fp11;
                    150:        double  ts_fp12;
                    151:        double  ts_fp13;
                    152:        double  ts_fp14;
                    153:        double  ts_fp15;
                    154:        double  ts_fp16;
                    155:        double  ts_fp17;
                    156:        double  ts_fp18;
                    157:        double  ts_fp19;
                    158:        double  ts_fp20;
                    159:        double  ts_fp21;
                    160:        double  ts_fp22;
                    161:        double  ts_fp23;
                    162:        double  ts_fp24;
                    163:        double  ts_fp25;
                    164:        double  ts_fp26;
                    165:        double  ts_fp27;
                    166:        double  ts_fp28;
                    167:        double  ts_fp29;
                    168:        double  ts_fp30;
                    169:        double  ts_fp31;
                    170: } hp_pa_fp_thread_state_t;
                    171: 
                    172: #define        HPPA_INTEGER_THREAD_STATE_COUNT (sizeof(struct hp_pa_integer_thread_state) / sizeof(unsigned long))
                    173: #define        HPPA_FRAME_THREAD_STATE_COUNT (sizeof(struct hp_pa_frame_thread_state) / sizeof(unsigned long))
                    174: #define        HPPA_FP_THREAD_STATE_COUNT (sizeof(struct hp_pa_fp_thread_state) / sizeof(unsigned long))
                    175: 
                    176: /* Get rid of as soon as all users of thread_frame_state have been recompiled XXX */
                    177: #define        HPPA_OLD_FRAME_THREAD_STATE_COUNT (sizeof(struct hp_pa_old_frame_thread_state) / sizeof(unsigned long))
                    178: 
                    179: #endif /* _HPPA_THREAD_STATE_ */

unix.superglobalmegacorp.com

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