|
|
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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.