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