* VAX process control block
int pcb_ksp
; /* kernel stack pointer */
int pcb_esp
; /* exec stack pointer */
int pcb_ssp
; /* supervisor stack pointer */
int pcb_usp
; /* user stack pointer */
int pcb_pc
; /* program counter */
int pcb_psl
; /* program status longword */
struct pte
*pcb_p0br
; /* seg 0 base register */
int pcb_p0lr
; /* seg 0 length register and astlevel */
struct pte
*pcb_p1br
; /* seg 1 base register */
int pcb_p1lr
; /* seg 1 length register and pme */
* Software pcb (extension)
int pcb_szpt
; /* number of pages of user page table */
#define AST_NONE 0x04000000 /* ast level */
#define AST_USER 0x03000000 /* ast for user mode */
#define AST_CLR 0x07000000
#define PME_CLR 0x80000000
u.u_pcb.pcb_p0lr = (u.u_pcb.pcb_p0lr &~ AST_CLR) | AST_USER; \
mtpr(ASTLVL, ASTLVL_USER); \
u.u_pcb.pcb_p0lr = (u.u_pcb.pcb_p0lr &~ AST_CLR) | AST_NONE; \
mtpr(ASTLVL, ASTLVL_NONE); \