Annotation of cci/sys/tahoe/pcb.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * TAHOE process control block
                      3:  */
                      4: 
                      5: struct pcb
                      6: {
                      7:        int     pcb_ksp;        /* kernel stack pointer */
                      8:        int     pcb_usp;        /* user stack pointer */
                      9:        int     pcb_r0; 
                     10:        int     pcb_r1; 
                     11:        int     pcb_r2; 
                     12:        int     pcb_r3; 
                     13:        int     pcb_r4; 
                     14:        int     pcb_r5; 
                     15:        int     pcb_r6; 
                     16:        int     pcb_r7; 
                     17:        int     pcb_r8; 
                     18:        int     pcb_r9; 
                     19:        int     pcb_r10; 
                     20:        int     pcb_r11; 
                     21:        int     pcb_r12; 
                     22:        int     pcb_r13; 
                     23: #define        pcb_fp pcb_r13
                     24:        int     pcb_pc;         /* program counter */
                     25:        int     pcb_psl;        /* program status longword */
                     26:        struct  pte *pcb_p0br;  /* seg 0 base register */
                     27:        int     pcb_p0lr;       /* seg 0 length register and astlevel */
                     28:        struct  pte *pcb_p1br;  /* seg 1 base register */
                     29:        int     pcb_p1lr;       /* seg 1 length register and pme */
                     30:        struct  pte *pcb_p2br;  /* seg 2 base register */
                     31:        int     pcb_p2lr;       /* seg 2 length register and pme */
                     32:        int     pcb_ach;        /* accumulator - high order longword */
                     33:        int     pcb_acl;        /* accumulator - low order longword */
                     34: #define ACH    pcb_ach
                     35: #define ACL    pcb_acl
                     36:        int     pcb_hfs;        /* f.p. status register.        */
                     37: /*
                     38:  * Software pcb (extension)
                     39:  */
                     40:        union {
                     41:                float   *faddr; /* address of single precision accumulator */
                     42:                double  *daddr; /* address of double precision accumulator */
                     43:        } pcb_savacc;
                     44: #define FSAVACC        pcb_savacc.faddr
                     45: #define DSAVACC pcb_savacc.daddr
                     46:        int     pcb_szpt;       /* number of pages of user page table */
                     47:        int     pcb_cmap2;
                     48:        int     *pcb_sswap;
                     49:        int     pcb_sigc[4];
                     50: };
                     51: 
                     52: extern long    *user_psl;
                     53: 
                     54: #define        aston() \
                     55:        { \
                     56:                u.u_pcb.pcb_psl |= PSL_SFE; \
                     57:                if ((int)user_psl != 0) *user_psl |= PSL_SFE; \
                     58:        }
                     59: 
                     60: #define        astoff() \
                     61:        { \
                     62:                u.u_pcb.pcb_psl &= ~ PSL_SFE; \
                     63:                if ((int)user_psl != 0) *user_psl &= ~PSL_SFE; \
                     64:        }

unix.superglobalmegacorp.com

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