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
--- 16 unchanged lines hidden (view full) ---
25 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 * SUCH DAMAGE.
31 *
32 * from: @(#)pcb.h 5.10 (Berkeley) 5/12/91
33 * $FreeBSD: head/sys/i386/include/pcb.h 208833 2010-06-05 15:59:59Z kib $
34 */
35
36#ifndef _I386_PCB_H_
37#define _I386_PCB_H_
38
39/*
40 * Intel 386 process control block
41 */
--- 13 unchanged lines hidden (view full) ---
55
56 int pcb_dr0;
57 int pcb_dr1;
58 int pcb_dr2;
59 int pcb_dr3;
60 int pcb_dr6;
61 int pcb_dr7;
62
63 union savefpu pcb_user_save;
64 uint16_t pcb_initial_npxcw;
65 u_int pcb_flags;
66#define FP_SOFTFP 0x01 /* process using software fltng pnt emulator */
67#define PCB_DBREGS 0x02 /* process using debug registers */
68#define PCB_NPXTRAP 0x04 /* npx trap pending */
69#define PCB_NPXINITDONE 0x08 /* fpu state is initialized */
70#define PCB_VM86CALL 0x10 /* in vm86 call */
71#define PCB_NPXUSERINITDONE 0x20 /* user fpu state is initialized */
72#define PCB_KERNNPX 0x40 /* kernel uses npx */
73
74 caddr_t pcb_onfault; /* copyin/out fault recovery */
75 int pcb_gs;
76 struct segment_descriptor pcb_fsd;
77 struct segment_descriptor pcb_gsd;
78 struct pcb_ext *pcb_ext; /* optional pcb extension */
79 int pcb_psl; /* process status long */
80 u_long pcb_vm86[2]; /* vm86bios scratch space */
81 union savefpu *pcb_save;
82};
83
84#ifdef _KERNEL
85struct trapframe;
86
87void makectx(struct trapframe *, struct pcb *);
88void savectx(struct pcb *);
89#endif
90
91#endif /* _I386_PCB_H_ */
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
--- 16 unchanged lines hidden (view full) ---
25 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 * SUCH DAMAGE.
31 *
32 * from: @(#)pcb.h 5.10 (Berkeley) 5/12/91
33 * $FreeBSD: head/sys/i386/include/pcb.h 208833 2010-06-05 15:59:59Z kib $
34 */
35
36#ifndef _I386_PCB_H_
37#define _I386_PCB_H_
38
39/*
40 * Intel 386 process control block
41 */
--- 13 unchanged lines hidden (view full) ---
55
56 int pcb_dr0;
57 int pcb_dr1;
58 int pcb_dr2;
59 int pcb_dr3;
60 int pcb_dr6;
61 int pcb_dr7;
62
63 union savefpu pcb_user_save;
64 uint16_t pcb_initial_npxcw;
65 u_int pcb_flags;
66#define FP_SOFTFP 0x01 /* process using software fltng pnt emulator */
67#define PCB_DBREGS 0x02 /* process using debug registers */
68#define PCB_NPXTRAP 0x04 /* npx trap pending */
69#define PCB_NPXINITDONE 0x08 /* fpu state is initialized */
70#define PCB_VM86CALL 0x10 /* in vm86 call */
71#define PCB_NPXUSERINITDONE 0x20 /* user fpu state is initialized */
72#define PCB_KERNNPX 0x40 /* kernel uses npx */
73
74 caddr_t pcb_onfault; /* copyin/out fault recovery */
75 int pcb_gs;
76 struct segment_descriptor pcb_fsd;
77 struct segment_descriptor pcb_gsd;
78 struct pcb_ext *pcb_ext; /* optional pcb extension */
79 int pcb_psl; /* process status long */
80 u_long pcb_vm86[2]; /* vm86bios scratch space */
81 union savefpu *pcb_save;
82};
83
84#ifdef _KERNEL
85struct trapframe;
86
87void makectx(struct trapframe *, struct pcb *);
88void savectx(struct pcb *);
89#endif
90
91#endif /* _I386_PCB_H_ */