From owner-FreeBSD-users-jp@jp.freebsd.org  Fri Jul 12 12:23:44 1996
Received: by mail.jp.freebsd.org (8.7.3+2.6Wbeta5/8.7.3) id MAA14544
	Fri, 12 Jul 1996 12:23:44 +0900 (JST)
Received: by mail.jp.freebsd.org (8.7.3+2.6Wbeta5/8.7.3) with SMTP id MAA14539
	for <FreeBSD-users-jp@jp.freebsd.org>; Fri, 12 Jul 1996 12:23:42 +0900 (JST)
Received: (from satoru@localhost) by casgur.prc.tsukuba.ac.jp (8.6.12/8.6.12) id MAA06597; Fri, 12 Jul 1996 12:23:20 +0900
Message-Id: <199607120323.MAA06597@casgur.prc.tsukuba.ac.jp>
From: =?ISO-2022-JP?B?GyRCRURDZjNQGyhC?= (TANAKA Satoru)<satoru@prc.tsukuba.ac.jp>
To: FreeBSD-users-jp@jp.freebsd.org
In-reply-to: Your message of "Thu, 11 Jul 96 22:08:08 JST"
References: <199607111308.WAA24140@aa8336.mc.elec.eng.osaka-cu.ac.jp> 
Date: Fri, 12 Jul 1996 12:23:19 +0900
Reply-To: FreeBSD-users-jp@jp.freebsd.org
X-Distribute: distribute [version 2.1 (Alpha) patchlevel=19]
X-Sequence: FreeBSD-users-jp 2954
Subject: [FreeBSD-users-jp 2954] Re: I/O port access 
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org


>> On Thu, 11 Jul 1996 22:08:08 +0900 (JST) 
>> tsuyu@mc.elec.eng.osaka-cu.ac.jp (Kimitake Tsuyuno) said:

> $B$O$8$a$^$7$F!"O*Ln!wBg:e;TN)Bg3X$H?=$7$^$9!#(B

$B$3$s$K$A$O!"(B
$BEDCf(B $B3P!wC^GHBg%W%i%:%^8&5f%;%s%?!<(B $B$G$9!#(B

> PC-9801 BX2 $B$G(B FreeBSD-2.1.0-RELEASE(98) $B$r;H$C$F$$$k$N$G$9$,!"(B
> FreeBSD$B$+$i(BI/O$B%]!<%H$X$N%"%/%;%9$N;EJ}$K$D$$$FJ,$+$i$::$$C$F$$$^$9!#(B

$B;d$O:#!"(B98 $B$H(B A/D $BJQ49%\!<%I$r;H$C$F<B83%G!<%?$r<h$j9~$s$G$$$^$9!#(B

$B0JA0$3$N(B ML $B$G(B"$B%G%P%$%9%I%i%$%P$r;H$o$J$$(B I/O $B%]!<%H$N%"%/%;%9Nc(B"$B$,>R(B
$B2p$5$l$F$$$^$7$?!#(B

Subject: (FreeBSD-user 2234) Re: Direct I/O port access 
Subject: (FreeBSD-user 2277) Re: Direct I/O port access

$B$r8+$FD:$/$HNI$/J,$+$j$^$9!#(B

$B$3$NCf$G>R2p$5$l$F$$$^$9$,!"(B

----
/* byte $B$G(B $BF~=PNO(B */

static __inline unsigned char
inb(unsigned int port)
{
  unsigned char	data;

  __asm __volatile("inb %%dx,%0" : "=a" (data) : "d" (port));
  return (data);
}

static __inline void
outb(unsigned int port, unsigned data)
{
  unsigned char	al;

  al = data;
  __asm __volatile("outb %0,%%dx" : : "a" (al), "d" (port));
}
----

$B$3$s$J4X?t$r:n$j$^$9!#$3$l$G(B I/O $B%]!<%H$H(B 8bit $B$GF~=PNO$,$G$-$^$9!#(B
$B$G$b$b$7$+$7$F(B 16bit $B$GF~=PNO$r9T$$$?$$$N$G$9$+(B? $B$@$H$9$k$H!";d$O0J2<(B
$B$N4X?t$r;H$C$F$$$^$9!#(B

----
/* word $B$GF~=PNO(B */
static __inline  unsigned short
inw(unsigned short port)
{
  unsigned short val;
  
  __asm __volatile("inw %%dx,%0" : "=a" (val) : "d" (port));
  return (val);
}

static __inline unsigned short
outw(unsigned short port, unsigned short val)
{
  unsigned short al;

  al = val;
  __asm __volatile("outw %0,%%dx" : : "a" (al), "d" (port));
  return (al);
}
----

inb outb $B$,$"$k$N$@$+$i(B inw outw $B$,$"$k$K0c$$$J$$!"$H>!<j$K7h$a$D$1$F(B
$B;H$C$F$$$^$9!#$&$^$/$$$C$F$^$9$,3N>Z$O$"$j$^$;$s!#(B

$B$"$C$F$^$9$+(B? $B>\$7$$J}65$($F$/$@$5$$!#(B

---satoru@prc.tsukuba.ac.jp
----TANAKA Satoru
-----Plasma Research Center, U. of Tsukuba, Japan
