pcb.h (b3196e4b9f0b6d9ac2ed948ebc4cee022dca05e3) pcb.h (48a09cf2760da35e089ae3e2d56578b730fc7047)
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 * Redistribution and use in source and binary forms, with or without

--- 20 unchanged lines hidden (view full) ---

29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 * SUCH DAMAGE.
35 *
36 * from: @(#)pcb.h 5.10 (Berkeley) 5/12/91
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 * Redistribution and use in source and binary forms, with or without

--- 20 unchanged lines hidden (view full) ---

29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 * SUCH DAMAGE.
35 *
36 * from: @(#)pcb.h 5.10 (Berkeley) 5/12/91
37 * $Id: pcb.h,v 1.22 1997/06/07 04:36:05 bde Exp $
37 * $Id: pcb.h,v 1.23 1997/06/22 16:03:51 peter Exp $
38 */
39
40#ifndef _I386_PCB_H_
41#define _I386_PCB_H_
42
43/*
44 * Intel 386 process control block
45 */
46#include <machine/tss.h>
47#include <machine/npx.h>
38 */
39
40#ifndef _I386_PCB_H_
41#define _I386_PCB_H_
42
43/*
44 * Intel 386 process control block
45 */
46#include <machine/tss.h>
47#include <machine/npx.h>
48#include <machine/pcb_ext.h>
48
49struct pcb {
50 int pcb_cr3;
51 int pcb_edi;
52 int pcb_esi;
53 int pcb_ebp;
54 int pcb_esp;
55 int pcb_ebx;
56 int pcb_eip;
57 caddr_t pcb_ldt; /* per process (user) LDT */
58 int pcb_ldt_len; /* number of LDT entries */
59 struct save87 pcb_savefpu; /* floating point state for 287/387 */
60 u_char pcb_flags;
61#define FP_SOFTFP 0x01 /* process using software fltng pnt emulator */
62 caddr_t pcb_onfault; /* copyin/out fault recovery */
63 u_long pcb_mpnest;
64 int pcb_fs;
65 int pcb_gs;
49
50struct pcb {
51 int pcb_cr3;
52 int pcb_edi;
53 int pcb_esi;
54 int pcb_ebp;
55 int pcb_esp;
56 int pcb_ebx;
57 int pcb_eip;
58 caddr_t pcb_ldt; /* per process (user) LDT */
59 int pcb_ldt_len; /* number of LDT entries */
60 struct save87 pcb_savefpu; /* floating point state for 287/387 */
61 u_char pcb_flags;
62#define FP_SOFTFP 0x01 /* process using software fltng pnt emulator */
63 caddr_t pcb_onfault; /* copyin/out fault recovery */
64 u_long pcb_mpnest;
65 int pcb_fs;
66 int pcb_gs;
66 u_long __pcb_spare[5]; /* adjust to avoid core dump size changes */
67#if 0 /* some day we may switch between procs that have their own i386tss */
68 struct i386tss pcb_tss;
69 u_char pcb_iomap[NPORT/sizeof(u_char)]; /* i/o port bitmap */
70#endif
67 struct pcb_ext *pcb_ext; /* optional pcb extension */
68 u_long __pcb_spare[1]; /* adjust to avoid core dump size changes */
71};
72
73/*
74 * The pcb is augmented with machine-dependent additional data for
75 * core dumps. For the i386: ???
76 */
77struct md_coredump {
78};
79
80#ifdef KERNEL
81
82extern struct pcb *curpcb; /* our current running pcb */
83
84void savectx __P((struct pcb*));
85#endif
86
87#endif /* _I386_PCB_H_ */
69};
70
71/*
72 * The pcb is augmented with machine-dependent additional data for
73 * core dumps. For the i386: ???
74 */
75struct md_coredump {
76};
77
78#ifdef KERNEL
79
80extern struct pcb *curpcb; /* our current running pcb */
81
82void savectx __P((struct pcb*));
83#endif
84
85#endif /* _I386_PCB_H_ */