1/*- 2 * Copyright (c) 2003 Peter Wemm. 3 * Copyright (c) 1990 The Regents of the University of California. 4 * All rights reserved. 5 * 6 * This code is derived from software contributed to Berkeley by 7 * William Jolitz. 8 * --- 17 unchanged lines hidden (view full) --- 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 * 33 * from: @(#)pcb.h 5.10 (Berkeley) 5/12/91 |
34 * $FreeBSD: head/sys/amd64/include/pcb.h 208833 2010-06-05 15:59:59Z kib $ |
35 */ 36 37#ifndef _AMD64_PCB_H_ 38#define _AMD64_PCB_H_ 39 40/* 41 * AMD64 process control block 42 */ --- 9 unchanged lines hidden (view full) --- 52 register_t pcb_rbp; 53 register_t pcb_rsp; 54 register_t pcb_rbx; 55 register_t pcb_rip; 56 register_t pcb_fsbase; 57 register_t pcb_gsbase; 58 u_long pcb_flags; 59#define PCB_DBREGS 0x02 /* process using debug registers */ |
60#define PCB_KERNFPU 0x04 /* kernel uses fpu */ |
61#define PCB_FPUINITDONE 0x08 /* fpu state is initialized */ |
62#define PCB_USERFPUINITDONE 0x10 /* fpu user state is initialized */ |
63#define PCB_GS32BIT 0x20 /* linux gs switch */ 64#define PCB_32BIT 0x40 /* process has 32 bit context (segs etc) */ 65#define PCB_FULLCTX 0x80 /* full context restore on sysret */ 66 67 u_int64_t pcb_dr0; 68 u_int64_t pcb_dr1; 69 u_int64_t pcb_dr2; 70 u_int64_t pcb_dr3; 71 u_int64_t pcb_dr6; 72 u_int64_t pcb_dr7; 73 |
74 struct savefpu pcb_user_save; |
75 uint16_t pcb_initial_fpucw; 76 77 caddr_t pcb_onfault; /* copyin/out fault recovery */ 78 79 /* 32-bit segment descriptor */ 80 struct user_segment_descriptor pcb_gs32sd; 81 /* local tss, with i/o bitmap; NULL for common */ 82 struct amd64tss *pcb_tssp; |
83 struct savefpu *pcb_save; |
84 char pcb_full_iret; 85}; 86 87struct xpcb { 88 struct pcb xpcb_pcb; 89 register_t xpcb_cr0; 90 register_t xpcb_cr2; 91 register_t xpcb_cr4; --- 16 unchanged lines hidden --- |