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
This commit is contained in:
parent
b3ef0bf465
commit
e2aceedd5a
@ -71,6 +71,16 @@ struct frame {
|
||||
#define f_fp f_in[6]
|
||||
#define f_pc f_in[7]
|
||||
|
||||
/*
|
||||
* Frame used for pcb_wscratch.
|
||||
*/
|
||||
struct wsframe {
|
||||
u_long wsf_local[8];
|
||||
u_long wsf_in[8];
|
||||
u_long wsf_sp;
|
||||
u_long wsf_inuse;
|
||||
};
|
||||
|
||||
int kdb_trap(struct trapframe *tf);
|
||||
|
||||
#endif /* !_MACHINE_FRAME_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 {
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user