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_ */ |