summaryrefslogtreecommitdiff
path: root/sys/arch/i386/include
diff options
context:
space:
mode:
authorAlexander Bluhm <bluhm@cvs.openbsd.org>2018-06-15 17:58:42 +0000
committerAlexander Bluhm <bluhm@cvs.openbsd.org>2018-06-15 17:58:42 +0000
commitb358e8b0a24a3bc0531b760788b439f51fbc8e65 (patch)
tree10b463b03e273a2aee618c968140e9a5027f1b2f /sys/arch/i386/include
parenteabb07a21dcbeaa8d87eee4044d5f00dc5e10e4c (diff)
Reorder trapframe/intrframe to put %ebp next to %eip and make it
behave like a real call frame, thus vastly simplifying the ddb back trace logic. from hshoexer@; initially from guenther@; OK deraadt@
Diffstat (limited to 'sys/arch/i386/include')
-rw-r--r--sys/arch/i386/include/frame.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/arch/i386/include/frame.h b/sys/arch/i386/include/frame.h
index 7b3519ffa91..346797837c7 100644
--- a/sys/arch/i386/include/frame.h
+++ b/sys/arch/i386/include/frame.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: frame.h,v 1.12 2018/04/11 15:44:08 bluhm Exp $ */
+/* $OpenBSD: frame.h,v 1.13 2018/06/15 17:58:41 bluhm Exp $ */
/* $NetBSD: frame.h,v 1.12 1995/10/11 04:20:08 mycroft Exp $ */
/*-
@@ -54,14 +54,14 @@ struct trapframe {
int tf_ds;
int tf_edi;
int tf_esi;
- int tf_ebp;
+ int tf_err; /* not the hardware position */
int tf_ebx;
int tf_edx;
int tf_ecx;
int tf_eax;
int tf_trapno;
/* below portion defined in 386 hardware */
- int tf_err;
+ int tf_ebp; /* hardware puts err here, INTRENTRY() moves it up */
int tf_eip;
int tf_cs;
int tf_eflags;
@@ -86,13 +86,13 @@ struct intrframe {
int if_ds;
int if_edi;
int if_esi;
- int if_ebp;
+ int :32; /* for compat with trap frame - err */
int if_ebx;
int if_edx;
int if_ecx;
int if_eax;
int :32; /* for compat with trap frame - trapno */
- int :32; /* for compat with trap frame - err */
+ int if_ebp;
/* below portion defined in 386 hardware */
int if_eip;
int if_cs;