summaryrefslogtreecommitdiffstats
path: root/sys/i386/isa
diff options
context:
space:
mode:
authortanimura <tanimura@FreeBSD.org>2003-11-09 09:17:26 +0000
committertanimura <tanimura@FreeBSD.org>2003-11-09 09:17:26 +0000
commit7eade05dfa5c79c8765c89ae76635f31451fe886 (patch)
tree19de3ca43ba82c3cf15a4a6c7fba917e0f7e416b /sys/i386/isa
parent9cbd7fa025947081790184770a6c74511b0b0a44 (diff)
downloadFreeBSD-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.c2
-rw-r--r--sys/i386/isa/cx.c2
-rw-r--r--sys/i386/isa/istallion.c2
-rw-r--r--sys/i386/isa/mse.c2
-rw-r--r--sys/i386/isa/spic.c2
-rw-r--r--sys/i386/isa/stallion.c2
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
OpenPOWER on IntegriCloud