xref: /csrg-svn/sys/vax/include/pcb.h (revision 49436)
1*49436Sbostic /*-
2*49436Sbostic  * Copyright (c) 1982, 1986 The Regents of the University of California.
3*49436Sbostic  * All rights reserved.
423270Smckusick  *
5*49436Sbostic  * %sccs.include.proprietary.c%
6*49436Sbostic  *
7*49436Sbostic  *	@(#)pcb.h	7.2 (Berkeley) 05/08/91
823270Smckusick  */
964Sbill 
1064Sbill /*
1164Sbill  * VAX process control block
1264Sbill  */
1364Sbill 
1464Sbill struct pcb
1564Sbill {
1664Sbill 	int	pcb_ksp; 	/* kernel stack pointer */
1764Sbill 	int	pcb_esp; 	/* exec stack pointer */
1864Sbill 	int	pcb_ssp; 	/* supervisor stack pointer */
1964Sbill 	int	pcb_usp; 	/* user stack pointer */
2064Sbill 	int	pcb_r0;
2164Sbill 	int	pcb_r1;
2264Sbill 	int	pcb_r2;
2364Sbill 	int	pcb_r3;
2464Sbill 	int	pcb_r4;
2564Sbill 	int	pcb_r5;
2664Sbill 	int	pcb_r6;
2764Sbill 	int	pcb_r7;
2864Sbill 	int	pcb_r8;
2964Sbill 	int	pcb_r9;
3064Sbill 	int	pcb_r10;
3164Sbill 	int	pcb_r11;
3264Sbill 	int	pcb_r12;
333776Sroot #define	pcb_ap pcb_r12
3464Sbill 	int	pcb_r13;
353776Sroot #define	pcb_fp pcb_r13
3664Sbill 	int	pcb_pc; 	/* program counter */
3764Sbill 	int	pcb_psl; 	/* program status longword */
3864Sbill 	struct  pte *pcb_p0br; 	/* seg 0 base register */
3964Sbill 	int	pcb_p0lr; 	/* seg 0 length register and astlevel */
4064Sbill 	struct  pte *pcb_p1br; 	/* seg 1 base register */
4164Sbill 	int	pcb_p1lr; 	/* seg 1 length register and pme */
4264Sbill /*
4364Sbill  * Software pcb (extension)
4464Sbill  */
4564Sbill 	int	pcb_szpt; 	/* number of pages of user page table */
4664Sbill 	int	pcb_cmap2;
4764Sbill 	int	*pcb_sswap;
4818270Smckusick 	int	pcb_sigc[5];
4964Sbill };
502447Swnj 
512447Swnj #define	AST_NONE	0x04000000	/* ast level */
522447Swnj #define	AST_USER	0x03000000	/* ast for user mode */
532447Swnj 
542447Swnj #define	ASTLVL_NONE	4
552447Swnj #define	ASTLVL_USER	3
562447Swnj 
572447Swnj #define	AST_CLR		0x07000000
589004Sroot #define	PME_CLR		0x80000000
592447Swnj 
602447Swnj #define	aston() \
612447Swnj 	{ \
622447Swnj 		mtpr(ASTLVL, ASTLVL_USER); \
632447Swnj 	}
642447Swnj 
652447Swnj #define	astoff() \
662447Swnj 	{ \
672447Swnj 		mtpr(ASTLVL, ASTLVL_NONE); \
682447Swnj 	}
69