Addition of splsoftvm and a VM SWI to handle bus dma related callbacks.

This SWI may be useful for other, defered, VM tasks.
This commit is contained in:
Justin T. Gibbs 1998-01-15 07:34:01 +00:00
parent e1a1bba4fa
commit 99117bb6ec
9 changed files with 32 additions and 25 deletions

View File

@ -1,6 +1,6 @@
/*
* from: vector.s, 386BSD 0.1 unknown origin
* $Id: apic_vector.s,v 1.38 1997/12/04 19:46:26 smp Exp smp $
* $Id: apic_vector.s,v 1.24 1997/12/08 22:59:34 fsmp Exp $
*/
@ -649,7 +649,7 @@ ihandlers:
*/
.long swi_tty, swi_net
.long dummycamisr, dummycamisr
.long 0, 0
.long _swi_vm, 0
.long _softclock, swi_ast
imasks: /* masks for interrupt handlers */
@ -657,7 +657,7 @@ imasks: /* masks for interrupt handlers */
.long SWI_TTY_MASK, SWI_NET_MASK
.long SWI_CAMNET_MASK, SWI_CAMBIO_MASK
.long 0, 0
.long SWI_VM_MASK, 0
.long SWI_CLOCK_MASK, SWI_AST_MASK
/*

View File

@ -1,6 +1,6 @@
/*
* from: vector.s, 386BSD 0.1 unknown origin
* $Id: icu_vector.s,v 1.5 1997/09/21 21:41:05 gibbs Exp $
* $Id: icu_vector.s,v 1.6 1997/09/28 19:30:01 gibbs Exp $
*/
/*
@ -203,7 +203,7 @@ ihandlers: /* addresses of interrupt handlers */
.long Xresume8, Xresume9, Xresume10, Xresume11
.long Xresume12, Xresume13, Xresume14, Xresume15
.long swi_tty, swi_net, dummycamisr, dummycamisr
.long 0, 0, 0, 0
.long _swi_vm, 0, 0, 0
.long 0, 0, 0, 0
.long 0, 0, _softclock, swi_ast
@ -211,7 +211,7 @@ imasks: /* masks for interrupt handlers */
.space NHWI*4 /* padding; HWI masks are elsewhere */
.long SWI_TTY_MASK, SWI_NET_MASK, SWI_CAMNET_MASK, SWI_CAMBIO_MASK
.long 0, 0, 0, 0
.long SWI_VM_MASK, 0, 0, 0
.long 0, 0, 0, 0
.long 0, 0, SWI_CLOCK_MASK, SWI_AST_MASK

View File

@ -1,6 +1,6 @@
/*
* from: vector.s, 386BSD 0.1 unknown origin
* $Id: icu_vector.s,v 1.5 1997/09/21 21:41:05 gibbs Exp $
* $Id: icu_vector.s,v 1.6 1997/09/28 19:30:01 gibbs Exp $
*/
/*
@ -203,7 +203,7 @@ ihandlers: /* addresses of interrupt handlers */
.long Xresume8, Xresume9, Xresume10, Xresume11
.long Xresume12, Xresume13, Xresume14, Xresume15
.long swi_tty, swi_net, dummycamisr, dummycamisr
.long 0, 0, 0, 0
.long _swi_vm, 0, 0, 0
.long 0, 0, 0, 0
.long 0, 0, _softclock, swi_ast
@ -211,7 +211,7 @@ imasks: /* masks for interrupt handlers */
.space NHWI*4 /* padding; HWI masks are elsewhere */
.long SWI_TTY_MASK, SWI_NET_MASK, SWI_CAMNET_MASK, SWI_CAMBIO_MASK
.long 0, 0, 0, 0
.long SWI_VM_MASK, 0, 0, 0
.long 0, 0, 0, 0
.long 0, 0, SWI_CLOCK_MASK, SWI_AST_MASK

View File

