Date: Tue, 18 Dec 2001 10:00:48 -0800 (PST) From: John Baldwin <jhb@FreeBSD.org> To: alpha@FreeBSD.org Subject: mdproc flags in KSE Message-ID: <XFMail.011218100048.jhb@FreeBSD.org>
index | next in thread | raw e-mail
The alpha had several fields in its mdproc struct prior to KSE, and KSE stuck
them all in mdthread, which isn't quite correct. Specifically, we have the
following for mdthread now:
struct mdthread {
u_long md_flags;
struct pcb *md_pcbpaddr; /* phys addr of the pcb */
struct mdbpt md_sstep[2]; /* two single step breakpoints */
u_int64_t md_hae; /* user HAE register value */
void *osf_sigtramp; /* user-level signal trampoline */
u_int md_kernnest; /* nesting level in the kernel */
};
#define MDP_FPUSED 0x0001 /* Process used the FPU */
#define MDP_STEP1 0x0002 /* Single step normal instruction */
#define MDP_STEP2 0x0004 /* Single step branch instruction */
#define MDP_HAEUSED 0x0008 /* Process used the HAE */
#define MDP_UAC_NOPRINT 0x0010 /* Don't print unaligned traps */
#define MDP_UAC_NOFIX 0x0020 /* Don't fixup unaligned traps */
#define MDP_UAC_SIGBUS 0x0040 /* Deliver SIGBUS upon
unaligned access */
#define MDP_UAC_MASK (MDP_UAC_NOPRINT | MDP_UAC_NOFIX | MDP_UAC_SIGBUS)
Out of that structure, it seems obvious that md_pcbpaddr and md_kernnest need
to be per-thread. It also seems that the UAC flags need to be
per-process and need to move back into a md_flags in mdproc. However, I'm not
sure about the other ones. What is the HAE and in what contexts is it used?
Also, what are the single stepping fields used for exactly (details, not just
"to implement single stepping :)"). Is the osf_sigtramp just setup once for
the entire process, or does it have to be regenerated on the fly all the time?
I think the FPUSED flag will need to be per-process (or perhaps go away) since
a thread can't store persistent state. (Threads can come and go rather easily.)
--
John Baldwin <jhb@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!" - http://www.FreeBSD.org/
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-alpha" in the body of the message
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.011218100048.jhb>
