Files
seta75D 2e8a93c394 Init
2021-10-11 18:20:23 -03:00

53 lines
1.6 KiB
C

/* @(#)allregs.h 1.1 92/07/30 SMI */
/*
* Copyright (c) 1986 by Sun Microsystems, Inc.
*/
/*
* adb keeps its own idea of the current value of most of the
* processor registers, in an "adb_regs" structure. This is used
* in different ways for kadb, adb -k, and normal adb.
*
* For kadb, this is really the machine state -- so kadb must
* get the current window pointer (CWP) field of the psr and
* use it to index into the windows to find the currently
* relevant register set.
*
* For a normal adb, the TBR and WIM registers aren't present in the
* struct regs that we get (either within a core file, or from
* PTRACE_GETREGS); so I might use those two fields for something.
* In this case, we always ignore the "locals" half of register
* window zero. Its "ins" half is used to hold the current "outs",
* and window one has the current locals and "ins".
*
* For adb -k (post-mortem examination of kernel crash dumps), there
* is no way to find the current globals or outs, but the stack frame
* that sp points to will tell us the current locals and ins. Because
* we have no current outs, I suppose that we could use window zero for
* the locals and ins, but I'd prefer to make it the same as normal adb.
* Also, if the kernel crash-dumper is changed to make these available
* somehow, I'd have to change things again.
*/
#include <machine/pcb.h>
#ifndef rw_fp
# include <machine/reg.h>
#endif
#ifndef LOCORE
#ifndef _ALLREGS_
#define _ALLREGS_
struct allregs {
int r_psr;
int r_pc;
int r_npc;
int r_tbr;
int r_wim;
int r_y;
int r_globals[7];
struct rwindow r_window[MAXWIN]; /* locals, then ins */
};
#endif !_ALLREGS_
#endif !LOCORE