aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Rabson <dfr@FreeBSD.org>1998-07-22 08:20:15 +0000
committerDoug Rabson <dfr@FreeBSD.org>1998-07-22 08:20:15 +0000
commitcbda18ce6e06c93541deb02ee08672f4a41ed24d (patch)
treefbcc03fe65999731a9f0a027d6a2dd56460c0a46
parente17e8bbe72f987ae9225bb70a320c50adacf0ec8 (diff)
Notes
-rw-r--r--sys/alpha/alpha/ipl_funcs.c33
1 files changed, 23 insertions, 10 deletions
diff --git a/sys/alpha/alpha/ipl_funcs.c b/sys/alpha/alpha/ipl_funcs.c
index a5ef64075cd2..8465749390dc 100644
--- a/sys/alpha/alpha/ipl_funcs.c
+++ b/sys/alpha/alpha/ipl_funcs.c
@@ -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.3 1998/07/05 12:08:59 dfr Exp $
+ * $Id: ipl_funcs.c,v 1.4 1998/07/12 16:32:02 dfr Exp $
*/
#include <sys/types.h>
@@ -32,12 +32,15 @@
#include <machine/cpu.h>
#include <net/netisr.h>
+#include "sio.h"
+
unsigned int bio_imask; /* XXX */
unsigned int net_imask; /* XXX */
void (*netisrs[32]) __P((void));
u_int32_t netisr;
u_int32_t ipending;
+u_int32_t idelayed;
#define getcpl() (alpha_pal_rdps() & ALPHA_PSL_IPL_MASK)
@@ -81,7 +84,9 @@ static u_int32_t atomic_readandclear(u_int32_t* p)
static void
swi_tty()
{
- /* XXX no users yet */
+#if NSIO > 0
+ siopoll();
+#endif
}
static void
@@ -114,19 +119,27 @@ do_sir()
}
-#define GENSETSOFT(name, bit) \
+#define GENSET(name, ptr, bit) \
\
void name(void) \
{ \
- atomic_setbit(&ipending, (1 << bit)); \
+ atomic_setbit(ptr, bit); \
}
-GENSETSOFT(setsofttty, SWI_TTY)
-GENSETSOFT(setsoftnet, SWI_NET)
-GENSETSOFT(setsoftcamnet, SWI_CAMNET)
-GENSETSOFT(setsoftcambio, SWI_CAMBIO)
-GENSETSOFT(setsoftvm, SWI_VM)
-GENSETSOFT(setsoftclock, SWI_CLOCK)
+GENSET(setdelayed, &ipending, atomic_readandclear(&idelayed))
+GENSET(setsofttty, &ipending, 1 << SWI_TTY)
+GENSET(setsoftnet, &ipending, 1 << SWI_NET)
+GENSET(setsoftcamnet, &ipending, 1 << SWI_CAMNET)
+GENSET(setsoftcambio, &ipending, 1 << SWI_CAMBIO)
+GENSET(setsoftvm, &ipending, 1 << SWI_VM)
+GENSET(setsoftclock, &ipending, 1 << SWI_CLOCK)
+
+GENSET(schedsofttty, &idelayed, 1 << SWI_TTY)
+GENSET(schedsoftnet, &idelayed, 1 << SWI_NET)
+GENSET(schedsoftcamnet, &idelayed, 1 << SWI_CAMNET)
+GENSET(schedsoftcambio, &idelayed, 1 << SWI_CAMBIO)
+GENSET(schedsoftvm, &idelayed, 1 << SWI_VM)
+GENSET(schedsoftclock, &idelayed, 1 << SWI_CLOCK)
#define SPLDOWN(name, pri) \
\