diff options
author | Peter Wemm <peter@FreeBSD.org> | 2003-05-12 18:33:19 +0000 |
---|---|---|
committer | Peter Wemm <peter@FreeBSD.org> | 2003-05-12 18:33:19 +0000 |
commit | 0fe93e7480e213428589c1ae85543decbb77c8e6 (patch) | |
tree | 37bc0cc272c8d81cd89615723b40ef9224483f83 /sys/amd64/include | |
parent | 0f6241620bdc20665f61bd33eadc63909a32eb93 (diff) | |
download | src-0fe93e7480e213428589c1ae85543decbb77c8e6.tar.gz src-0fe93e7480e213428589c1ae85543decbb77c8e6.zip |
For the page fault handler, save %cr2 in the outer trap handler so that
we do not have to run so long with interrupts disabled. This involved
creating tf_addr in the trapframe. Reorganize the trap stubs so that
they consistently reserve the stack space and initialize any missing
bits.
Approved by: re (amd64 stuff)
Notes
Notes:
svn path=/head/; revision=114952
Diffstat (limited to 'sys/amd64/include')
-rw-r--r-- | sys/amd64/include/frame.h | 3 | ||||
-rw-r--r-- | sys/amd64/include/ucontext.h | 1 |
2 files changed, 4 insertions, 0 deletions
diff --git a/sys/amd64/include/frame.h b/sys/amd64/include/frame.h index 8f9652820534..09321e7a6cbf 100644 --- a/sys/amd64/include/frame.h +++ b/sys/amd64/include/frame.h @@ -68,6 +68,7 @@ struct trapframe { register_t tf_r14; register_t tf_r15; register_t tf_trapno; + register_t tf_addr; /* below portion defined in hardware */ register_t tf_err; register_t tf_rip; @@ -96,6 +97,7 @@ struct intrframe { register_t if_r14; register_t if_r15; register_t :64; /* compat with trap frame - trapno */ + register_t :64; /* compat with trap frame - addr */ register_t :64; /* compat with trap frame - err */ /* below portion defined in hardware */ register_t if_rip; @@ -124,6 +126,7 @@ struct clockframe { register_t cf_r14; register_t cf_r15; register_t :64; /* compat with trap frame - trapno */ + register_t :64; /* compat with trap frame - addr */ register_t :64; /* compat with trap frame - err */ /* below portion defined in hardware */ register_t cf_rip; diff --git a/sys/amd64/include/ucontext.h b/sys/amd64/include/ucontext.h index 7aa9d6de5d3a..ca88c0a4a9c4 100644 --- a/sys/amd64/include/ucontext.h +++ b/sys/amd64/include/ucontext.h @@ -54,6 +54,7 @@ typedef struct __mcontext { register_t mc_r14; register_t mc_r15; register_t mc_trapno; + register_t mc_addr; register_t mc_err; register_t mc_rip; register_t mc_cs; |