xref: /csrg-svn/sys/i386/include/reg.h (revision 41059)
1*41059Swilliam /*-
2*41059Swilliam  * Copyright (c) 1990 The Regents of the University of California.
3*41059Swilliam  * All rights reserved.
4*41059Swilliam  *
5*41059Swilliam  * This code is derived from software contributed to Berkeley by
6*41059Swilliam  * William Jolitz.
7*41059Swilliam  *
8*41059Swilliam  * %sccs.include.noredist.c%
9*41059Swilliam  *
10*41059Swilliam  *	@(#)reg.h	1.2 (Berkeley) 04/24/90
11*41059Swilliam  */
12*41059Swilliam 
1340466Sbill /*
1440466Sbill  * Location of the users' stored
15*41059Swilliam  * registers within appropriate frame of 'trap' and 'syscall', relative to
16*41059Swilliam  * base of stack frame.
17*41059Swilliam  * Normal usage is u.u_ar0[XX] in kernel.
1840466Sbill  */
1940466Sbill 
20*41059Swilliam /* When referenced during a trap/exception, registers are at these offsets */
2140466Sbill 
22*41059Swilliam #define	tES	(0)
23*41059Swilliam #define	tDS	(1)
24*41059Swilliam #define	tEDI	(2)
25*41059Swilliam #define	tESI	(3)
26*41059Swilliam #define	tEBP	(4)
27*41059Swilliam 
28*41059Swilliam #define	tEBX	(6)
29*41059Swilliam #define	tEDX	(7)
30*41059Swilliam #define	tECX	(8)
31*41059Swilliam #define	tEAX	(9)
32*41059Swilliam 
33*41059Swilliam #define	tEIP	(12)
34*41059Swilliam #define	tCS	(13)
35*41059Swilliam #define	tEFLAGS	(14)
36*41059Swilliam #define	tESP	(15)
37*41059Swilliam #define	tSS	(16)
38*41059Swilliam 
39*41059Swilliam /* During a system call, registers are at these offsets instead of above. */
40*41059Swilliam 
41*41059Swilliam #define	sEDI	(0)
42*41059Swilliam #define	sESI	(1)
43*41059Swilliam #define	sEBP	(2)
44*41059Swilliam 
45*41059Swilliam #define	sEBX	(4)
46*41059Swilliam #define	sEDX	(5)
47*41059Swilliam #define	sECX	(6)
48*41059Swilliam #define	sEAX	(7)
49*41059Swilliam #define	sEFLAGS	(8)
50*41059Swilliam #define	sEIP	(9)
51*41059Swilliam #define	sCS	(10)
52*41059Swilliam #define	sESP	(11)
53*41059Swilliam #define	sSS	(12)
54*41059Swilliam 
55*41059Swilliam /*
56*41059Swilliam  * Registers accessible to ptrace(2) syscall for debugger
57*41059Swilliam  */
5840466Sbill #ifdef IPCREG
59*41059Swilliam #define	NIPCREG 14
6040466Sbill int ipcreg[NIPCREG] =
61*41059Swilliam   { tES,tDS,tEDI,tESI,tEBP,tEBX,tEDX,tECX,tEAX,tEIP,tCS,tEFLAGS,tESP,tSS };
6240466Sbill #endif
63