日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

2 FreeBSD 核心( 七 )


bt bt_pci_driver pci/bt9xx.c scsi adapt
ncr ncr_device pci/ncr.c scsi adapt
amd trmamd_device pci/tek390.c scsi adapt
cy cy_device pci/cy_pci.c serial port
meteor met_device pci/meteor.c meteor通道
stl stlpcidriver i386/isa/stallion.c serial port
wdc wdc_pci_driver pci/wdc_p.c ide control
de dedevice pci/if_de.c network interface
ed ed_pci_driver pci/if_ed_p.c network interface
fpa pfadevice pci/if_pfa.c network interface
fxp fxp_device pci/if_pxp.c network interface
lnc lnc_pci_driver pci/if_lnc_p.c network interface
sr sr_pci_driver pci/if_sr_p.c network interface
vx vxdevice pci/if_vx_pci.c network interface
-------------------------------------------------------------------------

ISA bus
連接ISA bus的io設備的device driver的初始化在isa_configure()(@i386/
isa/isa.c)進行 。和EISA,PCI很大的一個區(qū)別就是,在核心的配置文件中,要指定所
有的io地址等 。
configure文件中,有象如下的記錄
controller 控制設備名 at isa?...
device device名 at isa?...
這些內(nèi)容在編譯核心的目錄下作為ioconf.c的struct isa_device
isa_devtab_XXX[]的初始值由config命令寫進去 。在struct isa_device(@i386/isa
/isa_device.h)的上,其次的成員變量由configure文件的記錄內(nèi)容進行設定 。但是
,“名字”是控制設備名/device名的數(shù)字除外的部分 。
-------------------------------------------------------------------------
member名 configure的記述內(nèi)容
-------------------------------------------------------------------------
id_driver 名字drvIEr
id_iobase prot I/O address
id_irq irq號
id_drq drq DMA通道號
id_maddr iomem共有memory address
id_msize iosiz共有memory長度
id_intr vector device driver的中斷處理程序名
id_unit 名字的后的數(shù)字(?)
id_flags flags
-------------------------------------------------------------------------

但是,和控制設備/device名有關的一些東西如bio,net,tty出現(xiàn)的場合,這
些一般成為isa_devtab_bio[],isa_devtab_net[],isa_devtab_tty[]數(shù)組的初始值 。
沒有的情況,則成為isa_tab_null[]的初始值 。還有一個就是名字driver,它是各個
device driver的module內(nèi)部的struct isa_driver(@i386/isa/isa_device.h)一個東
西 。對isa bus設備的device driver,這個是一個固定值 。
象這樣的記錄:
------------------------------------------------------------
disk device名 at 控制設備名 driver 數(shù)字
tape device名 at 控制設備名 driver 數(shù)字
------------------------------------------------------------
每個數(shù)字除外控制設備名(wdc或者fdc),總結起來就是寫進一個叫做
isa_biotab_控制設備名[]的數(shù)組的某個元素的初始設定值 。但對unit成員填入數(shù)字
外,其他的也就和isa_devtab_bio[]的內(nèi)容一樣 。
isa_configure()依照isa_devtab_bio[],isa_devtab_net[],
isa_devtab_tty[]的設定值調(diào)用probe子程序?qū)υO備的有無進行確認 。有的話就繼續(xù)
調(diào)用attach子程序 。
probe子程序?qū)υO備進行確認,不同的probe子程序也有可能對同樣的io地址
進行操作 。所以為了防止這個問題,isa_configure()對已經(jīng)確認過的的io地址不再
給別的probe進行動作 。
同樣,錯認的可能性也有的 。必要的時候沒連接的設備的probe要禁止使用,
(在boot的參數(shù)的時候) 。

推薦閱讀