xref: /csrg-svn/sys/i386/include/reg.h (revision 45642)
141059Swilliam /*-
241059Swilliam  * Copyright (c) 1990 The Regents of the University of California.
341059Swilliam  * All rights reserved.
441059Swilliam  *
541059Swilliam  * This code is derived from software contributed to Berkeley by
641059Swilliam  * William Jolitz.
741059Swilliam  *
841059Swilliam  * %sccs.include.noredist.c%
941059Swilliam  *
10*45642Sbill  *	@(#)reg.h	5.2 (Berkeley) 11/25/90
1141059Swilliam  */
1241059Swilliam 
1340466Sbill /*
1440466Sbill  * Location of the users' stored
1541059Swilliam  * registers within appropriate frame of 'trap' and 'syscall', relative to
1641059Swilliam  * base of stack frame.
1741059Swilliam  * Normal usage is u.u_ar0[XX] in kernel.
1840466Sbill  */
1940466Sbill 
2041059Swilliam /* When referenced during a trap/exception, registers are at these offsets */
2140466Sbill 
2241059Swilliam #define	tES	(0)
2341059Swilliam #define	tDS	(1)
2441059Swilliam #define	tEDI	(2)
2541059Swilliam #define	tESI	(3)
2641059Swilliam #define	tEBP	(4)
2741059Swilliam 
2841059Swilliam #define	tEBX	(6)
2941059Swilliam #define	tEDX	(7)
3041059Swilliam #define	tECX	(8)
3141059Swilliam #define	tEAX	(9)
3241059Swilliam 
3341059Swilliam #define	tEIP	(12)
3441059Swilliam #define	tCS	(13)
3541059Swilliam #define	tEFLAGS	(14)
3641059Swilliam #define	tESP	(15)
3741059Swilliam #define	tSS	(16)
3841059Swilliam 
3941059Swilliam /* During a system call, registers are at these offsets instead of above. */
4041059Swilliam 
4141059Swilliam #define	sEDI	(0)
4241059Swilliam #define	sESI	(1)
4341059Swilliam #define	sEBP	(2)
4441059Swilliam 
4541059Swilliam #define	sEBX	(4)
4641059Swilliam #define	sEDX	(5)
4741059Swilliam #define	sECX	(6)
4841059Swilliam #define	sEAX	(7)
4941059Swilliam #define	sEFLAGS	(8)
5041059Swilliam #define	sEIP	(9)
5141059Swilliam #define	sCS	(10)
5241059Swilliam #define	sESP	(11)
5341059Swilliam #define	sSS	(12)
5441059Swilliam 
55*45642Sbill #define	SP	sESP
56*45642Sbill #define	PS	sEFLAGS
57*45642Sbill #define	R0	sEDX
58*45642Sbill #define	R1	sECX
5941059Swilliam /*
6041059Swilliam  * Registers accessible to ptrace(2) syscall for debugger
6141059Swilliam  */
6240466Sbill #ifdef IPCREG
6341059Swilliam #define	NIPCREG 14
6440466Sbill int ipcreg[NIPCREG] =
6541059Swilliam   { tES,tDS,tEDI,tESI,tEBP,tEBX,tEDX,tECX,tEAX,tEIP,tCS,tEFLAGS,tESP,tSS };
6640466Sbill #endif
67