summaryrefslogtreecommitdiff
path: root/sys/arch/amiga
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch/amiga')
-rw-r--r--sys/arch/amiga/dev/if_bah.c9
-rw-r--r--sys/arch/amiga/dev/ite.c14
-rw-r--r--sys/arch/amiga/dev/ite_blank.c10
-rw-r--r--sys/arch/amiga/dev/itevar.h6
-rw-r--r--sys/arch/amiga/dev/par.c28
5 files changed, 45 insertions, 22 deletions
diff --git a/sys/arch/amiga/dev/if_bah.c b/sys/arch/amiga/dev/if_bah.c
index 213a10ac44c..736c6677c9e 100644
--- a/sys/arch/amiga/dev/if_bah.c
+++ b/sys/arch/amiga/dev/if_bah.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_bah.c,v 1.8 1997/09/18 13:39:55 niklas Exp $ */
+/* $OpenBSD: if_bah.c,v 1.9 2001/08/20 19:35:18 miod Exp $ */
/* $NetBSD: if_bah.c,v 1.30 1997/04/04 06:27:32 is Exp $ */
/*
@@ -60,6 +60,7 @@
#include <sys/syslog.h>
#include <sys/ioctl.h>
#include <sys/errno.h>
+#include <sys/timeout.h>
#include <net/if.h>
#include <net/if_dl.h>
@@ -159,6 +160,7 @@ struct bah_softc {
struct arccom sc_arccom; /* Common arcnet structures */
struct isr sc_isr;
struct a2060 *sc_base;
+ struct timeout sc_tmo;
u_long sc_recontime; /* seconds only, I'm lazy */
u_long sc_reconcount; /* for the above */
u_long sc_reconcount_excessive; /* for the above */
@@ -296,6 +298,7 @@ bah_zbus_attach(parent, self, aux)
alloc_sicallback();
alloc_sicallback();
+ timeout_set(&sc->sc_tmo, bah_reconwatch, sc);
sc->sc_isr.isr_intr = bahintr;
sc->sc_isr.isr_arg = sc;
sc->sc_isr.isr_ipl = 2;
@@ -1065,7 +1068,7 @@ bahintr(arg)
* time if necessary.
*/
- untimeout(bah_reconwatch, (void *)sc);
+ timeout_del(&sc->sc_tmo);
newsec = time.tv_sec;
if ((newsec - sc->sc_recontime <= 2) &&
(++sc->sc_reconcount == ARC_EXCESSIVE_RECONS)) {
@@ -1074,7 +1077,7 @@ bahintr(arg)
sc->sc_dev.dv_xname);
}
sc->sc_recontime = newsec;
- timeout(bah_reconwatch, (void *)sc, 15*hz);
+ timeout_add(&sc->sc_tmo, 15 * hz);
}
if (maskedisr & ARC_RI) {
diff --git a/sys/arch/amiga/dev/ite.c b/sys/arch/amiga/dev/ite.c
index 019fc81b039..99fb5472151 100644
--- a/sys/arch/amiga/dev/ite.c
+++ b/sys/arch/amiga/dev/ite.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ite.c,v 1.13 2000/07/22 00:35:50 espie Exp $ */
+/* $OpenBSD: ite.c,v 1.14 2001/08/20 19:35:18 miod Exp $ */
/* $NetBSD: ite.c,v 1.47 1996/12/23 09:10:20 veego Exp $ */
/*
@@ -916,6 +916,8 @@ ite_filter(c, caller)
ite_restart_blanker(kbd_ite);
kbd_tty = kbd_ite->tp;
+ if (!timeout_initialized(&kbd_ite->repeat_timeout))
+ timeout_set(&kbd_ite->repeat_timeout, repeat_handler, NULL);
/* have to make sure we're at spltty in here */
s = spltty();
@@ -945,7 +947,7 @@ ite_filter(c, caller)
/* stop repeating on up event */
if (up) {
if (tout_pending) {
- untimeout(repeat_handler, 0);
+ timeout_del(&kbd_ite->repeat_timeout);
tout_pending = 0;
last_char = 0;
}
@@ -953,7 +955,7 @@ ite_filter(c, caller)
return;
} else if (tout_pending && last_char != c) {
/* different character, stop also */
- untimeout(repeat_handler, 0);
+ timeout_del(&kbd_ite->repeat_timeout);
tout_pending = 0;
last_char = 0;
}
@@ -996,12 +998,14 @@ ite_filter(c, caller)
if (!tout_pending && caller == ITEFILT_TTY && kbd_ite->key_repeat) {
tout_pending = 1;
last_char = c;
- timeout(repeat_handler, 0, start_repeat_timeo * hz / 100);
+ timeout_add(&kbd_ite->repeat_timeout,
+ start_repeat_timeo * hz / 100);
} else if (!tout_pending && caller == ITEFILT_REPEATER &&
kbd_ite->key_repeat) {
tout_pending = 1;
last_char = c;
- timeout(repeat_handler, 0, next_repeat_timeo * hz / 100);
+ timeout_add(&kbd_ite->repeat_timeout,
+ next_repeat_timeo * hz / 100);
}
/* handle dead keys */
if (key.mode & KBD_MODE_DEAD) {
diff --git a/sys/arch/amiga/dev/ite_blank.c b/sys/arch/amiga/dev/ite_blank.c
index b1e1a64012b..14606e4b1e2 100644
--- a/sys/arch/amiga/dev/ite_blank.c
+++ b/sys/arch/amiga/dev/ite_blank.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ite_blank.c,v 1.1 1999/11/05 17:15:34 espie Exp $ */
+/* $OpenBSD: ite_blank.c,v 1.2 2001/08/20 19:35:18 miod Exp $ */
/*-
* Copyright (c) 1999 Marc Espie.
*
@@ -79,10 +79,12 @@ ite_restart_blanker(kbd)
/* steal timing trick from pcvt */
if (last_schedule != time.tv_sec) {
+ if (!timeout_initialized(&kbd->blank_timeout))
+ timeout_set(&kbd->blank_timeout, ite_blank, kbd);
if (blank_enabled && !blanked_screen)
- untimeout(ite_blank, kbd);
+ timeout_del(&kbd->blank_timeout);
if (blank_enabled && blank_time)
- timeout(ite_blank, kbd, blank_time * hz);
+ timeout_add(&kbd->blank_timeout, blank_time * hz);
last_schedule = time.tv_sec;
}
ite_unblank(kbd);
@@ -104,7 +106,7 @@ ite_disable_blanker(kbd)
{
int x = spltty();
- untimeout(ite_blank, kbd);
+ timeout_del(&kbd->blank_timeout);
blank_enabled = 0;
ite_unblank(kbd);
diff --git a/sys/arch/amiga/dev/itevar.h b/sys/arch/amiga/dev/itevar.h
index 6cf75a023a9..529ab8c4269 100644
--- a/sys/arch/amiga/dev/itevar.h
+++ b/sys/arch/amiga/dev/itevar.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: itevar.h,v 1.3 1996/05/02 06:44:14 niklas Exp $ */
+/* $OpenBSD: itevar.h,v 1.4 2001/08/20 19:35:18 miod Exp $ */
/* $NetBSD: itevar.h,v 1.14 1996/04/21 21:12:03 veego Exp $ */
/*
@@ -33,6 +33,8 @@
#if ! defined (_ITEVAR_H)
#define _ITEVAR_H
+#include <sys/timeout.h>
+
enum ite_arraymaxs {
MAX_ARGSIZE = 256,
MAX_TABS = 256,
@@ -52,6 +54,8 @@ enum ite_attr {
struct ite_softc {
struct device device;
struct tty *tp;
+ struct timeout blank_timeout;
+ struct timeout repeat_timeout;
char argbuf[MAX_ARGSIZE];
struct grf_softc *grf; /* XXX */
void *priv;
diff --git a/sys/arch/amiga/dev/par.c b/sys/arch/amiga/dev/par.c
index 77d75b8ab41..94b9d4aa6ee 100644
--- a/sys/arch/amiga/dev/par.c
+++ b/sys/arch/amiga/dev/par.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: par.c,v 1.7 2001/02/07 07:46:50 art Exp $ */
+/* $OpenBSD: par.c,v 1.8 2001/08/20 19:35:18 miod Exp $ */
/* $NetBSD: par.c,v 1.16 1996/12/23 09:10:28 veego Exp $ */
/*
@@ -51,6 +51,7 @@
#include <sys/file.h>
#include <sys/systm.h>
#include <sys/proc.h>
+#include <sys/timeout.h>
#include <amiga/amiga/device.h>
#include <amiga/amiga/cia.h>
@@ -65,6 +66,8 @@ struct par_softc {
#define sc_burst sc_param.burst
#define sc_timo sc_param.timo
#define sc_delay sc_param.delay
+ struct timeout sc_partimo;
+ struct timeout sc_parstart;
} *par_softcp;
#define getparsp(x) (x > 0 ? NULL : par_softcp)
@@ -110,6 +113,8 @@ struct cfdriver par_cd = {
NULL, "par", DV_DULL, NULL, 0
};
+struct timeout tmo_parintr;
+
/*ARGSUSED*/
int
parmatch(pdp, match, auxp)
@@ -134,6 +139,7 @@ parattach(pdp, dp, auxp)
if ((pardebug & PDB_NOCHECK) == 0)
#endif
par_softcp->sc_flags = PARF_ALIVE;
+ timeout_set(&tmo_parintr, parintr, par_softcp);
printf("\n");
}
@@ -296,7 +302,9 @@ parrw(dev, uio)
if (sc->sc_timo > 0)
{
sc->sc_flags |= PARF_TIMO;
- timeout(partimo, (void *)unit, sc->sc_timo);
+ if (!timeout_initialized(&sc->sc_partimo))
+ timeout_set(&sc->sc_partimo, partimo, (caddr_t)unit);
+ timeout_add(&sc->sc_partimo, sc->sc_timo);
}
while (uio->uio_resid > 0)
{
@@ -329,7 +337,7 @@ again:
#endif
if (sc->sc_flags & PARF_TIMO)
{
- untimeout(partimo, (void *)unit);
+ timeout_del(&sc->sc_partimo);
sc->sc_flags &= ~PARF_TIMO;
}
splx(s);
@@ -395,7 +403,9 @@ again:
if (sc->sc_delay > 0)
{
sc->sc_flags |= PARF_DELAY;
- timeout(parstart, (void *)unit, sc->sc_delay);
+ if (!timeout_initialized(&sc->sc_parstart))
+ timeout_set(&sc->sc_parstart, parstart, (caddr_t)unit);
+ timeout_add(&sc->sc_parstart, sc->sc_delay);
error = tsleep(sc, PCATCH | (PZERO - 1), "par-cdelay", 0);
if (error)
{
@@ -419,12 +429,12 @@ again:
s = splsoftclock();
if (sc->sc_flags & PARF_TIMO)
{
- untimeout(partimo, (void *)unit);
+ timeout_del(&sc->sc_partimo);
sc->sc_flags &= ~PARF_TIMO;
}
if (sc->sc_flags & PARF_DELAY)
{
- untimeout(parstart, (void *)unit);
+ timeout_del(&sc->sc_parstart);
sc->sc_flags &= ~PARF_DELAY;
}
splx(s);
@@ -540,7 +550,7 @@ parintr(arg)
*/
if (mask) {
if (partimeout_pending)
- untimeout(parintr, 0);
+ timeout_del(&tmo_parintr);
if (parsend_pending)
parsend_pending = 0;
}
@@ -576,7 +586,7 @@ parsendch (ch)
& (CIAB_PRA_SEL|CIAB_PRA_BUSY|CIAB_PRA_POUT)));
#endif
/* wait a second, and try again */
- timeout(parintr, 0, hz);
+ timeout_add(&tmo_parintr, hz);
partimeout_pending = 1;
/* this is essentially a flipflop to have us wait for the
first character being transmitted when trying to transmit
@@ -592,7 +602,7 @@ parsendch (ch)
printf ("parsendch interrupted, error = %d\n", error);
#endif
if (partimeout_pending)
- untimeout(parintr, 0);
+ timeout_del(&tmo_parintr);
partimeout_pending = 0;
}