xref: /original-bsd/sys/i386/include/pcb.h (revision e718337e)
1 /*-
2  * Copyright (c) 1990 The Regents of the University of California.
3  * All rights reserved.
4  *
5  * This code is derived from software contributed to Berkeley by
6  * William Jolitz.
7  *
8  * %sccs.include.noredist.c%
9  *
10  *	@(#)pcb.h	5.3 (Berkeley) 11/14/90
11  */
12 
13 /*
14  * Intel 386 process control block
15  */
16 #include "tss.h"
17 #include "../i386/npx.h"
18 
19 struct pcb {
20 	struct	i386tss pcbtss;
21 #define	pcb_ksp	pcbtss.tss_esp0
22 #define	pcb_ptd	pcbtss.tss_cr3
23 #define	pcb_pc	pcbtss.tss_eip
24 #define	pcb_psl	pcbtss.tss_eflags
25 #define	pcb_usp	pcbtss.tss_esp
26 #define	pcb_fp	pcbtss.tss_ebp
27 /*
28  * Software pcb (extension)
29  */
30 	int	pcb_fpsav;
31 #define	FP_NEEDSAVE	0x1	/* need save on next context switch */
32 #define	FP_NEEDRESTORE	0x2	/* need restore on next DNA fault */
33 #define	FP_USESEMC	0x4	/* process uses EMC memory-mapped mode */
34 	struct	save87	pcb_savefpu;
35 	struct	emcsts	pcb_saveemc;
36 	struct	pte	*pcb_p0br;
37 	struct	pte	*pcb_p1br;
38 	int	pcb_p0lr;
39 	int	pcb_p1lr;
40 	int	pcb_szpt; 	/* number of pages of user page table */
41 	int	pcb_cmap2;
42 	int	*pcb_sswap;
43 	long	pcb_sigc[8];	/* sigcode actually 19 bytes */
44 	int	pcb_iml;	/* interrupt mask level */
45 };
46