diff options
author | fsmp <fsmp@FreeBSD.org> | 1997-04-27 21:18:59 +0000 |
---|---|---|
committer | fsmp <fsmp@FreeBSD.org> | 1997-04-27 21:18:59 +0000 |
commit | b1042863dff19807cf2cf1c5270339b74ff3157c (patch) | |
tree | ffc6d2cfb0815f952561a9e5da848ac7b3198344 /sys/i386/isa/vector.s | |
parent | 9b85100220bea3138bfa8f7426ffb9e2486650f3 (diff) | |
download | FreeBSD-src-b1042863dff19807cf2cf1c5270339b74ff3157c.zip FreeBSD-src-b1042863dff19807cf2cf1c5270339b74ff3157c.tar.gz |
informal discussion between Bruce Evans <bde@zeta.org.au>,
Peter Wemm <peter@spinner.DIALix.COM>, Steve Passe <smp@csn.net>
removed all the IPI_INTS code.
made the XFAST_IPI32 code default, renaming Xfastipi32 to Xinvltlb.
cleanup of i386/isa/isa_device.h to eliminate SMP dependancies:
made the id_irq member of struct isa_device an u_int.
made the id_drq member of struct isa_device an int.
removed all other '#ifdefs' concerning SMP & APIC_IO.
removed SMP/APIC_IO dependancies from if_ze.c.
Diffstat (limited to 'sys/i386/isa/vector.s')
-rw-r--r-- | sys/i386/isa/vector.s | 74 |
1 files changed, 15 insertions, 59 deletions
diff --git a/sys/i386/isa/vector.s b/sys/i386/isa/vector.s index 270ae20..c7125ca 100644 --- a/sys/i386/isa/vector.s +++ b/sys/i386/isa/vector.s @@ -1,6 +1,6 @@ /* * from: vector.s, 386BSD 0.1 unknown origin - * $Id: vector.s,v 1.25 1997/02/22 09:37:23 peter Exp $ + * $Id: vector.s,v 1.26 1997/04/26 11:46:07 peter Exp $ */ /* @@ -343,47 +343,23 @@ __CONCAT(Xresume,irq_num): ; \ addl $4+4,%esp ; \ iret - -#if defined(APIC_IO) && defined(IPI_INTS) -/* - * A simple IPI_INTR() macro based on a heavily cut down FAST_INTR(). - * call it's handler, EOI and return. - */ -#define IPI_INTR(irq_num, vec_name) \ - .text ; \ - SUPERALIGN_TEXT ; \ -IDTVEC(vec_name) ; \ - pushl %eax ; /* save only call-used registers */ \ - pushl %ecx ; \ - pushl %edx ; \ - pushl %ds ; \ - MAYBE_PUSHL_ES ; \ - movl $KDSEL,%eax ; \ - movl %ax,%ds ; \ - MAYBE_MOVW_AX_ES ; \ - pushl _intr_unit + (irq_num) * 4 ; \ - call *_intr_handler + (irq_num) * 4 ; \ - ENABLE_APIC ; \ - addl $4,%esp ; \ - incl _cnt+V_INTR ; /* book-keeping can wait */ \ - movl _intr_countp + (irq_num) * 4,%eax ; \ - incl (%eax) ; \ - MAYBE_POPL_ES ; \ - popl %ds ; \ - popl %edx ; \ - popl %ecx ; \ - popl %eax ; \ - iret -#endif /* APIC_IO && IPI_INTS */ - -#if defined(XFAST_IPI32) +#if defined(APIC_IO) .text SUPERALIGN_TEXT - .globl _Xfastipi32 -_Xfastipi32: + .globl _Xinvltlb +_Xinvltlb: pushl %eax movl %cr3, %eax movl %eax, %cr3 +#if 0 +/** XXX FIXME: convert to Bruces suggested 'ss' style, eliminating %ds */ + ss + incl _ipihits + ss + movl _apic_base, %eax + ss + movl $0, APIC_EOI(%eax) +#else pushl %ds movl $KDSEL,%eax movl %ax,%ds @@ -391,9 +367,10 @@ _Xfastipi32: movl _apic_base, %eax movl $0, APIC_EOI(%eax) popl %ds +#endif popl %eax iret -#endif /* XFAST_IPI32 */ +#endif /* APIC_IO */ MCOUNT_LABEL(bintr) FAST_INTR(0,fastintr0, ENABLE_ICU1) @@ -447,12 +424,6 @@ MCOUNT_LABEL(bintr) INTR(21,intr21, IO_ICU2, ENABLE_ICU1_AND_2, ah) INTR(22,intr22, IO_ICU2, ENABLE_ICU1_AND_2, ah) INTR(23,intr23, IO_ICU2, ENABLE_ICU1_AND_2, ah) -#if defined(IPI_INTS) - IPI_INTR(24, ipi24) - IPI_INTR(25, ipi25) - IPI_INTR(26, ipi26) - IPI_INTR(27, ipi27) -#endif /* IPI_INTS */ #endif /* APIC_IO */ MCOUNT_LABEL(eintr) @@ -476,11 +447,7 @@ imasks: /* masks for interrupt handlers */ .space NHWI*4 /* padding; HWI masks are elsewhere */ #if defined(APIC_IO) -#if defined(IPI_INTS) - /* these 4 IPI slots are counted as HARDWARE INTs, ie NHWI, above */ -#else .long 0, 0, 0, 0 /* padding */ -#endif /* IPI_INTS */ .long SWI_TTY_MASK, SWI_NET_MASK, SWI_CLOCK_MASK, SWI_AST_MASK #else .long SWI_TTY_MASK, SWI_NET_MASK, 0, 0, 0, 0, 0, 0 @@ -502,19 +469,14 @@ _ivectors: .long _Xintr12, _Xintr13, _Xintr14, _Xintr15 .long _Xintr16, _Xintr17, _Xintr18, _Xintr19 .long _Xintr20, _Xintr21, _Xintr22, _Xintr23 -#if defined(IPI_INTS) - .long _Xipi24, _Xipi25, _Xipi26, _Xipi27 -#endif /* IPI_INTS */ /* active flag for lazy masking */ iactive: .long 0 -#if defined(XFAST_IPI32) .globl _ipihits _ipihits: .long 0 -#endif /* XFAST_IPI32 */ #if defined(TEST_CPUHITS) .globl _cpuhits @@ -571,12 +533,6 @@ _intrnames: .asciz "stray irq21" .asciz "stray irq22" .asciz "stray irq23" -#if defined(IPI_INTS) - .asciz "stray irq24" - .asciz "stray irq25" - .asciz "stray irq26" - .asciz "stray irq27" -#endif /* IPI_INTS */ #endif /* APIC_IO */ _eintrnames: |