summaryrefslogtreecommitdiffstats
path: root/sys/i386/include/frame.h
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2005-12-05 22:39:09 +0000
committerjhb <jhb@FreeBSD.org>2005-12-05 22:39:09 +0000
commitc77d4150b7c5ce1e4aa2a4f96822eca488501c18 (patch)
tree9cdb8f0e463918252ebdbf20d8430b6bc7d2687e /sys/i386/include/frame.h
parent39d2052828536052e8b0193965215fdb8b5684ea (diff)
downloadFreeBSD-src-c77d4150b7c5ce1e4aa2a4f96822eca488501c18.zip
FreeBSD-src-c77d4150b7c5ce1e4aa2a4f96822eca488501c18.tar.gz
Change the i386 code to pass the interrupt vector as a separate argument
rather than embedding it in the intrframe as if_vec. This reduces diffs with amd64 somewhat. - Remove cf_vec from clockframe (it wasn't used anyway) and stop pushing dummy vector arguments for ipi_bitmap_handler() and lapic_handle_timer() since clockframe == trapframe now. - Fix ddb to handle stack traces across interrupt entry points that just have a trapframe on their stack and not a trapframe + vector. - Change intr_execute_handlers() to take a trapframe rather than an intrframe pointer. - Change lapic_handle_intr() and atpic_handle_intr() to take a vector and trapframe rather than an intrframe. - GC struct intrframe now that nothing uses it anymore. - GC CLOCK_TO_TRAPFRAME() and INTR_TO_TRAPFRAME(). Reviewed by: bde Requested by: peter
Diffstat (limited to 'sys/i386/include/frame.h')
-rw-r--r--sys/i386/include/frame.h32
1 files changed, 1 insertions, 31 deletions
diff --git a/sys/i386/include/frame.h b/sys/i386/include/frame.h
index 391b874..26c5c9e 100644
--- a/sys/i386/include/frame.h
+++ b/sys/i386/include/frame.h
@@ -97,36 +97,9 @@ struct trapframe_vm86 {
int tf_vm86_gs;
};
-/* Interrupt stack frame */
-
-struct intrframe {
- int if_vec;
- int if_fs;
- int if_es;
- int if_ds;
- int if_edi;
- int if_esi;
- int if_ebp;
- int :32;
- 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 */
- /* below portion defined in 386 hardware */
- int if_eip;
- int if_cs;
- int if_eflags;
- /* below only when crossing rings (e.g. user to kernel) */
- int if_esp;
- int if_ss;
-};
-
-/* frame of clock (same as interrupt frame) */
+/* frame of clock (same as trap frame) */
struct clockframe {
- int cf_vec;
int cf_fs;
int cf_es;
int cf_ds;
@@ -149,7 +122,4 @@ struct clockframe {
int cf_ss;
};
-#define CLOCK_TO_TRAPFRAME(frame) ((struct trapframe *)&(frame)->cf_fs)
-#define INTR_TO_TRAPFRAME(frame) ((struct trapframe *)&(frame)->if_fs)
-
#endif /* _MACHINE_FRAME_H_ */
OpenPOWER on IntegriCloud