diff options
author | jhb <jhb@FreeBSD.org> | 2005-12-05 22:39:09 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2005-12-05 22:39:09 +0000 |
commit | c77d4150b7c5ce1e4aa2a4f96822eca488501c18 (patch) | |
tree | 9cdb8f0e463918252ebdbf20d8430b6bc7d2687e /sys/i386/include/frame.h | |
parent | 39d2052828536052e8b0193965215fdb8b5684ea (diff) | |
download | FreeBSD-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.h | 32 |
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_ */ |