Annotation of 42BSD/sys/vax/pcb.h, revision 1.1

1.1     ! root        1: /*     pcb.h   6.1     83/07/29        */
        !             2: 
        !             3: /*
        !             4:  * VAX process control block
        !             5:  */
        !             6: 
        !             7: struct pcb
        !             8: {
        !             9:        int     pcb_ksp;        /* kernel stack pointer */
        !            10:        int     pcb_esp;        /* exec stack pointer */
        !            11:        int     pcb_ssp;        /* supervisor stack pointer */
        !            12:        int     pcb_usp;        /* user stack pointer */
        !            13:        int     pcb_r0; 
        !            14:        int     pcb_r1; 
        !            15:        int     pcb_r2; 
        !            16:        int     pcb_r3; 
        !            17:        int     pcb_r4; 
        !            18:        int     pcb_r5; 
        !            19:        int     pcb_r6; 
        !            20:        int     pcb_r7; 
        !            21:        int     pcb_r8; 
        !            22:        int     pcb_r9; 
        !            23:        int     pcb_r10; 
        !            24:        int     pcb_r11; 
        !            25:        int     pcb_r12; 
        !            26: #define        pcb_ap pcb_r12
        !            27:        int     pcb_r13; 
        !            28: #define        pcb_fp pcb_r13
        !            29:        int     pcb_pc;         /* program counter */
        !            30:        int     pcb_psl;        /* program status longword */
        !            31:        struct  pte *pcb_p0br;  /* seg 0 base register */
        !            32:        int     pcb_p0lr;       /* seg 0 length register and astlevel */
        !            33:        struct  pte *pcb_p1br;  /* seg 1 base register */
        !            34:        int     pcb_p1lr;       /* seg 1 length register and pme */
        !            35: /*
        !            36:  * Software pcb (extension)
        !            37:  */
        !            38:        int     pcb_szpt;       /* number of pages of user page table */
        !            39:        int     pcb_cmap2;
        !            40:        int     *pcb_sswap;
        !            41:        int     pcb_sigc[4];
        !            42: };
        !            43: 
        !            44: #define        AST_NONE        0x04000000      /* ast level */
        !            45: #define        AST_USER        0x03000000      /* ast for user mode */
        !            46: 
        !            47: #define        ASTLVL_NONE     4
        !            48: #define        ASTLVL_USER     3
        !            49: 
        !            50: #define        AST_CLR         0x07000000
        !            51: #define        PME_CLR         0x80000000
        !            52: 
        !            53: #define        aston() \
        !            54:        { \
        !            55:                u.u_pcb.pcb_p0lr = (u.u_pcb.pcb_p0lr &~ AST_CLR) | AST_USER; \
        !            56:                mtpr(ASTLVL, ASTLVL_USER); \
        !            57:        }
        !            58: 
        !            59: #define        astoff() \
        !            60:        { \
        !            61:                u.u_pcb.pcb_p0lr = (u.u_pcb.pcb_p0lr &~ AST_CLR) | AST_NONE; \
        !            62:                mtpr(ASTLVL, ASTLVL_NONE); \
        !            63:        }

unix.superglobalmegacorp.com

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