@ -1,6 +1,6 @@
/*
* from: vector.s, 386BSD 0.1 unknown origin
* $Id: icu_vector.s,v 1.5 1997/09/21 21:41:05 gibbs Exp $
* $Id: icu_vector.s,v 1.6 1997/09/28 19:30:01 gibbs Exp $
*/
/*
@ -203,7 +203,7 @@ ihandlers: /* addresses of interrupt handlers */
.long Xresume8, Xresume9, Xresume10, Xresume11
.long Xresume12, Xresume13, Xresume14, Xresume15
.long swi_tty, swi_net, dummycamisr, dummycamisr
.long 0, 0, 0, 0
.long _swi_vm, 0, 0, 0
.long 0, 0, 0, 0
.long 0, 0, _softclock, swi_ast
@ -211,7 +211,7 @@ imasks: /* masks for interrupt handlers */
.space NHWI*4 /* padding; HWI masks are elsewhere */
.long SWI_TTY_MASK, SWI_NET_MASK, SWI_CAMNET_MASK, SWI_CAMBIO_MASK
.long 0, 0, 0, 0
.long SWI_VM_MASK, 0, 0, 0
.long 0, 0, 0, 0
.long 0, 0, SWI_CLOCK_MASK, SWI_AST_MASK

View File

@ -1,6 +1,6 @@
/*
* from: vector.s, 386BSD 0.1 unknown origin
* $Id: apic_vector.s,v 1.38 1997/12/04 19:46:26 smp Exp smp $
* $Id: apic_vector.s,v 1.24 1997/12/08 22:59:34 fsmp Exp $
*/
@ -649,7 +649,7 @@ ihandlers:
*/
.long swi_tty, swi_net
.long dummycamisr, dummycamisr
.long 0, 0
.long _swi_vm, 0
.long _softclock, swi_ast
imasks: /* masks for interrupt handlers */
@ -657,7 +657,7 @@ imasks: /* masks for interrupt handlers */
.long SWI_TTY_MASK, SWI_NET_MASK
.long SWI_CAMNET_MASK, SWI_CAMBIO_MASK
.long 0, 0
.long SWI_VM_MASK, 0
.long SWI_CLOCK_MASK, SWI_AST_MASK
/*

View File

@ -1,6 +1,6 @@
/*
* from: vector.s, 386BSD 0.1 unknown origin
* $Id: apic_vector.s,v 1.38 1997/12/04 19:46:26 smp Exp smp $
* $Id: apic_vector.s,v 1.24 1997/12/08 22:59:34 fsmp Exp $
*/
@ -649,7 +649,7 @@ ihandlers:
*/
.long swi_tty, swi_net
.long dummycamisr, dummycamisr
.long 0, 0
.long _swi_vm, 0
.long _softclock, swi_ast
imasks: /* masks for interrupt handlers */
@ -657,7 +657,7 @@ imasks: /* masks for interrupt handlers */
.long SWI_TTY_MASK, SWI_NET_MASK
.long SWI_CAMNET_MASK, SWI_CAMBIO_MASK
.long 0, 0
.long SWI_VM_MASK, 0
.long SWI_CLOCK_MASK, SWI_AST_MASK
/*

View File

@ -1,6 +1,6 @@
/*
* from: vector.s, 386BSD 0.1 unknown origin
* $Id: icu_vector.s,v 1.5 1997/09/21 21:41:05 gibbs Exp $
* $Id: icu_vector.s,v 1.6 1997/09/28 19:30:01 gibbs Exp $
*/
/*
@ -203,7 +203,7 @@ ihandlers: /* addresses of interrupt handlers */
.long Xresume8, Xresume9, Xresume10, Xresume11
.long Xresume12, Xresume13, Xresume14, Xresume15
.long swi_tty, swi_net, dummycamisr, dummycamisr
.long 0, 0, 0, 0
.long _swi_vm, 0, 0, 0
.long 0, 0, 0, 0
.long 0, 0, _softclock, swi_ast
@ -211,7 +211,7 @@ imasks: /* masks for interrupt handlers */
.space NHWI*4 /* padding; HWI masks are elsewhere */
.long SWI_TTY_MASK, SWI_NET_MASK, SWI_CAMNET_MASK, SWI_CAMBIO_MASK
.long 0, 0, 0, 0
.long SWI_VM_MASK, 0, 0, 0
.long 0, 0, 0, 0
.long 0, 0, SWI_CLOCK_MASK, SWI_AST_MASK

View File

