diff options
author | sos <sos@FreeBSD.org> | 1994-09-29 21:11:29 +0000 |
---|---|---|
committer | sos <sos@FreeBSD.org> | 1994-09-29 21:11:29 +0000 |
commit | c438251e56a750d87131573f2811a96a77747801 (patch) | |
tree | a2216ddfe2f39eef1f720fc592750611eadbb5be /sys | |
parent | bc1378c899feed3395ae56bf6006a483d7d9ab92 (diff) | |
download | FreeBSD-src-c438251e56a750d87131573f2811a96a77747801.zip FreeBSD-src-c438251e56a750d87131573f2811a96a77747801.tar.gz |
Oops, forgot one patch for the changed selwakeup, fixed.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/i386/isa/pcaudio.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/sys/i386/isa/pcaudio.c b/sys/i386/isa/pcaudio.c index 489b968..a6bc57f 100644 --- a/sys/i386/isa/pcaudio.c +++ b/sys/i386/isa/pcaudio.c @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: pcaudio.c,v 1.7 1994/09/16 13:33:47 davidg Exp $ + * $Id: pcaudio.c,v 1.8 1994/09/29 08:24:43 sos Exp $ */ #include "pca.h" @@ -63,8 +63,7 @@ static struct pca_status { char current; /* current buffer */ unsigned char oldval; /* old timer port value */ char timer_on; /* is playback running */ - char coll; /* select collision */ - pid_t wsel; /* pid of select'ing proc */ + struct selinfo wsel; /* select status */ } pca_status; static char buffer1[BUF_SIZE]; @@ -393,10 +392,10 @@ pcaintr(int regs) wakeup((caddr_t)&pca_sleep); pca_sleep = 0; } - if (pca_status.wsel) { - selwakeup(pca_status.wsel, pca_status.coll); - pca_status.wsel = 0; - pca_status.coll = 0; + if (pca_status.wsel.si_pid) { + selwakeup((struct selinfo *)&pca_status.wsel.si_pid); + pca_status.wsel.si_pid = 0; + pca_status.wsel.si_flags = 0; } } } @@ -415,11 +414,11 @@ pcaselect(dev_t dev, int rw, struct proc *p) splx(s); return(1); } - if (pca_status.wsel && (p1 = pfind(pca_status.wsel)) + if (pca_status.wsel.si_pid && (p1=pfind(pca_status.wsel.si_pid)) && p1->p_wchan == (caddr_t)&selwait) - pca_status.coll = 1; + pca_status.wsel.si_flags = SI_COLL; else - pca_status.wsel = p->p_pid; + pca_status.wsel.si_pid = p->p_pid; splx(s); return 0; default: |