diff options
author | jhb <jhb@FreeBSD.org> | 2003-06-06 17:45:25 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2003-06-06 17:45:25 +0000 |
commit | 95a58df3989a58b369cec905fb48545028c8a461 (patch) | |
tree | c409dfd83db126ccd993a56f8b6cf7cf82321822 /sys | |
parent | 29339c88b8fc233bde4accea3c6a658e2e26092f (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/amd64/amd64/apic_vector.S | 34 | ||||
-rw-r--r-- | sys/i386/i386/apic_vector.s | 34 | ||||
-rw-r--r-- | sys/i386/isa/apic_vector.s | 34 |
3 files changed, 42 insertions, 60 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 diff --git a/sys/i386/i386/apic_vector.s b/sys/i386/i386/apic_vector.s index d91ff1c..9230caf 100644 --- a/sys/i386/i386/apic_vector.s +++ b/sys/i386/i386/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 diff --git a/sys/i386/isa/apic_vector.s b/sys/i386/isa/apic_vector.s index d91ff1c..9230caf 100644 --- a/sys/i386/isa/apic_vector.s +++ b/sys/i386/isa/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 |