121308Sache/* $OpenBSD: reg.h,v 1.7 2011/03/23 16:54:35 pirofti Exp $ */ 221308Sache/* $NetBSD: reg.h,v 1.14 1995/10/11 04:20:24 mycroft Exp $ */ 321308Sache 421308Sache/*- 521308Sache * Copyright (c) 1990 The Regents of the University of California. 621308Sache * All rights reserved. 721308Sache * 821308Sache * This code is derived from software contributed to Berkeley by 921308Sache * William Jolitz. 1021308Sache * 1121308Sache * Redistribution and use in source and binary forms, with or without 1221308Sache * modification, are permitted provided that the following conditions 1321308Sache * are met: 1421308Sache * 1. Redistributions of source code must retain the above copyright 1521308Sache * notice, this list of conditions and the following disclaimer. 1621308Sache * 2. Redistributions in binary form must reproduce the above copyright 1721308Sache * notice, this list of conditions and the following disclaimer in the 1821308Sache * documentation and/or other materials provided with the distribution. 1921308Sache * 3. Neither the name of the University nor the names of its contributors 2021308Sache * may be used to endorse or promote products derived from this software 2121308Sache * without specific prior written permission. 2221308Sache * 2321308Sache * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 2421308Sache * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2521308Sache * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2621308Sache * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 2721308Sache * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2821308Sache * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2921308Sache * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 3021308Sache * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 3121308Sache * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 3221308Sache * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 3321308Sache * SUCH DAMAGE. 3421308Sache * 3521308Sache * @(#)reg.h 5.5 (Berkeley) 1/18/91 3621308Sache */ 3721308Sache 3821308Sache#ifndef _MACHINE_REG_H_ 3921308Sache#define _MACHINE_REG_H_ 4021308Sache 4121308Sache/* 4221308Sache * Location of the users' stored 4321308Sache * registers within appropriate frame of 'trap' and 'syscall', relative to 4421308Sache * base of stack frame. 4521308Sache * Normal usage is u.u_ar0[XX] in kernel. 4621308Sache */ 4721308Sache 4821308Sache/* When referenced during a trap/exception, registers are at these offsets */ 4921308Sache 50#define tES (0) 51#define tDS (1) 52#define tEDI (2) 53#define tESI (3) 54#define tEBP (4) 55#define tEBX (5) 56#define tEDX (6) 57#define tECX (7) 58#define tEAX (8) 59 60#define tEIP (11) 61#define tCS (12) 62#define tEFLAGS (13) 63#define tESP (14) 64#define tSS (15) 65 66/* 67 * Registers accessible to ptrace(2) syscall for debugger 68 * The machine-dependent code for PT_{SET,GET}REGS needs to 69 * use whichever order, defined above, is correct, so that it 70 * is all invisible to the user. 71 */ 72struct reg { 73 int r_eax; 74 int r_ecx; 75 int r_edx; 76 int r_ebx; 77 int r_esp; 78 int r_ebp; 79 int r_esi; 80 int r_edi; 81 int r_eip; 82 int r_eflags; 83 int r_cs; 84 int r_ss; 85 int r_ds; 86 int r_es; 87 int r_fs; 88 int r_gs; 89}; 90 91struct fpreg { 92 /* 93 * XXX 94 * Fill this in with real info. 95 */ 96 char __data[116]; 97}; 98 99struct xmmregs { 100 char __data[512]; 101}; 102 103#endif /* !_MACHINE_REG_H_ */ 104