|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1988 University of Utah. ! 3: * Copyright (c) 1982, 1986, 1990 The Regents of the University of California. ! 4: * All rights reserved. ! 5: * ! 6: * This code is derived from software contributed to Berkeley by ! 7: * the Systems Programming Group of the University of Utah Computer ! 8: * Science Department. ! 9: * ! 10: * Redistribution is only permitted until one year after the first shipment ! 11: * of 4.4BSD by the Regents. Otherwise, redistribution and use in source and ! 12: * binary forms are permitted provided that: (1) source distributions retain ! 13: * this entire copyright notice and comment, and (2) distributions including ! 14: * binaries display the following acknowledgement: This product includes ! 15: * software developed by the University of California, Berkeley and its ! 16: * contributors'' in the documentation or other materials provided with the ! 17: * distribution and in all advertising materials mentioning features or use ! 18: * of this software. Neither the name of the University nor the names of ! 19: * its contributors may be used to endorse or promote products derived from ! 20: * this software without specific prior written permission. ! 21: * THIS SOFTWARE IS PROVIDED AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED ! 22: * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF ! 23: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 24: * ! 25: * from: Utah $Hdr: pcb.h 1.13 89/04/23$ ! 26: * ! 27: * @(#)pcb.h 7.1 (Berkeley) 5/8/90 ! 28: */ ! 29: ! 30: #ifdef KERNEL ! 31: #include "frame.h" ! 32: #else ! 33: #include <hp300/frame.h> ! 34: #endif ! 35: ! 36: /* ! 37: * HP300 process control block ! 38: */ ! 39: struct pcb ! 40: { ! 41: short pcb_flags; /* misc. process flags (+0) */ ! 42: short pcb_ps; /* processor status word (+2) */ ! 43: int pcb_ustp; /* user segment table pointer (+4) */ ! 44: int pcb_usp; /* user stack pointer (+8) */ ! 45: int pcb_regs[12]; /* D0-D7, A0-A7 (+C) */ ! 46: struct pte *pcb_p0br; /* P0 base register (+3C) */ ! 47: int pcb_p0lr; /* P0 length register (+40) */ ! 48: struct pte *pcb_p1br; /* P1 base register (+44) */ ! 49: int pcb_p1lr; /* P1 length register (+48) */ ! 50: int pcb_szpt; /* number of pages of user page table (+4C) */ ! 51: int pcb_cmap2; /* temporary copy PTE (+50) */ ! 52: int *pcb_sswap; /* saved context for swap return (+54) */ ! 53: short pcb_sigc[12]; /* signal trampoline code (+58) */ ! 54: caddr_t pcb_onfault; /* for copyin/out faults (+70) */ ! 55: struct fpframe pcb_fpregs; /* 68881/2 context save area (+74) */ ! 56: int pcb_exec[16]; /* exec structure for core dumps (+1B8) */ ! 57: int pcb_res[2]; /* reserved for future expansion (+1F8) */ ! 58: }; ! 59: ! 60: /* flags */ ! 61: ! 62: #define PCB_AST 0x0001 /* async trap pending */ ! 63: #define PCB_HPUXMMAP 0x0010 /* VA space is multiple mapped */ ! 64: #define PCB_HPUXTRACE 0x0020 /* being traced by an HPUX process */ ! 65: #define PCB_HPUXBIN 0x0040 /* loaded from an HPUX format binary */ ! 66: /* note: does NOT imply SHPUX */ ! 67: ! 68: #define aston() \ ! 69: { \ ! 70: u.u_pcb.pcb_flags |= PCB_AST; \ ! 71: } ! 72: ! 73: #define astoff() \ ! 74: { \ ! 75: u.u_pcb.pcb_flags &= ~PCB_AST; \ ! 76: } ! 77: ! 78: #define astpend() \ ! 79: (u.u_pcb.pcb_flags & PCB_AST)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.