summaryrefslogtreecommitdiffstats
path: root/sys/amd64/amd64/apic_vector.S
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2003-06-06 17:45:25 +0000
committerjhb <jhb@FreeBSD.org>2003-06-06 17:45:25 +0000
commit95a58df3989a58b369cec905fb48545028c8a461 (patch)
treec409dfd83db126ccd993a56f8b6cf7cf82321822 /sys/amd64/amd64/apic_vector.S
parent29339c88b8fc233bde4accea3c6a658e2e26092f (diff)
downloadFreeBSD-src-95a58df3989a58b369cec905fb48545028c8a461.zip
FreeBSD-src-95a58df3989a58b369cec905fb48545028c8a461.tar.gz
- Use IDTVEC() to declare IPI handlers since they are also IDT vectors.
- Make handlers for IPI's used by SMP kernels #ifdef SMP.
Diffstat (limited to 'sys/amd64/amd64/apic_vector.S')
-rw-r--r--sys/amd64/amd64/apic_vector.S34
1 files changed, 14 insertions, 20 deletions
diff --git a/sys/amd64/amd64/apic_vector.S b/sys/amd64/amd64/apic_vector.S
index d91ff1c..9230caf 100644
--- a/sys/amd64/amd64/apic_vector.S
+++ b/sys/amd64/amd64/apic_vector.S
@@ -253,20 +253,19 @@ IDTVEC(vec_name) ; \
*/
.text
SUPERALIGN_TEXT
- .globl Xspuriousint
-Xspuriousint:
+IDTVEC(spuriousint)
/* No EOI cycle used here */
iret
+#ifdef SMP
/*
* Global address space TLB shootdown.
*/
.text
SUPERALIGN_TEXT
- .globl Xinvltlb
-Xinvltlb:
+IDTVEC(invltlb)
pushl %eax
pushl %ds
movl $KDSEL, %eax /* Kernel data selector */
@@ -298,8 +297,7 @@ Xinvltlb:
*/
.text
SUPERALIGN_TEXT
- .globl Xinvlpg
-Xinvlpg:
+IDTVEC(invlpg)
pushl %eax
pushl %ds
movl $KDSEL, %eax /* Kernel data selector */
@@ -331,8 +329,7 @@ Xinvlpg:
*/
.text
SUPERALIGN_TEXT
- .globl Xinvlrng
-Xinvlrng:
+IDTVEC(invlrng)
pushl %eax
pushl %edx
pushl %ds
@@ -371,8 +368,7 @@ Xinvlrng:
*/
.text
SUPERALIGN_TEXT
- .globl Xhardclock
-Xhardclock:
+IDTVEC(hardclock)
PUSH_FRAME
movl $KDSEL, %eax /* reload with kernel's data segment */
mov %ax, %ds
@@ -404,8 +400,7 @@ Xhardclock:
*/
.text
SUPERALIGN_TEXT
- .globl Xstatclock
-Xstatclock:
+IDTVEC(statclock)
PUSH_FRAME
movl $KDSEL, %eax /* reload with kernel's data segment */
mov %ax, %ds
@@ -443,8 +438,7 @@ Xstatclock:
.text
SUPERALIGN_TEXT
- .globl Xcpuast
-Xcpuast:
+IDTVEC(cpuast)
PUSH_FRAME
movl $KDSEL, %eax
mov %ax, %ds /* use KERNEL data segment */
@@ -468,8 +462,7 @@ Xcpuast:
*/
.text
SUPERALIGN_TEXT
- .globl Xcpustop
-Xcpustop:
+IDTVEC(cpustop)
pushl %ebp
movl %esp, %ebp
pushl %eax
@@ -524,6 +517,7 @@ Xcpustop:
popl %ebp
iret
+#endif /* SMP */
MCOUNT_LABEL(bintr)
FAST_INTR(0,fastintr0)
@@ -627,6 +621,7 @@ MCOUNT_LABEL(bintr)
FAST_UNPEND(31,fastunpend31)
MCOUNT_LABEL(eintr)
+#ifdef SMP
/*
* Executed by a CPU when it receives a RENDEZVOUS IPI from another CPU.
*
@@ -634,8 +629,7 @@ MCOUNT_LABEL(eintr)
*/
.text
SUPERALIGN_TEXT
- .globl Xrendezvous
-Xrendezvous:
+IDTVEC(rendezvous)
PUSH_FRAME
movl $KDSEL, %eax
mov %ax, %ds /* use KERNEL data segment */
@@ -655,8 +649,7 @@ Xrendezvous:
* ie: when we are about to release a PTD but a cpu is still borrowing it.
*/
SUPERALIGN_TEXT
- .globl Xlazypmap
-Xlazypmap:
+IDTVEC(lazypmap)
PUSH_FRAME
movl $KDSEL, %eax
mov %ax, %ds /* use KERNEL data segment */
@@ -670,6 +663,7 @@ Xlazypmap:
POP_FRAME
iret
#endif
+#endif /* SMP */
.data
OpenPOWER on IntegriCloud