From owner-FreeBSD-users-jp@jp.freebsd.org  Wed Jan 26 01:41:43 2000
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id BAA57515;
	Wed, 26 Jan 2000 01:41:43 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from tasogare.imasy.or.jp (daemon@tasogare.imasy.or.jp [202.227.24.5])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id BAA57510
	for <FreeBSD-users-jp@jp.freebsd.org>; Wed, 26 Jan 2000 01:41:43 +0900 (JST)
	(envelope-from iwasaki@jp.FreeBSD.org)
Received: from localhost (isdnb48.imasy.or.jp [202.227.24.176])
	by tasogare.imasy.or.jp (8.9.3+3.2W/3.7W-tasogare/smtpfeed 1.01) with ESMTP id BAA19909;
	Wed, 26 Jan 2000 01:41:40 +0900 (JST)
	(envelope-from iwasaki@jp.FreeBSD.org)
Message-Id: <200001251641.BAA19909@tasogare.imasy.or.jp>
To: FreeBSD-users-jp@jp.freebsd.org, watanabe@c.oka-pu.ac.jp
In-Reply-To: Your message of "Wed, 26 Jan 2000 00:45:37 +0900"
	<20000126004537P.watanabe@c.oka-pu.ac.jp>
References: <20000126004537P.watanabe@c.oka-pu.ac.jp>
X-Mailer: Mew version 1.93 on Emacs 19.34 / Mule 2.3 (SUETSUMUHANA)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Date: Wed, 26 Jan 2000 01:41:38 +0900
From: Mitsuru IWASAKI <iwasaki@jp.freebsd.org>
X-Dispatcher: imput version 980905(IM100)
Lines: 59
Reply-To: FreeBSD-users-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+990727
X-Sequence: FreeBSD-users-jp 49234
Subject: [FreeBSD-users-jp 49234] Re: [Q] /dev/pcaudio was brokon now ?
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org
X-Originator: iwasaki@jp.freebsd.org

$B$$$o$5$-$H?=$7$^$9(B

$BA4A3>\$7$/$"$j$^$;$s$,!"$A$g$C$H8+$F$_$^$7$?!#(B

> >> 3.4R $B$N%+!<%M%k$G$9$,!$(B/dev/pcaudio $B$,;H$($F$$$^$9!%$?$@!$(BSMP $B$d(B apm 
> >> $B$rM-8z$K$9$k$H(B $BF1$8$h$&$K(B Device busy $B$H$J$k$h$&$G$9!%(BPAO $B$N>l9g$OB8$8(B
> >> $B$^$;$s$,;29M$^$G$K!%(B
> > 
> > $B$H$N$3$H$G$^$?0l$D$,$C$+$j!#(B(^^;
> > $B2?$+2r7hK!$O$J$$$b$N$G$7$g$&$+!#(B
> 
> $B$H$j$"$($:!$(Bapm $B$rL58z$K(B(disable $B$G$O$J$/40A4$K:o=|(B)$B$9$k$H(B
> 
> Timecounter "i8254"  frequency 1193182 Hz
> Timecounter "TSC"  frequency 400911417 Hz
> 
> $B$H$J$k$N$KBP$7$F!$(B apm $B$rF~$l$k$H(B
> 
> Timecounter "i8254"  frequency 1193182 Hz
> 
> $B$H!$(B"TSC" $B$,>C$($^$9!%$J$s$H$J$/$3$NJU$j$,860x$C$]$$$N$G$9$,!$;d$K$O$3(B
> $B$l0J>e$OJ,$+$j$^$;$s!%$I$J$?$+%U%)%m!<$7$FD:$1$k$H=u$+$k$N$G$9$,!D!%(B

`Device busy' $B$J$N$G(B /sys/sys/errno.h $B$r8+$k$H(B
define EBUSY           16              /* Device busy */

/sys/i386/isa/pcaudio.c $B$G(B EBUSY $B$r$5$,$7$F$_$k$H!"(B
static int
pcawrite(dev_t dev, struct uio *uio, int flag)
{
	:
                        if (!pca_status.timer_on)
                                if (pca_start())
                                        return EBUSY;

pca_start() $B$,2x$7$$$N$G8+$F$_$k$H!"(B
static int
pca_start(void)
{                               
	:
        /* acquire the timers */
        if (acquire_timer2(TIMER_LSB|TIMER_ONESHOT))
                rv = -1;
        else if (acquire_timer0(INTERRUPT_RATE, pcaintr)) {
                release_timer2();
                rv =  -1;

acquire_timer2() $B$H(B acquire_timer0() $B$,2x$7$$$N$G(B /sys/i386/isa/clock.c
$B$r8+$F$_$k$H!"(B
int
acquire_timer0(int rate, void (*function) __P((struct clockframe *frame)))
{
	:
        if (strcmp(timecounter->tc_name, "i8254") == 0)
                return (-1);

$B$H$$$&$o$1$G!"8=>u$G$O(B timecounter $B$H$7$F(B i8254 $B$7$+B8:_$7$J$$>l9g$O(B
Device busy $B$H$J$k$h$&$G$9!#(B
$B$"$H$O(B PIT $B$N;qNA$H$+(B commit log $B$r;29M$K$7$F4hD%$C$F$/$@$5$$!#(B
