Annotation of 43BSDReno/sys/tahoe/pcb.h, revision 1.1.1.1

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

unix.superglobalmegacorp.com

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