Annotation of GNUtools/cctools/include/mach/m98k/thread_status.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (c) 1991 NeXT Computer, Inc.  All rights reserved.
        !             3:  *
        !             4:  *     File:   mach/m98k/thread_status.h
        !             5:  *     Author: Mike DeMoney, NeXT Computer, Inc.
        !             6:  *
        !             7:  *     This include file defines the per-thread state
        !             8:  *     for NeXT 98K-based products.
        !             9:  *
        !            10:  * HISTORY
        !            11:  *  5-Nov-92  Ben Fathi ([email protected])
        !            12:  *     Ported to m98k.
        !            13:  *
        !            14:  * 23-Jan-91  Mike DeMoney ([email protected])
        !            15:  *     Created.
        !            16:  */
        !            17: 
        !            18: #ifndef        _MACH_M98K_THREAD_STATUS_
        !            19: #define        _MACH_M98K_THREAD_STATUS_
        !            20: 
        !            21: #import <architecture/nrw/reg_help.h>
        !            22: #import <architecture/m98k/basic_regs.h>
        !            23: #import <architecture/m98k/m98601_regs.h>
        !            24: #import <architecture/m98k/fp_regs.h>
        !            25: 
        !            26: /**************************************************************************
        !            27:  * Data Typedefs used by thread_getstatus() and thread_setstatus()        *
        !            28:  **************************************************************************/
        !            29: 
        !            30: #define        M98K_THREAD_STATE_GRF           (1)     // general registers
        !            31: #define M98K_THREAD_STATE_FPF          (2)     // fp registers
        !            32: #define        M98K_THREAD_STATE_USER          (3)     // non-architectural user state
        !            33: #define M98601_THREAD_STATE_IMPL       (4)     // 98601 impl specific
        !            34: 
        !            35: #define        M98K_THREAD_STATE_MAXFLAVOR     (M98601_THREAD_STATE_IMPL)
        !            36: 
        !            37: /*
        !            38:  * m98k_thread_state_grf -- basic thread state for NeXT 98K-based products
        !            39:  */
        !            40: typedef struct _m98k_thread_state_grf {
        !            41:        unsigned        r0;             // zt (not for mem ref): caller-saved
        !            42:        unsigned        r1;             // sp (stack pointer): callee-saved
        !            43:        unsigned        r2;             // toc (tbl of contents): callee saved
        !            44:        unsigned        r3;             // a0 (arg 0, retval 0): caller saved
        !            45:        unsigned        r4;             // a1
        !            46:        unsigned        r5;             // a2
        !            47:        unsigned        r6;             // a3
        !            48:        unsigned        r7;             // a4
        !            49:        unsigned        r8;             // a5
        !            50:        unsigned        r9;             // a6
        !            51:        unsigned        r10;            // a7
        !            52:        unsigned        r11;            // ep (environment ptr): caller saved
        !            53:        unsigned        r12;            // at (assembler temp): caller saved
        !            54:        unsigned        r13;            // s17: callee saved
        !            55:        unsigned        r14;            // s16
        !            56:        unsigned        r15;            // s15
        !            57:        unsigned        r16;            // s14
        !            58:        unsigned        r17;            // s13
        !            59:        unsigned        r18;            // s12
        !            60:        unsigned        r19;            // s11
        !            61:        unsigned        r20;            // s10
        !            62:        unsigned        r21;            // s9
        !            63:        unsigned        r22;            // s8
        !            64:        unsigned        r23;            // s7
        !            65:        unsigned        r24;            // s6
        !            66:        unsigned        r25;            // s5
        !            67:        unsigned        r26;            // s4
        !            68:        unsigned        r27;            // s3
        !            69:        unsigned        r28;            // s2
        !            70:        unsigned        r29;            // s1
        !            71:        unsigned        r30;            // s0
        !            72:        unsigned        r31;            // fp (frame pointer): callee saved
        !            73:        unsigned        lr;             // link register
        !            74:        unsigned        ctr;            // count register
        !            75:        cr_t            cr;             // condition register
        !            76:        xer_t           xer;            // fixed point exception register
        !            77:        msr_t           msr;            // machine state register
        !            78:        unsigned        cia;            // current instruction address
        !            79: } m98k_thread_state_grf_t;
        !            80: 
        !            81: #define        M98K_THREAD_STATE_GRF_COUNT     \
        !            82:        (sizeof(m98k_thread_state_grf_t)/sizeof(int))
        !            83: 
        !            84: /*
        !            85:  * m98k_thread_state_fpf -- floating point register file contents and
        !            86:  * floating point control registers for NeXT 98K-based products.
        !            87:  */
        !            88: typedef struct _m98k_thread_state_fpf {
        !            89:        m98k_fpf_t      f0;             // ft0 (scratch register): caller-saved
        !            90:        m98k_fpf_t      f1;             // fa0 (fp arg 0): caller-saved
        !            91:        m98k_fpf_t      f2;             // fa1
        !            92:        m98k_fpf_t      f3;             // fa2
        !            93:        m98k_fpf_t      f4;             // fa3
        !            94:        m98k_fpf_t      f5;             // fa4
        !            95:        m98k_fpf_t      f6;             // fa5
        !            96:        m98k_fpf_t      f7;             // fa6
        !            97:        m98k_fpf_t      f8;             // fa7
        !            98:        m98k_fpf_t      f9;             // fa8
        !            99:        m98k_fpf_t      f10;            // fa9
        !           100:        m98k_fpf_t      f11;            // fa10
        !           101:        m98k_fpf_t      f12;            // fa11
        !           102:        m98k_fpf_t      f13;            // fa12
        !           103:        m98k_fpf_t      f14;            // fs17: callee-saved
        !           104:        m98k_fpf_t      f15;            // fs16
        !           105:        m98k_fpf_t      f16;            // fs15
        !           106:        m98k_fpf_t      f17;            // fs14
        !           107:        m98k_fpf_t      f18;            // fs13
        !           108:        m98k_fpf_t      f19;            // fs12
        !           109:        m98k_fpf_t      f20;            // fs11
        !           110:        m98k_fpf_t      f21;            // fs10
        !           111:        m98k_fpf_t      f22;            // fs9
        !           112:        m98k_fpf_t      f23;            // fs8
        !           113:        m98k_fpf_t      f24;            // fs7
        !           114:        m98k_fpf_t      f25;            // fs6
        !           115:        m98k_fpf_t      f26;            // fs5
        !           116:        m98k_fpf_t      f27;            // fs4
        !           117:        m98k_fpf_t      f28;            // fs3
        !           118:        m98k_fpf_t      f29;            // fs2
        !           119:        m98k_fpf_t      f30;            // fs1
        !           120:        m98k_fpf_t      f31;            // fs0
        !           121:        m98k_fp_scr_t   fpscr;          // fp status and control register
        !           122: } m98k_thread_state_fpf_t;
        !           123: 
        !           124: #define        M98K_THREAD_STATE_FPF_COUNT             \
        !           125:        (sizeof(m98k_thread_state_fpf_t)/sizeof(int))
        !           126: 
        !           127: typedef struct _m98k_thread_state_user {
        !           128:        int             user;                   // user register (for cthreads)
        !           129: } m98k_thread_state_user_t;
        !           130: 
        !           131: #define M98K_THREAD_STATE_USER_COUNT           \
        !           132:        (sizeof(m98k_thread_state_user_t)/sizeof(int))
        !           133: 
        !           134: /*
        !           135:  * Motorola 98601 specific state
        !           136:  * (Can't count on this being in all m98k implementations.)
        !           137:  */
        !           138: 
        !           139: /*
        !           140:  * A complete Data Breakpoint spec
        !           141:  */
        !           142: typedef        struct {
        !           143:        m98601_data_bp_addr_t   addr;
        !           144:        m98601_data_bp_mode_t   mode;
        !           145: } m98601_data_bp_t;
        !           146: 
        !           147: /*
        !           148:  * m98601_thread_state_impl -- 98601 implementation-specific
        !           149:  * control registers for NeXT 98K-based products.
        !           150:  */
        !           151: typedef struct _m98601_thread_state_impl {
        !           152:        /*
        !           153:         * Certain of the 98601 msr bits may be modified
        !           154:         */
        !           155:        msr_t                   msr;            // machine status
        !           156:        unsigned                mq;             // multiply quotient register
        !           157:        m98601_data_bp_t        data_bp[M98601_N_DATA_BP];
        !           158: } m98601_thread_state_impl_t;
        !           159: 
        !           160: #define        M98601_THREAD_STATE_IMPL_COUNT  \
        !           161:        (sizeof(m98601_thread_state_impl_t)/sizeof(int))
        !           162: 
        !           163: #endif _MACH_M98K_THREAD_STATUS_

unix.superglobalmegacorp.com

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