Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-1-5]: src/sys/arch/mvme68k/mvme68k Pullup from trunk: 1.43



details:   https://anonhg.NetBSD.org/src/rev/80a47ab1c6fe
branches:  netbsd-1-5
changeset: 488658:80a47ab1c6fe
user:      scw <scw%NetBSD.org@localhost>
date:      Sat Jul 22 15:51:12 2000 +0000

description:
Pullup from trunk: 1.43
Approved by: thorpej

Implement generic soft interrupts for mvme68k.

diffstat:

 sys/arch/mvme68k/mvme68k/trap.c |  45 ++--------------------------------------
 1 files changed, 3 insertions(+), 42 deletions(-)

diffs (77 lines):

diff -r d0e0c305b48f -r 80a47ab1c6fe sys/arch/mvme68k/mvme68k/trap.c
--- a/sys/arch/mvme68k/mvme68k/trap.c   Sat Jul 22 15:50:44 2000 +0000
+++ b/sys/arch/mvme68k/mvme68k/trap.c   Sat Jul 22 15:51:12 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: trap.c,v 1.40 2000/06/06 18:52:42 soren Exp $  */
+/*     $NetBSD: trap.c,v 1.40.2.1 2000/07/22 15:51:12 scw Exp $        */
 
 /*
  * Copyright (c) 1988 University of Utah.
@@ -191,11 +191,6 @@
 #endif
 
 
-#define NSIR   8
-void (*sir_routines[NSIR])(void *);
-void *sir_args[NSIR];
-int next_sir;
-
 /*
  * trap and syscall both need the following work done before returning
  * to user mode.
@@ -283,7 +278,6 @@
        int i, s;
        u_int ucode;
        u_quad_t sticks = 0 /* XXX initialiser works around compiler bug */;
-       int bit;
 
        uvmexp.traps++;
        p = curproc;
@@ -530,13 +524,8 @@
 
        case T_SSIR:            /* software interrupt */
        case T_SSIR|T_USER:
-               while ((bit = ffs(ssir))) {
-                       --bit;
-                       ssir &= ~(1 << bit);
-                       uvmexp.softs++;
-                       if (sir_routines[bit])
-                               sir_routines[bit](sir_args[bit]);
-               }
+               softintr_dispatch();
+
                /*
                 * If this was not an AST trap, we are all done.
                 */
@@ -1192,31 +1181,3 @@
                ktrsysret(p, SYS_fork, 0, 0);
 #endif
 }
-
-/*
- * Allocation routines for software interrupts.
- */
-u_long
-allocate_sir(proc, arg)
-       void (*proc)(void *);
-       void *arg;
-{
-       int bit;
-
-       if( next_sir >= NSIR )
-               panic("allocate_sir: none left");
-       bit = next_sir++;
-       sir_routines[bit] = proc;
-       sir_args[bit] = arg;
-       return (1 << bit);
-}
-
-void
-init_sir()
-{
-       extern void netintr __P((void));
-
-       sir_routines[0] = (void (*)(void *))netintr;
-       sir_routines[1] = (void (*)(void *))softclock;
-       next_sir = 2;
-}



Home | Main Index | Thread Index | Old Index