reg.h (45270) | reg.h (46129) |
---|---|
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: @(#)reg.h 5.5 (Berkeley) 1/18/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: @(#)reg.h 5.5 (Berkeley) 1/18/91 |
37 * $Id: reg.h,v 1.16 1998/09/14 22:43:40 jdp Exp $ | 37 * $Id: reg.h,v 1.17 1999/04/03 22:19:59 jdp Exp $ |
38 */ 39 40#ifndef _MACHINE_REG_H_ 41#define _MACHINE_REG_H_ 42 43/* 44 * Indices for registers in `struct trapframe' and `struct regs'. 45 * 46 * This interface is deprecated. In the kernel, it is only used in FPU 47 * emulators to convert from register numbers encoded in instructions to 48 * register values. Everything else just accesses the relevant struct 49 * members. In userland, debuggers tend to abuse this interface since 50 * they don't understand that `struct regs' is a struct. I hope they have 51 * stopped accessing the registers in the trap frame via PT_{READ,WRITE}_U 52 * and we can stop supporting the user area soon. 53 */ | 38 */ 39 40#ifndef _MACHINE_REG_H_ 41#define _MACHINE_REG_H_ 42 43/* 44 * Indices for registers in `struct trapframe' and `struct regs'. 45 * 46 * This interface is deprecated. In the kernel, it is only used in FPU 47 * emulators to convert from register numbers encoded in instructions to 48 * register values. Everything else just accesses the relevant struct 49 * members. In userland, debuggers tend to abuse this interface since 50 * they don't understand that `struct regs' is a struct. I hope they have 51 * stopped accessing the registers in the trap frame via PT_{READ,WRITE}_U 52 * and we can stop supporting the user area soon. 53 */ |
54#define tES (0) 55#define tDS (1) 56#define tEDI (2) 57#define tESI (3) 58#define tEBP (4) 59#define tISP (5) 60#define tEBX (6) 61#define tEDX (7) 62#define tECX (8) 63#define tEAX (9) 64#define tERR (11) 65#define tEIP (12) 66#define tCS (13) 67#define tEFLAGS (14) 68#define tESP (15) 69#define tSS (16) | 54#define tFS (0) 55#define tES (1) 56#define tDS (2) 57#define tEDI (3) 58#define tESI (4) 59#define tEBP (5) 60#define tISP (6) 61#define tEBX (7) 62#define tEDX (8) 63#define tECX (9) 64#define tEAX (10) 65#define tERR (12) 66#define tEIP (13) 67#define tCS (14) 68#define tEFLAGS (15) 69#define tESP (16) 70#define tSS (17) |
70 71/* 72 * Indices for registers in `struct regs' only. 73 * 74 * Some registers live in the pcb and are only in an "array" with the 75 * other registers in application interfaces that copy all the registers 76 * to or from a `struct regs'. 77 */ | 71 72/* 73 * Indices for registers in `struct regs' only. 74 * 75 * Some registers live in the pcb and are only in an "array" with the 76 * other registers in application interfaces that copy all the registers 77 * to or from a `struct regs'. 78 */ |
78#define tFS (17) | |
79#define tGS (18) 80 81/* 82 * Register set accessible via /proc/$pid/regs and PT_{SET,GET}REGS. 83 */ 84struct reg { | 79#define tGS (18) 80 81/* 82 * Register set accessible via /proc/$pid/regs and PT_{SET,GET}REGS. 83 */ 84struct reg { |
85 unsigned int r_fs; |
|
85 unsigned int r_es; 86 unsigned int r_ds; 87 unsigned int r_edi; 88 unsigned int r_esi; 89 unsigned int r_ebp; 90 unsigned int r_isp; 91 unsigned int r_ebx; 92 unsigned int r_edx; 93 unsigned int r_ecx; 94 unsigned int r_eax; 95 unsigned int r_trapno; 96 unsigned int r_err; 97 unsigned int r_eip; 98 unsigned int r_cs; 99 unsigned int r_eflags; 100 unsigned int r_esp; 101 unsigned int r_ss; | 86 unsigned int r_es; 87 unsigned int r_ds; 88 unsigned int r_edi; 89 unsigned int r_esi; 90 unsigned int r_ebp; 91 unsigned int r_isp; 92 unsigned int r_ebx; 93 unsigned int r_edx; 94 unsigned int r_ecx; 95 unsigned int r_eax; 96 unsigned int r_trapno; 97 unsigned int r_err; 98 unsigned int r_eip; 99 unsigned int r_cs; 100 unsigned int r_eflags; 101 unsigned int r_esp; 102 unsigned int r_ss; |
102 unsigned int r_fs; | |
103 unsigned int r_gs; 104}; 105 106/* 107 * Register set accessible via /proc/$pid/fpregs. 108 */ 109struct fpreg { 110 /* --- 20 unchanged lines hidden --- | 103 unsigned int r_gs; 104}; 105 106/* 107 * Register set accessible via /proc/$pid/fpregs. 108 */ 109struct fpreg { 110 /* --- 20 unchanged lines hidden --- |