@ -1,6 +1,6 @@
/*
* from: vector.s, 386BSD 0.1 unknown origin
* $Id: icu_vector.s,v 1.5 1997/09/21 21:41:05 gibbs Exp $
* $Id: icu_vector.s,v 1.6 1997/09/28 19:30:01 gibbs Exp $
*/
/*
@ -203,7 +203,7 @@ ihandlers: /* addresses of interrupt handlers */
.long Xresume8, Xresume9, Xresume10, Xresume11
.long Xresume12, Xresume13, Xresume14, Xresume15
.long swi_tty, swi_net, dummycamisr, dummycamisr
.long 0, 0, 0, 0
.long _swi_vm, 0, 0, 0
.long 0, 0, 0, 0
.long 0, 0, _softclock, swi_ast
@ -211,7 +211,7 @@ imasks: /* masks for interrupt handlers */
.space NHWI*4 /* padding; HWI masks are elsewhere */
.long SWI_TTY_MASK, SWI_NET_MASK, SWI_CAMNET_MASK, SWI_CAMBIO_MASK
.long 0, 0, 0, 0
.long SWI_VM_MASK, 0, 0, 0
.long 0, 0, 0, 0
.long 0, 0, SWI_CLOCK_MASK, SWI_AST_MASK

View File

@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: ipl_funcs.c,v 1.9 1997/09/21 21:41:16 gibbs Exp $
* $Id: ipl_funcs.c,v 1.11 1997/09/28 19:34:48 fsmp Exp $
*/
#include <sys/types.h>
@ -49,11 +49,13 @@ DO_SETBITS(setsoftnet, &ipending, SWI_NET_PENDING)
DO_SETBITS(setsofttty, &ipending, SWI_TTY_PENDING)
DO_SETBITS(setsoftcamnet,&ipending, SWI_CAMNET_PENDING)
DO_SETBITS(setsoftcambio,&ipending, SWI_CAMBIO_PENDING)
DO_SETBITS(setsoftvm, &ipending, SWI_VM_PENDING)
DO_SETBITS(schedsoftnet, &idelayed, SWI_NET_PENDING)
DO_SETBITS(schedsofttty, &idelayed, SWI_TTY_PENDING)
DO_SETBITS(schedsoftcamnet, &idelayed, SWI_CAMNET_PENDING)
DO_SETBITS(schedsoftcambio, &idelayed, SWI_CAMBIO_PENDING)
DO_SETBITS(schedsoftvm, &idelayed, SWI_VM_PENDING)
unsigned
softclockpending(void)
@ -85,6 +87,7 @@ GENSPL(splsofttty, cpl |= SWI_TTY_MASK)
GENSPL(splstatclock, cpl |= stat_imask)
GENSPL(spltty, cpl |= tty_imask)
GENSPL(splvm, cpl |= net_imask | bio_imask)
GENSPL(splsoftvm, cpl |= SWI_VM_MASK)
void
spl0(void)
@ -137,11 +140,13 @@ DO_SETBITS(setsoftnet, &ipending, SWI_NET_PENDING)
DO_SETBITS(setsofttty, &ipending, SWI_TTY_PENDING)
DO_SETBITS(setsoftcamnet,&ipending, SWI_CAMNET_PENDING)
DO_SETBITS(setsoftcambio,&ipending, SWI_CAMBIO_PENDING)
DO_SETBITS(setsoftvm, &ipending, SWI_VM_PENDING)
DO_SETBITS(schedsoftnet, &idelayed, SWI_NET_PENDING)
DO_SETBITS(schedsofttty, &idelayed, SWI_TTY_PENDING)
DO_SETBITS(schedsoftcamnet, &idelayed, SWI_CAMNET_PENDING)
DO_SETBITS(schedsoftcambio, &idelayed, SWI_CAMBIO_PENDING)
DO_SETBITS(schedsoftvm, &idelayed, SWI_VM_PENDING)
unsigned
softclockpending(void)
@ -243,6 +248,7 @@ GENSPL(splsofttty, |=, SWI_TTY_MASK, 12)
GENSPL(splstatclock, |=, stat_imask, 13)
GENSPL(spltty, |=, tty_imask, 14)
GENSPL(splvm, |=, net_imask | bio_imask, 15)
GENSPL(splsoftvm, |=, SWI_VM_MASK, 16)
#else /* INTR_SPL */
@ -279,6 +285,7 @@ GENSPL(splsofttty, cpl |= SWI_TTY_MASK)
GENSPL(splstatclock, cpl |= stat_imask)
GENSPL(spltty, cpl |= tty_imask)
GENSPL(splvm, cpl |= net_imask | bio_imask)
GENSPL(splsoftvm, cpl |= SWI_VM_MASK)
#endif /* INTR_SPL */