Deleted Added
full compact
pcb.h (234785) pcb.h (235622)
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
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 234785 2012-04-29 11:04:31Z dim $
33 * $FreeBSD: head/sys/i386/include/pcb.h 235622 2012-05-18 18:55:58Z iwasaki $
34 */
35
36#ifndef _I386_PCB_H_
37#define _I386_PCB_H_
38
39/*
40 * Intel 386 process control block
41 */
42#ifndef _KERNEL
43#include <machine/segments.h>
44#endif
45#include <machine/npx.h>
46
47struct pcb {
34 */
35
36#ifndef _I386_PCB_H_
37#define _I386_PCB_H_
38
39/*
40 * Intel 386 process control block
41 */
42#ifndef _KERNEL
43#include <machine/segments.h>
44#endif
45#include <machine/npx.h>
46
47struct pcb {
48 int pcb_cr0;
49 int pcb_cr2;
48 int pcb_cr3;
50 int pcb_cr3;
51 int pcb_cr4;
49 int pcb_edi;
50 int pcb_esi;
51 int pcb_ebp;
52 int pcb_esp;
53 int pcb_ebx;
54 int pcb_eip;
55
56 int pcb_dr0;

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

66#define FP_SOFTFP 0x01 /* process using software fltng pnt emulator */
67#define PCB_DBREGS 0x02 /* process using debug registers */
68#define PCB_NPXINITDONE 0x08 /* fpu state is initialized */
69#define PCB_VM86CALL 0x10 /* in vm86 call */
70#define PCB_NPXUSERINITDONE 0x20 /* user fpu state is initialized */
71#define PCB_KERNNPX 0x40 /* kernel uses npx */
72
73 caddr_t pcb_onfault; /* copyin/out fault recovery */
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
59 int pcb_dr0;

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

69#define FP_SOFTFP 0x01 /* process using software fltng pnt emulator */
70#define PCB_DBREGS 0x02 /* process using debug registers */
71#define PCB_NPXINITDONE 0x08 /* fpu state is initialized */
72#define PCB_VM86CALL 0x10 /* in vm86 call */
73#define PCB_NPXUSERINITDONE 0x20 /* user fpu state is initialized */
74#define PCB_KERNNPX 0x40 /* kernel uses npx */
75
76 caddr_t pcb_onfault; /* copyin/out fault recovery */
77 int pcb_ds;
78 int pcb_es;
79 int pcb_fs;
74 int pcb_gs;
80 int pcb_gs;
81 int pcb_ss;
75 struct segment_descriptor pcb_fsd;
76 struct segment_descriptor pcb_gsd;
77 struct pcb_ext *pcb_ext; /* optional pcb extension */
78 int pcb_psl; /* process status long */
79 u_long pcb_vm86[2]; /* vm86bios scratch space */
80 union savefpu *pcb_save;
82 struct segment_descriptor pcb_fsd;
83 struct segment_descriptor pcb_gsd;
84 struct pcb_ext *pcb_ext; /* optional pcb extension */
85 int pcb_psl; /* process status long */
86 u_long pcb_vm86[2]; /* vm86bios scratch space */
87 union savefpu *pcb_save;
88
89 struct region_descriptor pcb_gdt;
90 struct region_descriptor pcb_idt;
91 uint16_t pcb_ldt;
92 uint16_t pcb_tr;
81};
82
83#ifdef _KERNEL
84struct trapframe;
85
86void makectx(struct trapframe *, struct pcb *);
87void savectx(struct pcb *) __returns_twice;
93};
94
95#ifdef _KERNEL
96struct trapframe;
97
98void makectx(struct trapframe *, struct pcb *);
99void savectx(struct pcb *) __returns_twice;
100int suspendctx(struct pcb *) __returns_twice;
101void resumectx(struct pcb *);
88#endif
89
90#endif /* _I386_PCB_H_ */
102#endif
103
104#endif /* _I386_PCB_H_ */