141059Swilliam /*- 2*63359Sbostic * Copyright (c) 1990, 1993 3*63359Sbostic * The Regents of the University of California. All rights reserved. 441059Swilliam * 541059Swilliam * This code is derived from software contributed to Berkeley by 641059Swilliam * William Jolitz. 741059Swilliam * 846006Swilliam * %sccs.include.redist.c% 941059Swilliam * 10*63359Sbostic * @(#)reg.h 8.1 (Berkeley) 06/11/93 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 5545964Swilliam #define PC sEIP 5645642Sbill #define SP sESP 5745642Sbill #define PS sEFLAGS 5845642Sbill #define R0 sEDX 5945642Sbill #define R1 sECX 6041059Swilliam /* 6141059Swilliam * Registers accessible to ptrace(2) syscall for debugger 6241059Swilliam */ 6340466Sbill #ifdef IPCREG 6441059Swilliam #define NIPCREG 14 6540466Sbill int ipcreg[NIPCREG] = 6641059Swilliam { tES,tDS,tEDI,tESI,tEBP,tEBX,tEDX,tECX,tEAX,tEIP,tCS,tEFLAGS,tESP,tSS }; 6740466Sbill #endif 68