summaryrefslogtreecommitdiffstats
path: root/sys/i386/isa
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2005-12-05 21:44:47 +0000
committerjhb <jhb@FreeBSD.org>2005-12-05 21:44:47 +0000
commit6df33a8d26246dfd19b65fe387f54ec15efdbaf7 (patch)
treeafc316c1f725b4742e923bcc4536421465d0cb3a /sys/i386/isa
parent7bb88a772a30446af67a12d5695731078cb24d5a (diff)
downloadFreeBSD-src-6df33a8d26246dfd19b65fe387f54ec15efdbaf7.zip
FreeBSD-src-6df33a8d26246dfd19b65fe387f54ec15efdbaf7.tar.gz
- Move PUSH_FRAME and POP_FRAME into machine/asmacros.h.
- Add a new SET_KERNEL_SREGS macro that sets up %ds and %es to point to kernel data and %fs to point to per-CPU data and use the new macro in several kernel entry points including trap and interrupt handlers. - Convert the IPI_STOP handler Xcpustop to push a standard trap frame rather than an application frame. - Make the TRAP() macro private to exception.s since it is only used there. - Move the PCPU_*() macros in asmacros.h out of the middle of the profiling macros. Reviewed by: bde Requested by: bde (4, 5)
Diffstat (limited to 'sys/i386/isa')
-rw-r--r--sys/i386/isa/atpic_vector.s13
1 files changed, 2 insertions, 11 deletions
diff --git a/sys/i386/isa/atpic_vector.s b/sys/i386/isa/atpic_vector.s
index 52aaded..dcf4135 100644
--- a/sys/i386/isa/atpic_vector.s
+++ b/sys/i386/isa/atpic_vector.s
@@ -47,17 +47,8 @@
.text ; \
SUPERALIGN_TEXT ; \
IDTVEC(vec_name) ; \
- pushl $0 ; /* dummy error code */ \
- pushl $0 ; /* dummy trap type */ \
- pushal ; /* 8 ints */ \
- pushl %ds ; /* save data and extra segments ... */ \
- pushl %es ; \
- pushl %fs ; \
- movl $KDSEL, %eax ; /* reload with kernel's data segment */ \
- movl %eax, %ds ; \
- movl %eax, %es ; \
- movl $KPSEL, %eax ; /* reload with per-CPU data segment */ \
- movl %eax, %fs ; \
+ PUSH_FRAME ; \
+ SET_KERNEL_SREGS ; \
; \
FAKE_MCOUNT(TF_EIP(%esp)) ; \
pushl $irq_num; /* pass the IRQ */ \
OpenPOWER on IntegriCloud