summaryrefslogtreecommitdiffstats
path: root/sys/sparc64/include/pcb.h
diff options
context:
space:
mode:
authorjake <jake@FreeBSD.org>2001-08-20 23:40:31 +0000
committerjake <jake@FreeBSD.org>2001-08-20 23:40:31 +0000
commitbedeb98a219633fd3ff66035b5e94afd8229f215 (patch)
tree9fadf6ceaf974c1f303f2e56bfc1f3c963486adb /sys/sparc64/include/pcb.h
parent0eadd1a70f8cd1b1f090de61f04380657e956e97 (diff)
downloadFreeBSD-src-bedeb98a219633fd3ff66035b5e94afd8229f215.zip
FreeBSD-src-bedeb98a219633fd3ff66035b5e94afd8229f215.tar.gz
Add support for splitting the register windows on entry to the
kernel from usermode. The remaining user windows are spilled to the pcb as necessary. The user land window fault handlers fill directly from the pcb on return. Add system call entry points. Submitted by: tmm
Diffstat (limited to 'sys/sparc64/include/pcb.h')
-rw-r--r--sys/sparc64/include/pcb.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/sys/sparc64/include/pcb.h b/sys/sparc64/include/pcb.h
index aa0e8f6..92e9699 100644
--- a/sys/sparc64/include/pcb.h
+++ b/sys/sparc64/include/pcb.h
@@ -30,14 +30,28 @@
#define _MACHINE_PCB_H_
#include <machine/fp.h>
-#include <machine/pstate.h>
+#include <machine/frame.h>
+
+/*
+ * XXX: MAXWIN should probably be done dynamically, pcb_wscratch is therefore
+ * at the end of the pcb.
+ */
+#define MAXWIN 8
+
+/* Used in pcb_fcwp to mark the wscratch stack as empty. */
+#define PCB_CWP_EMPTY 0xff
/* NOTE: pcb_fpstate must be aligned on a 64 byte boundary. */
struct pcb {
struct fpstate pcb_fpstate;
u_long pcb_fp;
u_long pcb_pc;
+ u_long pcb_y;
caddr_t pcb_onfault;
+ u_long pcb_inwinop;
+ u_long pcb_cwp;
+ u_long pcb_ws_inuse;
+ struct wsframe pcb_wscratch[MAXWIN];
};
struct md_coredump {
OpenPOWER on IntegriCloud