summaryrefslogtreecommitdiffstats
path: root/sys/amd64
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>1998-08-11 15:08:13 +0000
committerbde <bde@FreeBSD.org>1998-08-11 15:08:13 +0000
commit577b83a70e2314aad91a8a8eb2701588bab8fd3a (patch)
tree0f2f845400de37f9f238c9632765a0ba01b2e2c0 /sys/amd64
parentfd999b742a2a451bcfed8559f11c67a9cf60851e (diff)
downloadFreeBSD-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.S15
-rw-r--r--sys/amd64/isa/atpic_vector.S11
-rw-r--r--sys/amd64/isa/icu_ipl.S7
-rw-r--r--sys/amd64/isa/icu_ipl.s7
-rw-r--r--sys/amd64/isa/icu_vector.S11
-rw-r--r--sys/amd64/isa/icu_vector.s11
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 */
OpenPOWER on IntegriCloud