1*2447Swnj /* pcb.h 4.2 02/15/81 */ 264Sbill 364Sbill /* 464Sbill * VAX process control block 564Sbill * 664Sbill * THE SIZE OF THE pcb, AS INFLUENCED BY THE SIZE OF THE SOFTWARE 764Sbill * EXTENSION, IS KNOWN IN THE #ifdef FASTVAX'ed DEFINITIONS OF THE 864Sbill * OFFSETS OF U_ARG and U_QSAV IN THE FILE user.h. 964Sbill */ 1064Sbill 1164Sbill struct pcb 1264Sbill { 1364Sbill int pcb_ksp; /* kernel stack pointer */ 1464Sbill int pcb_esp; /* exec stack pointer */ 1564Sbill int pcb_ssp; /* supervisor stack pointer */ 1664Sbill int pcb_usp; /* user stack pointer */ 1764Sbill int pcb_r0; 1864Sbill int pcb_r1; 1964Sbill int pcb_r2; 2064Sbill int pcb_r3; 2164Sbill int pcb_r4; 2264Sbill int pcb_r5; 2364Sbill int pcb_r6; 2464Sbill int pcb_r7; 2564Sbill int pcb_r8; 2664Sbill int pcb_r9; 2764Sbill int pcb_r10; 2864Sbill int pcb_r11; 2964Sbill int pcb_r12; 3064Sbill int pcb_r13; 3164Sbill int pcb_pc; /* program counter */ 3264Sbill int pcb_psl; /* program status longword */ 3364Sbill struct pte *pcb_p0br; /* seg 0 base register */ 3464Sbill int pcb_p0lr; /* seg 0 length register and astlevel */ 3564Sbill struct pte *pcb_p1br; /* seg 1 base register */ 3664Sbill int pcb_p1lr; /* seg 1 length register and pme */ 3764Sbill /* 3864Sbill * Software pcb (extension) 3964Sbill */ 4064Sbill int pcb_szpt; /* number of pages of user page table */ 4164Sbill int pcb_cmap2; 4264Sbill int *pcb_sswap; 4364Sbill int pcb_sigc[3]; 4464Sbill }; 45*2447Swnj 46*2447Swnj #define AST_NONE 0x04000000 /* ast level */ 47*2447Swnj #define AST_USER 0x03000000 /* ast for user mode */ 48*2447Swnj 49*2447Swnj #define ASTLVL_NONE 4 50*2447Swnj #define ASTLVL_USER 3 51*2447Swnj 52*2447Swnj #define AST_CLR 0x07000000 53*2447Swnj 54*2447Swnj #define aston() \ 55*2447Swnj { \ 56*2447Swnj u.u_pcb.pcb_p0lr = (u.u_pcb.pcb_p0lr &~ AST_CLR) | AST_USER; \ 57*2447Swnj mtpr(ASTLVL, ASTLVL_USER); \ 58*2447Swnj } 59*2447Swnj 60*2447Swnj #define astoff() \ 61*2447Swnj { \ 62*2447Swnj u.u_pcb.pcb_p0lr = (u.u_pcb.pcb_p0lr &~ AST_CLR) | AST_NONE; \ 63*2447Swnj mtpr(ASTLVL, ASTLVL_NONE); \ 64*2447Swnj } 65