diff options
author | bde <bde@FreeBSD.org> | 1998-08-11 15:08:13 +0000 |
---|---|---|
committer | bde <bde@FreeBSD.org> | 1998-08-11 15:08:13 +0000 |
commit | 577b83a70e2314aad91a8a8eb2701588bab8fd3a (patch) | |
tree | 0f2f845400de37f9f238c9632765a0ba01b2e2c0 /sys/amd64 | |
parent | fd999b742a2a451bcfed8559f11c67a9cf60851e (diff) | |
download | FreeBSD-src-577b83a70e2314aad91a8a8eb2701588bab8fd3a.zip FreeBSD-src-577b83a70e2314aad91a8a8eb2701588bab8fd3a.tar.gz |
Implemented dynamic registration of software interrupt handlers. Not
used yet.
Use dummy SWI handlers to avoid some checks for null pointers.
Diffstat (limited to 'sys/amd64')
-rw-r--r-- | sys/amd64/amd64/apic_vector.S | 15 | ||||
-rw-r--r-- | sys/amd64/isa/atpic_vector.S | 11 | ||||
-rw-r--r-- | sys/amd64/isa/icu_ipl.S | 7 | ||||
-rw-r--r-- | sys/amd64/isa/icu_ipl.s | 7 | ||||
-rw-r--r-- | sys/amd64/isa/icu_vector.S | 11 | ||||
-rw-r--r-- | sys/amd64/isa/icu_vector.s | 11 |
6 files changed, 24 insertions, 38 deletions
diff --git a/sys/amd64/amd64/apic_vector.S b/sys/amd64/amd64/apic_vector.S index edd8225..2db57da 100644 --- a/sys/amd64/amd64/apic_vector.S +++ b/sys/amd64/amd64/apic_vector.S @@ -1,6 +1,6 @@ /* * from: vector.s, 386BSD 0.1 unknown origin - * $Id: apic_vector.s,v 1.29 1998/04/22 22:49:27 tegge Exp $ + * $Id: apic_vector.s,v 1.30 1998/05/17 22:12:04 tegge Exp $ */ @@ -923,7 +923,6 @@ MCOUNT_LABEL(eintr) */ .globl _ihandlers _ihandlers: -ihandlers: /* * used by: * ipl.s: doreti_unpend @@ -939,18 +938,14 @@ ihandlers: * ipl.s: doreti_unpend * apic_ipl.s: splz_unpend */ - .long swi_tty, swi_net - .long dummycamisr, dummycamisr - .long _swi_vm, 0 - .long _softclock, swi_ast + .long swi_tty, swi_net, dummycamisr, dummycamisr + .long _swi_vm, _swi_null, _softclock, swi_ast imasks: /* masks for interrupt handlers */ .space NHWI*4 /* padding; HWI masks are elsewhere */ - .long SWI_TTY_MASK, SWI_NET_MASK - .long SWI_CAMNET_MASK, SWI_CAMBIO_MASK - .long SWI_VM_MASK, 0 - .long SWI_CLOCK_MASK, SWI_AST_MASK + .long SWI_TTY_MASK, SWI_NET_MASK, SWI_CAMNET_MASK, SWI_CAMBIO_MASK + .long SWI_VM_MASK, 0, SWI_CLOCK_MASK, SWI_AST_MASK /* active flag for lazy masking */ iactive: diff --git a/sys/amd64/isa/atpic_vector.S b/sys/amd64/isa/atpic_vector.S index 224970c..4756038 100644 --- a/sys/amd64/isa/atpic_vector.S +++ b/sys/amd64/isa/atpic_vector.S @@ -1,6 +1,6 @@ /* * from: vector.s, 386BSD 0.1 unknown origin - * $Id: icu_vector.s,v 1.6 1997/09/28 19:30:01 gibbs Exp $ + * $Id: icu_vector.s,v 1.7 1998/01/15 07:33:59 gibbs Exp $ */ /* @@ -195,17 +195,16 @@ MCOUNT_LABEL(eintr) .data .globl _ihandlers -_ihandlers: -ihandlers: /* addresses of interrupt handlers */ +_ihandlers: /* addresses of interrupt handlers */ /* actually resumption addresses for HWI's */ .long Xresume0, Xresume1, Xresume2, Xresume3 .long Xresume4, Xresume5, Xresume6, Xresume7 .long Xresume8, Xresume9, Xresume10, Xresume11 .long Xresume12, Xresume13, Xresume14, Xresume15 .long swi_tty, swi_net, dummycamisr, dummycamisr - .long _swi_vm, 0, 0, 0 - .long 0, 0, 0, 0 - .long 0, 0, _softclock, swi_ast + .long _swi_vm, _swi_null, _swi_null, _swi_null + .long _swi_null, _swi_null, _swi_null, _swi_null + .long _swi_null, _swi_null, _softclock, swi_ast imasks: /* masks for interrupt handlers */ .space NHWI*4 /* padding; HWI masks are elsewhere */ diff --git a/sys/amd64/isa/icu_ipl.S b/sys/amd64/isa/icu_ipl.S index 54ec5d8d..4d91725 100644 --- a/sys/amd64/isa/icu_ipl.S +++ b/sys/amd64/isa/icu_ipl.S @@ -34,7 +34,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: icu_ipl.s,v 1.2 1997/08/24 00:05:13 fsmp Exp $ + * $Id: icu_ipl.s,v 1.3 1997/09/02 19:40:13 fsmp Exp $ */ .data @@ -90,9 +90,6 @@ splz_unpend: bsfl %ecx,%ecx btrl %ecx,_ipending jnc splz_next - movl ihandlers(,%ecx,4),%edx - testl %edx,%edx - je splz_next /* "can't happen" */ cmpl $NHWI,%ecx jae splz_swi /* @@ -111,7 +108,7 @@ splz_swi: pushl %eax orl imasks(,%ecx,4),%eax movl %eax,_cpl - call %edx + call *_ihandlers(,%ecx,4) popl %eax movl %eax,_cpl jmp splz_next diff --git a/sys/amd64/isa/icu_ipl.s b/sys/amd64/isa/icu_ipl.s index 54ec5d8d..4d91725 100644 --- a/sys/amd64/isa/icu_ipl.s +++ b/sys/amd64/isa/icu_ipl.s @@ -34,7 +34,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: icu_ipl.s,v 1.2 1997/08/24 00:05:13 fsmp Exp $ + * $Id: icu_ipl.s,v 1.3 1997/09/02 19:40:13 fsmp Exp $ */ .data @@ -90,9 +90,6 @@ splz_unpend: bsfl %ecx,%ecx btrl %ecx,_ipending jnc splz_next - movl ihandlers(,%ecx,4),%edx - testl %edx,%edx - je splz_next /* "can't happen" */ cmpl $NHWI,%ecx jae splz_swi /* @@ -111,7 +108,7 @@ splz_swi: pushl %eax orl imasks(,%ecx,4),%eax movl %eax,_cpl - call %edx + call *_ihandlers(,%ecx,4) popl %eax movl %eax,_cpl jmp splz_next diff --git a/sys/amd64/isa/icu_vector.S b/sys/amd64/isa/icu_vector.S index 224970c..4756038 100644 --- a/sys/amd64/isa/icu_vector.S +++ b/sys/amd64/isa/icu_vector.S @@ -1,6 +1,6 @@ /* * from: vector.s, 386BSD 0.1 unknown origin - * $Id: icu_vector.s,v 1.6 1997/09/28 19:30:01 gibbs Exp $ + * $Id: icu_vector.s,v 1.7 1998/01/15 07:33:59 gibbs Exp $ */ /* @@ -195,17 +195,16 @@ MCOUNT_LABEL(eintr) .data .globl _ihandlers -_ihandlers: -ihandlers: /* addresses of interrupt handlers */ +_ihandlers: /* addresses of interrupt handlers */ /* actually resumption addresses for HWI's */ .long Xresume0, Xresume1, Xresume2, Xresume3 .long Xresume4, Xresume5, Xresume6, Xresume7 .long Xresume8, Xresume9, Xresume10, Xresume11 .long Xresume12, Xresume13, Xresume14, Xresume15 .long swi_tty, swi_net, dummycamisr, dummycamisr - .long _swi_vm, 0, 0, 0 - .long 0, 0, 0, 0 - .long 0, 0, _softclock, swi_ast + .long _swi_vm, _swi_null, _swi_null, _swi_null + .long _swi_null, _swi_null, _swi_null, _swi_null + .long _swi_null, _swi_null, _softclock, swi_ast imasks: /* masks for interrupt handlers */ .space NHWI*4 /* padding; HWI masks are elsewhere */ diff --git a/sys/amd64/isa/icu_vector.s b/sys/amd64/isa/icu_vector.s index 224970c..4756038 100644 --- a/sys/amd64/isa/icu_vector.s +++ b/sys/amd64/isa/icu_vector.s @@ -1,6 +1,6 @@ /* * from: vector.s, 386BSD 0.1 unknown origin - * $Id: icu_vector.s,v 1.6 1997/09/28 19:30:01 gibbs Exp $ + * $Id: icu_vector.s,v 1.7 1998/01/15 07:33:59 gibbs Exp $ */ /* @@ -195,17 +195,16 @@ MCOUNT_LABEL(eintr) .data .globl _ihandlers -_ihandlers: -ihandlers: /* addresses of interrupt handlers */ +_ihandlers: /* addresses of interrupt handlers */ /* actually resumption addresses for HWI's */ .long Xresume0, Xresume1, Xresume2, Xresume3 .long Xresume4, Xresume5, Xresume6, Xresume7 .long Xresume8, Xresume9, Xresume10, Xresume11 .long Xresume12, Xresume13, Xresume14, Xresume15 .long swi_tty, swi_net, dummycamisr, dummycamisr - .long _swi_vm, 0, 0, 0 - .long 0, 0, 0, 0 - .long 0, 0, _softclock, swi_ast + .long _swi_vm, _swi_null, _swi_null, _swi_null + .long _swi_null, _swi_null, _swi_null, _swi_null + .long _swi_null, _swi_null, _softclock, swi_ast imasks: /* masks for interrupt handlers */ .space NHWI*4 /* padding; HWI masks are elsewhere */ |