Linux$B2>A[%"%I%l%96u4V4IM}(B
$B?^#1$O(BLinux$B$K$*$1$k2>A[%"%I%l%9$HJ*M}%"%I%l%9$N4X78$r<($7$F$$$^$9!#(B

$B?^#1!'(BLinux$B$K$*$1$k2>A[%"%I%l%9$HJ*M}%"%I%l%9$N4X78(B
Linux$B$N#1$D#1$D$N%W%m%;%9$O8_$$$KFHN)$7$?2>A[%"%I%l%96u4V$r;}$C$F$$$^$9!#(B
$B=>$C$F!"2>A[B?=E6u4V$r:n$C$F$$$k$3$H$K$J$j$^$9!#(B
$B0lJ}%+!<%M%k$O#1$D$G!"B?=E2=$5$l$F$$$^$;$s!#%W%m%;%9$+$i8+$k$H!"%+!<%M%k(B
$B6u4V$OA4$/8+$($:!"DL>o>e8B$,(B3G$B%P%$%H$N2>A[6u4V$K8+$($^$9!#$b$A$m$s!"B>$N(B
$B%W%m%;%9$N2>A[6u4V$b8+$($k$O$O$:$,$"$j$^$;$s!#$7$+$7!"%+!<%M%k6u4V$+$i$O(B
$B$"$k;~E@$G$N%W%m%;%96u4V$NA4$F$,8+$($F$7$^$$$^$9!#%+!<%M%k$ODL>o#1(BG$B%P%$%H$N(B
$BBg$-$5$N2>A[6u4V$r:n$j!"$5$^$6$^$N%W%m%;%9$N2>A[6u4V$r8+$k$3$H$,$G$-$^$9!#(B
$B$^$?J*M}%"%I%l%9$H$N4X78$G8@$($P!"%W%m%;%96u4V$O2>A[5-21%7%9%F%`$NJ#;($J(B
$B%"%I%l%9JQ495!9=$G4IM}$5$l$F$$$k$N$KBP$7!"%+!<%M%k6u4V$OJ*M}%"%I%l%9$K(B
$B%9%H%l!<%H$K%^%C%T%s%0$5$l$F$$$^$9!#(B
$B2<5-$K%+!<%M%k$N2>A[%"%I%l%9!"J*M}%"%I%l%9!"%P%9%"%I%l%9$N4X78$r(B
$B%$%s%F%k$N(Bx86 CPU$B$N>l9g$K$D$$$F!"<($7$^$9!#(B
/usr/src/linux/include/asm/io.h$B$K2<5-$N$h$&$J4X?t$,Dj5A$5$l$F$$$^$9!#(B
- $B2>A[%"%I%l%9$+$iJ*M}%"%I%l%9!'(Bvirt_to_phys(virt_addr)
- $BJ*M}%"%I%l%9$+$i2>A[%"%I%l%9!'(Bphys_to_virt(phys_addr)
- $B2>A[%"%I%l%9$+$iJ*M}%"%I%l%9!'(Bvirt_to_bus(virt_addr)
- $B%P%9%"%I%l%9$+$i%P%9%"%I%l%9!'(Bbus_to_virt(bus_addr)
$B$=$7$F!"$=$l$i$N4X?t$O$^$?
#define virt_to_bus virt_to_phys
#define bus_to_virt phys_to_virt
extern inline unsigned long virt_to_phys(volatile void * address)
{
return __pa(address);
}
extern inline void * phys_to_virt(unsigned long address)
{
return __va(address);
}
in /usr/src/linux/include/asm/page.h
#define __pa(x) ((unsigned long)(x)-PAGE_OFFSET)
#define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET))
#define __PAGE_OFFSET (0xC0000000)
#define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET)
$B$3$l$i$NDj5A$+$i!"%$%s%F%k(Bx86 CPU$B$K$*$$$F$O(B
- $B%P%9%"%I%l%9$HJ*M}%"%I%l%9$OF1$86u4V$G$"$k$3$H(B
- $B2>A[%"%I%l%9$+$iJ*M}%"%I%l%9$X!"$^$?$=$N5U$OC1$K(BPAGE_OFFSET$B$rB-$7$?$j(B
$B0z$$$?$j$7$F$$$k$3$H!"$D$^$j%9%H%l!<%H$K%^%C%T%s%0$5$l$F$$$k$3$H(B
$B$K$J$j$^$9!#(B
$B;29M$N$?$a!"8=:_$NJ*M}%"%I%l%9$,$I$N$h$&$K$J$C$F$$$k$+$rCN$k$?$a$K(B
/proc/iomem$B$r8+$F$/$@$5$$!#(B
00000000-0009fbff : System RAM
000a0000-000bffff : Video RAM area
000c0000-000c7fff : Video ROM
000c8000-000cc7ff : Extension ROM
000f0000-000fffff : System ROM
00100000-07ffffff : System RAM
00100000-0022f8d5 : Kernel code
0022f8d6-002aa143 : Kernel data
f8000000-fbffffff : S3 Inc. ViRGE/DX or /GX
ffbeb000-ffbebfff : Adaptec AIC-7881U
ffbefc00-ffbefc7f : Digital Equipment Corporation DECchip 21140 [FasterNet]
ffbefc00-ffbefc7f : eth0
fff80000-ffffffff : reserved
$B$5$F!"?^#2$O?^#1$G<($7$?4X78$r
$B?^#2!'(BLinux$B$K$*$1$k%+!<%M%k6u4V$H%W%m%;%96u4V(B
$B%W%m%;%96u4V$K$O?^$K<($5$l$?%W%m%0%i%`$,$"$j$^$9!#1&A[%"%I%l%9$G$O$3$3$G$O(B0xBFFFF4BC$B$G$9!#%W%m%0%i%`$O(Bdata$B$K(B
0x55555555$B$rF~$l$F!"$3$l$r(Bioctl$B%7%9%F%`%3!<%k$G(B/dev/skeleton$B$H$$$&(B
$B%G%P%$%9L>$N%I%i%$%P$KEO$=$&$H$7$F$$$^$9!#0lJ}!"%+!<%M%k6u4V>e$G$O(B
$B$=$N%G%P%$%9%I%i%$%P$,(Bskeleton_ioctl$B$H$$$&%a%=%C%I$GBT$A9=$($F$$$^$9!#(B
arg$B$H$$$&0z?t$GA[%"%I%l%9$HF1$8CM$@(B
$B$H$$$&$3$H$G$9!#$D$^$j!"%+!<%M%k$O%W%m%;%9$N2>A[%"%I%l%9$r$=$N$^$^(B
$B07$&$3$H$,2DG=$@$H$$$&$3$H$r<($7$F$$$^$9!#(B