Sophie

Sophie

distrib > Mandriva > 9.2 > i586 > by-pkgid > a804ef007a99f7d26cf24253c2994680 > files > 2020

howto-html-ja-9.1-0.5mdk.noarch.rpm

<HTML
><HEAD
><TITLE
> C $B%W%m%0%i%`$+$i(B I/O $B%]!<%H$r;H$&(B</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.54"><LINK
REL="HOME"
TITLE="Linux I/O $B%]!<%H%W%m%0%i%_%s%0(B mini-HOWTO"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Introduction "
HREF="intro.html"><LINK
REL="NEXT"
TITLE="$B3d$j9~$_(B (IRQ) $B$H(B DMA $B%"%/%;%9(B"
HREF="irq.html"></HEAD
><BODY
CLASS="SECT1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Linux I/O $B%]!<%H%W%m%0%i%_%s%0(B mini-HOWTO</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="intro.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="irq.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="USING"
>2. C $B%W%m%0%i%`$+$i(B I/O $B%]!<%H$r;H$&(B</A
></H1
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="AEN28"
>2.1. $BIaDL$NJ}K!(B</A
></H2
><P
>I/O $B%]!<%H$r%"%/%;%9$9$k$?$a$N%k!<%A%s$O(B <TT
CLASS="FILENAME"
>/usr/include/asm/io.h</TT
> ($B$^$?$O%+!<%M%k$N%=!<%9%Q%C%1!<%8$NCf$N(B <TT
CLASS="FILENAME"
>linux/include/asm-i386/io.h</TT
>) $B$KDj5A$5$l$F$$$^$9!#I,MW$J%k!<%A%s$O!"(B
$B$3$NCf$G%$%s%i%$%s%^%/%m$H$7$FDj5A$5$l$F$$$^(B
$B$9$N$G!"(B<TT
CLASS="FILENAME"
>#include &#60;asm/io.h&#62;</TT
> 
$B$H$9$k$@$1$G==J,$G$7$g$&!#FCJL$J%i%$%V%i%j$J$I$OITMW$G$9!#(B</P
><P
>gcc ($B;d$NCN$k8B$jA4$F$N%P!<%8%g%s!"(Begcs $B$b4^$`(B) $B$+$i$N@)8B$N$?$a!"(B
$B$3$l$i$N%k!<%A%s$r;H$&%=!<%9$r%3%s%Q%$%k$9$k$K$"$?$j!":GE,2=$r%*%s(B
$B$K$9$k(B( <B
CLASS="COMMAND"
>gcc <TT
CLASS="OPTION"
>-O1</TT
></B
> $B$^$?$O$=$l0J>e(B)$B!"$"$k$$(B
$B$O(B <TT
CLASS="LITERAL"
>#include &#60;asm/io.h&#62;</TT
> $B$NA0$K(B 
<TT
CLASS="LITERAL"
>#define extern static</TT
> $B$H$$$&@k8@$r(B
$B$*$3$J$C$F$*$/(B<EM
>$BI,MW(B</EM
>$B$,$"$j$^$9!#(B
($B$"$H$G(B <TT
CLASS="LITERAL"
>#undef extern</TT
> $B$7$F$*$/$N$r(B
$BK:$l$J$$$h$&$K!#(B)</P
><P
>$B%G%P%C%0$N$?$a$K!"(B($B>/$J$/$H$b:G6a$N(B gcc $B$G$O(B) <B
CLASS="COMMAND"
>gcc <TT
CLASS="OPTION"
>-g</TT
> <TT
CLASS="OPTION"
>-O</TT
></B
>$B$r;H$&$3$H$,$G$-$^$9$,!"(B
$B:GE,2=$5$l$?%3!<%I$G$O%G(B
$B%P%C%,$,JQ$J5sF0$r<($9$3$H$b$"$j$^$9!#$3$N$h$&$J>l9g$K$O!"(BI/O $B%]!<%H(B
$B%"%/%;%9$r4^$s$@%3!<%I$rFHN)$7$?%U%!%$%k$K$7$F$*$$$F!"$=$N%U%!%$%k$N(B
$B%3%s%Q%$%k$N;~$K$@$1:GE,2=$r%*%s$K$9$k$H$$$&J}K!$r;H$&$3$H$b$G$-$^$9!#(B</P
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
NAME="AEN45"
>2.1.1. $B%Q!<%_%C%7%g%s(B</A
></H3
><P
>$B%]!<%H$r%"%/%;%9$9$kA0$K!"$=$N%]!<%H$r%"%/%;%9$9$k5v2D$r%W%m%0%i%`$KM?$((B
$B$J$1$l$P$J$j$^$;$s!#$3$l$K$O!"(B<TT
CLASS="FUNCTION"
>ioperm()</TT
> $B4X?t(B
 (<TT
CLASS="FILENAME"
>unistd.h</TT
> $B$G@k8@$5$l!"%+!<%M%k$NCf$G(B
$BDj5A$5$l$F$$$k(B)$B$r8F$S=P$7$^$9!#$3$N4X?t$O%W%m%0%i%`$N:G=i$NJ}$G(B( I/O $B%]!<%H(B
$B%"%/%;%9$r$9$kA0$K(B)$B8F$S=P$9I,MW$,$"$j$^$9!#(B
$B$3$N4X?t$N=q<0$O(B <TT
CLASS="FUNCTION"
>ioperm(from, num, turn_on)</TT
>$B$G$9!#(B
<TT
CLASS="LITERAL"
>from</TT
>$B$O%"%/%;%9$r5v$9%]!<%H$N:G=i$N%"%I%l%9!"(B
<TT
CLASS="LITERAL"
>num</TT
>$B$O(B<TT
CLASS="LITERAL"
>from</TT
>$B$+$i(B
$B$$$/$D$NO"B3%"%I%l%9$N%"%/%;%9$r5v$9$+!"$r;XDj$7$^$9!#(B
$BNc$($P!"(B<TT
CLASS="FUNCTION"
>ioperm(0x300, 5, 1)</TT
> $B$O!"(B0x300 $B$+$i(B
0x304 ($B9g7W$G(B 5 $B$D$N%]!<%H(B)$B$KBP$9$k5v2D$r;XDj$7!":G8e$N%Q%i%a!<%?$G$O!"(B
$B$=$N%]!<%H$KBP$9$k%"%/%;%95v2D$rM?$($k$N$+6X;_$9$k$N$+$rO@M}CM(B(true : 1 
= $B%"%/%;%9$r5v2D$9$k(B, false : 0 = $B%"%/%;%9$r6X;_$9$k(B)$B$G;XDj$7$^$9!#(B
$BO"B3$7$F$$$J$$%]!<%H$N>l9g$K$O!"J#?t2s(B<TT
CLASS="FUNCTION"
>ioperm()</TT
>
$B$r8F$S=P$7$F!"E,@Z$J5v2D$r;XDj$7$^$9!#(B
$BJ8K!$N>\:Y$K4X$7$F$O(B <TT
CLASS="LITERAL"
>ioperm(2)</TT
> $B$N%^%K%e%"%k(B
$B%Z!<%8$r;2>H$7$F$/$@$5$$!#(B</P
><P
><TT
CLASS="FUNCTION"
>ioperm()</TT
> $B$r8F$S=P$9$K$O!"$=$N%W%m%0%i%`$,(B 
root $BFC8"$GAv$C$F$$$k$3$H$,I,MW$G$9!#(B
$B$D$^$j!"$=$N%W%m%0%i%`$r%k!<%H%f!<%6$G<B9T$9$k$+!"(Bsetuid root ($BLuCm(B: $B<B(B
$B9T%U%!%$%k$N%*!<%J!<$r(B root $B$K$7$F$*$-!"(Bchmod 4755 hogehoge $B$H$$$&$d$D(B
$B$G$9!#(B)$B$7$F$*$/I,MW$,$"$j$^$9!#(B
$BI,MW$J%]!<%H$KBP$9$k5v2D$r(B <TT
CLASS="FUNCTION"
>ioperm()</TT
> $B$GM?$((B
$B$?$"$H$K!"(Broot $BFC8"$rMn$9$3$H$b$G$-$^$9!#(B
$B%W%m%0%i%`$N:G8e$G!"L@<(E*$K(B <TT
CLASS="FUNCTION"
>ioperm(..., 0)</TT
> 
$B$r8F$S=P$7$F5v2D$rMn$9I,MW$O$"$j$^$;$s!#(B
$B$3$l$O%W%m%0%i%`$N=*N;;~$K<+F0E*$K9T$J$o$l$^$9$+$i!#(B</P
><P
>root $B0J30$N%f!<%6$K(B <TT
CLASS="FUNCTION"
>setuid()</TT
> $B$9$k$3$H$G(B 
<TT
CLASS="FUNCTION"
>ioperm()</TT
> $B$NM?$($?%]!<%H%"%/%;%95v2D$,(B
$B$J$/$J$k$3$H$O$"$j$^$;$s$,!"0lJ}$G(B <TT
CLASS="FUNCTION"
>fork()</TT
> 
$B$9$k$H5v2D$,$J$/$J$j$^$9!#(B
($B;R%W%m%;%9$O%"%/%;%95v2D$r;}$C$F$$$^$;$s$,!"?F%W%m%;%9$O;}$C$F$$$^$9!#(B)</P
><P
><TT
CLASS="FUNCTION"
>ioperm()</TT
> $B$G$O!"(B0x000 $B$+$i(B 0x3ff $B$^$G$N(B
$B%]!<%H$KBP$9$k%"%/%;%95v2D$7$+M?$($k$3$H$O$G$-$^$;$s!#(B
$B$3$l$h$j$b>e$N%]!<%H$KBP$7$F$O!"(B<TT
CLASS="FUNCTION"
>iopl()</TT
> 
$B$r;H$&I,MW$,$"$j$^$9!#(B
(<TT
CLASS="FUNCTION"
>iopl()</TT
> $B$r;H$&$H0lEY$K$9$Y$F$N%]!<%H$KBP(B
$B$9$k%"%/%;%95v2D$rM?$($k$3$H$K$J$j$^$9!#(B)
<EM
>$B$9$Y$F$N(B</EM
>$B%]!<%H$KBP$7$F%"%/%;%95v2D$rM?$($k$K$O!"(B
$B%l%Y%k%Q%i%a!<%?$H$7$F!V(B3$B!W$r;H$$$^$9!#$D$^$j!"(B<TT
CLASS="FUNCTION"
>iopl(3)</TT
> $B$H$$$&4X?t8F$S=P$7$r$7$^$9!#(B
($B4V0c$C$?%]!<%H$K%"%/%;%9$9$k$H$H$s$G$b$J$$$3$H$,5/$-$k$+$bCN$l$^$;$s(B
$B$+$i!";H$&$H$-$K$OCm0U$7$F$/$@$5$$!#(B)
$B$b$A$m$s!"(B<TT
CLASS="FUNCTION"
>iopl()</TT
> $B$r8F$S=P$9;~$K$O(B root 
$BFC8"$,I,MW$G$9!#(B
$B>\:Y$K4X$7$F$O(B <TT
CLASS="LITERAL"
>iopl(2)</TT
> $B$N%^%K%e%"%k%Z!<%8$r(B
$B;2>H$7$F$/$@$5$$!#(B</P
></DIV
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
NAME="AEN73"
>2.1.2. $B%]!<%H$N%"%/%;%9(B</A
></H3
><P
>$B%]!<%H$+$i%P%$%H%G!<%?(B(8bit)$B$rF~NO$9$k>l9g$K$O(B <TT
CLASS="FUNCTION"
>inb(port)</TT
> $B$r8F$S=P$7$^$9!#(B
$B$3$N4X?t$O%P%$%H%G!<%?$rJV$7$^$9!#(B
$B%]!<%H$K%P%$%H%G!<%?$r=PNO$9$k$K$O!"(B<TT
CLASS="FUNCTION"
>outb(value, port)</TT
> $B$r8F$S=P$7$^$9!#(B
($B%Q%i%a!<%?$N=gHV$KCm0U$7$F2<$5$$!#(B)
($BLuCm(B:$B%"%;%s%V%i$d!"(BMS-DOS $B$N%3%s%Q%$%i%i%$%V%i%j$J$I$N>l9g$H$O5U$G$9!#(B) 
$B%]!<%H%"%I%l%9(B <TT
CLASS="LITERAL"
>x</TT
> $B$H(B <TT
CLASS="LITERAL"
>x+1 </TT
>$B$+$i%o!<%I%G!<%?$rF~NO$9$k>l9g$K$O(B <TT
CLASS="FUNCTION"
>inw(x)</TT
> $B$r8F$S=P$7$^$9!#(B($B%"%;%s%V%i$N(B<TT
CLASS="FUNCTION"
>inw</TT
>
$B$H$^$C$?$/F1$8$h$&$K$=$l$>$l$N%]!<%H$+$i(B 1 $B%P%$%H$:$DFI$s$G$-$F!"%o!<%I(B
$B%G!<%?$r9=@.$9$k$o$1$G$9$,!#(B)
$B$U$?$D$N%]!<%H$K%o!<%I(B( 2 $B%P%$%H(B)$B$r=PNO$9$k$K$O(B <TT
CLASS="FUNCTION"
>outw(value, x)</TT
> $B$r;H$$$^$9!#(B
$B$I$A$i$NL?Na(B($B%P%$%H%G!<%?$+%o!<%I%G!<%?$+(B)$B$r;H$($P$$$$$N$+J,$+$i$J$$$H$-$O!"(B
$BB?J,!"(B<TT
CLASS="FUNCTION"
>inb()</TT
> $B$H(B <TT
CLASS="FUNCTION"
>outb()</TT
> $B$r;H$($P$$$$$G$7$g$&!#(B
$BBgDq$N%G%P%$%9$O%P%$%HC10L$N%]!<%H%"%/%;%9$r$9$k$h$&@_7W$5$l$F$$$^$9!#(B
$B%]!<%H%"%/%;%9$NL?Na$O$9$Y$F<B9T$K>/$J$/$H$bLs(B 1 $B%^%$%/%mIC$+$+$k$N$G(B
$BCm0U$7$F$/$@$5$$!#(B</P
><P
><TT
CLASS="FUNCTION"
>inb_p()</TT
>, 
<TT
CLASS="FUNCTION"
>outb_p()</TT
>, 
<TT
CLASS="FUNCTION"
>inw_p()</TT
>, 
<TT
CLASS="FUNCTION"
>outw_p()</TT
> $B$H$$$C$?%^%/%m$O!">e$K=R$Y$?$N$H(B
$BF1$8F0:n$r$7$^$9$,!"%]!<%H$K%"%/%;%9$7$?8e$K>/$7$@$1(B($BLs(B 1 $B%^%$%/%mIC(B)
$B%&%(%$%H$7$^$9!#(B
<TT
CLASS="LITERAL"
>#include &#60;asm/io.h&#62;</TT
> $B$NA0$K(B 
<TT
CLASS="LITERAL"
>#define REALLY_SLOW_IO</TT
> $B$r(B
$BIU$12C$($k$H$3$N%&%(%$%H;~4V$r(B 4 $B%^%$%/%mIC$KJQ$($k$3$H$,$G$-$^$9!#(B
$B$3$l$i$N%^%/%m$ODL>o!"(B0x80 $BHVCO$N(B I/O $B%]!<%H$K=PNO$9$k$3$H$G%&%(%$%H$r(B
$B<B8=$7$F$$$^$9!#(B
(<TT
CLASS="LITERAL"
>#define SLOW_IO_BY_JUMPING</TT
> $B$H$7$F$$$k>l9g$K$OJL$NJ}K!$,;H$o$l$^$9$,!"$3$l$O$"$^$j@53N$JCY1d(B
$B$r$*$3$J$&$3$H$,$G$-$J$$$O$:$G$9!#(B)
$B$3$N$h$&$JM}M3$+$i!"(B0x80 $BHVCO$N%]!<%H$KBP$9$k(B <TT
CLASS="FUNCTION"
>ioperm()</TT
> $B$r@h$K<B9T$7$F$*$/I,MW$,(B
$B$"$j$^$9!#(B(0x80 $BHVCO$N%]!<%H$KBP$9$k=PNO$O%7%9%F%`$KBP$7$F$J$s$i1F6A$r(B
$BM?$($k$3$H$O$J$$$O$:$G$9!#(B)
$B$5$i$K$5$^$6$^$JCY1d$r9T$J$&J}K!$K$D$$$F$O!"0J2<$rFI$_?J$a$F2<$5$$!#(B</P
><P
>$B$=$3$=$3:G6a$N%j%j!<%9$N(B Linux $B%^%K%e%"%k%Z!<%8$K$O!"(B
<TT
CLASS="LITERAL"
>ioperm(2)</TT
> $B$d(B <TT
CLASS="LITERAL"
>iopl(2)</TT
>$B!">e=R$N%^%/%m$K4X$9$k@bL@$,$"$j$^$9!#(B</P
></DIV
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="AEN97"
>2.2. I/O $B%]!<%H%"%/%;%9$r$9$kJL$NJ}K!!'(B<TT
CLASS="LITERAL"
>/dev/port</TT
></A
></H2
><P
>I/O $B%]!<%H$K%"%/%;%9$9$k$b$&0l$D$NJ}K!$O!"(B<TT
CLASS="FUNCTION"
>open()</TT
> $B$r;H$C$F(B <TT
CLASS="FILENAME"
>/dev/port</TT
> ($B%-%c%i%/%?%G(B
$B%P%$%9!"%a%8%c!<HV9f(B 1$B!"%^%$%J!<HV9f(B 4)$B$r%*!<%W%s$7$F!"(Bread/write $B$r$*(B
$B$3$J$&$H$$$&J}K!$G$9!#(B
(stdio $B$N(B <TT
CLASS="FUNCTION"
>f*()</TT
> $B4X?t(B($BLuCm(B: <TT
CLASS="FUNCTION"
>fwrite()</TT
> $B$H$+(B <TT
CLASS="FUNCTION"
>fread()</TT
> $B$H$+(B...)$B$OFb(B
$BIt$G%P%C%U%!%j%s%0$r$7$F$$$k$N$G!";H$($^$;$s$M!#(B)
$B%*!<%W%s$7$?8e$K!"F~=PNO$7$?$$%]!<%H$N%"%I%l%9$^$G(B <TT
CLASS="FUNCTION"
>lseek()</TT
> $B$7$^$9!#(B
(file position 0 $B$,(B $B%]!<%H(B 0x00 $B$K!"(Bfile position 1 $B$,(B $B%]!<%H(B 0x01 ... 
$B$H$$$C$?6q9g$KAjEv$7$^$9!#(B)
$B$=$N8e$K(B <TT
CLASS="FUNCTION"
>read()</TT
>, <TT
CLASS="FUNCTION"
>write()</TT
> $B$r;H$C$F%P%$%H(B/$B%o!<%I$rFI$_=q$-$7$^$9!#(B</P
><P
>$B$3$NJ}K!$r;H$&$K$O!"$b$A$m$s(B $B$=$N%W%m%0%i%`$,(B <TT
CLASS="FILENAME"
>/dev/port</TT
> $B$KBP$9$k(B read/write $B5v2D$r;}$C$F$$$J$1$l$P$J$j$^$;$s!#(B
$B$3$NJ}K!$O>e$K=R$Y$?DL>o$NJ}K!$h$j$b$*$=$i$/CY$$$G$7$g$&$,!"%3%s%Q%$%k;~$N(B
$B:GE,2=$d(B <TT
CLASS="FUNCTION"
>ioperm()</TT
> $B$,ITMW$G$"$k$H$$$&MxE@$,$"$j(B
$B$^$9!#(B
<TT
CLASS="FILENAME"
>/dev/port</TT
> $B$KBP$7$F%k!<%H0J30$N%f!<%6$d%0%k!<%W$N(B
$B%"%/%;%95v2D$rM?$($l$P(B root $BFC8"$bI,MW$"$j$^$;$s!#(B
$B$G$b$3$l$O%7%9%F%`%;%-%e%j%F%#$H$$$&0UL#$G$O$H$F$bNI$/$J$$$3$H$G$9!#(B
$B$H$$$&$N$O!"(B<TT
CLASS="FILENAME"
>/dev/port</TT
> $B$r;H$C$F%O!<%I%G%#%9%/!"(B
$B%M%C%H%o!<%/%+!<%I!"$=$NB>$KD>@\%"%/%;%9$9$k$3$H$G!"%7%9%F%`$K>c32$rM?$($?$j!"(B
$B$5$i$K$O(B root $BFC8"$bM?$($F$7$^$&2DG=@-$,$"$k$+$i$G$9!#(B</P
><P
><TT
CLASS="FILENAME"
>/dev/port</TT
> $B$+$i$NFI$_9~$_$K$*$$$F(B 
<TT
CLASS="LITERAL"
>select(2)</TT
> $B$d(B <TT
CLASS="LITERAL"
>poll(2)</TT
> 
$B$r;H$&$3$H$O$G$-$^$;$s!#(B
$B$J$<$J$iF~NO%]!<%H$NCM$,JQ2=$7$?$H$-$K!"%O!<%I%&%'%"$K$O$=$l$r(BCPU$B$K(B
$BEA$($k5!G=$,$J$$$+$i$G$9!#(B</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="intro.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="irq.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Introduction</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>$B3d$j9~$_(B (IRQ) $B$H(B DMA $B%"%/%;%9(B</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>