diff options
author | tanimura <tanimura@FreeBSD.org> | 2003-11-09 09:17:26 +0000 |
---|---|---|
committer | tanimura <tanimura@FreeBSD.org> | 2003-11-09 09:17:26 +0000 |
commit | 7eade05dfa5c79c8765c89ae76635f31451fe886 (patch) | |
tree | 19de3ca43ba82c3cf15a4a6c7fba917e0f7e416b /sys/i386/isa | |
parent | 9cbd7fa025947081790184770a6c74511b0b0a44 (diff) | |
download | FreeBSD-src-7eade05dfa5c79c8765c89ae76635f31451fe886.zip FreeBSD-src-7eade05dfa5c79c8765c89ae76635f31451fe886.tar.gz |
- Implement selwakeuppri() which allows raising the priority of a
thread being waken up. The thread waken up can run at a priority as
high as after tsleep().
- Replace selwakeup()s with selwakeuppri()s and pass appropriate
priorities.
- Add cv_broadcastpri() which raises the priority of the broadcast
threads. Used by selwakeuppri() if collision occurs.
Not objected in: -arch, -current
Diffstat (limited to 'sys/i386/isa')
-rw-r--r-- | sys/i386/isa/asc.c | 2 | ||||
-rw-r--r-- | sys/i386/isa/cx.c | 2 | ||||
-rw-r--r-- | sys/i386/isa/istallion.c | 2 | ||||
-rw-r--r-- | sys/i386/isa/mse.c | 2 | ||||
-rw-r--r-- | sys/i386/isa/spic.c | 2 | ||||
-rw-r--r-- | sys/i386/isa/stallion.c | 2 |
6 files changed, 6 insertions, 6 deletions
diff --git a/sys/i386/isa/asc.c b/sys/i386/isa/asc.c index e304683..23a9801 100644 --- a/sys/i386/isa/asc.c +++ b/sys/i386/isa/asc.c @@ -525,7 +525,7 @@ ascintr(int unit) dma_restart(scu); } if (SEL_WAITING(&scu->selp)) { - selwakeup(&scu->selp); + selwakeuppri(&scu->selp, ASCPRI); } } } diff --git a/sys/i386/isa/cx.c b/sys/i386/isa/cx.c index fd5b686..a2a4693 100644 --- a/sys/i386/isa/cx.c +++ b/sys/i386/isa/cx.c @@ -546,7 +546,7 @@ cxoproc (struct tty *tp) tp->t_state &= ~TS_ASLEEP; wakeup(TSA_OLOWAT(tp)); } - selwakeup(&tp->t_wsel); + selwakeuppri(&tp->t_wsel, TTOPRI); } #endif splx (s); diff --git a/sys/i386/isa/istallion.c b/sys/i386/isa/istallion.c index f9bea0c..7f27ad7 100644 --- a/sys/i386/isa/istallion.c +++ b/sys/i386/isa/istallion.c @@ -1709,7 +1709,7 @@ static void stli_start(struct tty *tp) tp->t_state &= ~TS_ASLEEP; wakeup(&tp->t_outq); } - selwakeup(&tp->t_wsel); + selwakeuppri(&tp->t_wsel, TTOPRI); } #endif diff --git a/sys/i386/isa/mse.c b/sys/i386/isa/mse.c index bb79f28..408bbf7 100644 --- a/sys/i386/isa/mse.c +++ b/sys/i386/isa/mse.c @@ -751,7 +751,7 @@ mseintr(arg) sc->sc_flags &= ~MSESC_WANT; wakeup(sc); } - selwakeup(&sc->sc_selp); + selwakeuppri(&sc->sc_selp, MSEPRI); } } diff --git a/sys/i386/isa/spic.c b/sys/i386/isa/spic.c index a0afcb9..93985e4 100644 --- a/sys/i386/isa/spic.c +++ b/sys/i386/isa/spic.c @@ -433,7 +433,7 @@ spictimeout(void *arg) sc->sc_sleeping = 0; wakeup( sc); } - selwakeup(&sc->sc_rsel); + selwakeuppri(&sc->sc_rsel, PZERO); } spic_call2(sc, 0x81, 0xff); /* Clear event */ diff --git a/sys/i386/isa/stallion.c b/sys/i386/isa/stallion.c index fb5b51f..54d186d 100644 --- a/sys/i386/isa/stallion.c +++ b/sys/i386/isa/stallion.c @@ -1234,7 +1234,7 @@ static void stl_start(struct tty *tp) tp->t_state &= ~TS_ASLEEP; wakeup(&tp->t_outq); } - selwakeup(&tp->t_wsel); + selwakeuppri(&tp->t_wsel, TTOPRI); } #endif |