FreeBSD ?? PnP
?ǥХ??????ݡ??Ȥˤ??äơ??桼????
PnP ?????ɤ???????
???????ꤹ?뤳?Ȥ???ǽ?ˤʤ??ޤ????ޤ????ǥХ????ɥ饤?Ф?
PnP ?????ɤ?
?ѥ?????????????ѹ????뤳?Ȥ???ǽ?ˤʤ??ޤ???
??ư?Ƕ??????ꤹ?뵡ǽ???Ѥ??뤿???ˤϡ??????ͥ???
options USERCONFIG
?դ??ǥ????ѥ??뤹??ɬ?פ??????ޤ???
???ΤȤ??????ͥ??ϡ?PnP
?ǥХ?????????????Ͽ???뤿????
???????礭???Υơ??֥?
(?ǥե????Ȥ? 20 ?????ȥ?)
?????ݤ??ޤ??? PnP ?????? 1
?Ĥ?ʣ??????Ω?????ǥХ??????鹽???????Ƥ???
???Ȥ⤢???ޤ? (5 ?? 6
?Ĥ⤢???Ȥ??????Ȥϰ۾??ǤϤ????ޤ???)??
?????ͥ??? “-c
”
?ե饰?դ??ǥ֡??Ȥ??뤳?Ȥǡ?
PnP
?????ɤ??????ѹ??Υ??ޥ??ɤ????ѤǤ??ޤ??????ޥ??ɤ?
pnp CSN LDN
?Ȥ??????????????Ϥޤ??ޤ????????ǡ?CSN
?ʤ??Ӥ? LDN ??
???줾?졢?ǥХ????˿??????Ƥ??륫?????????ֹ?
(Card Select Number) ???????????ǥХ????ֹ? (Logiacal Device
Number) ?Ǥ???
???Υ???????³???ơ??ʲ??Υ??ޥ??ɤ?Ǥ?դ??Ȥ߹??碌???Ȥ??ޤ???
irqN
line
- ?????ɾ??γ??????? 0 ?ޤ??? 1 (????: N ?ǻ???)
?˻??Ѥ??? IRQ ???????ꤷ?ޤ???
line ?? 0
?????ꤹ?뤳?Ȥϡ?IRQ
???????Ѥ??ʤ????Ȥ???̣???ޤ???
drqN
n
- ?????ɾ??? DMA 0 ?ޤ??? 1 (????: N ?ǻ???)
?˻??Ѥ??? DRQ ?????ͥ??????ꤷ?ޤ???
?????ͥ??? 4
?????ꤹ?뤳?Ȥϡ??????ͥ??????Ѥ??ʤ????Ȥ???̣???ޤ???
portN
address
- N ???ܤΥݡ????ΰ? (port's range)
?δ??쥢?ɥ쥹 (base address)
?????ꤷ?ޤ? (N=0..7)?? address ?? 0
?????ꤹ?뤳?Ȥϡ??ݡ??Ȥ????Ѥ??ʤ????Ȥ???̣???ޤ???
memN
address
- N ???ܤΥ??????ΰ? (memory's range)
?δ??쥢?ɥ쥹 (base address)
?????ꤷ?ޤ? (N=0..3)?? address ?? 0
?????ꤹ?뤳?Ȥϡ????????ΰ??????Ѥ??ʤ????Ȥ???̣???ޤ???
bios
- PnP ?ǥХ??????????Ȥ??ơ?BIOS
?????ꤷ?????Τ????Ѥ??ޤ???
?????ϥǥե????ȤǤ??ꡢ BIOS ?? PnP
?ݡ??Ȥ??Ƥ????????ˤ??̾??Ϥ????Ǥ褤?Ǥ??礦??
BIOS ?????????Ѥ????????ˤ?
“
flags
”
?ʳ??Υѥ??????̵?뤵???ޤ???
os
- PnP
?ǥХ??????????ˡ????Υ????ȥ??ǻ??ꤷ?????Τ????Ѥ??ޤ???
enable
- PnP ?ǥХ?????ͭ???ˤ??ޤ???
disable
- PnP ?ǥХ?????̵???ˤ??ޤ???
delete
- ?ǥХ????˻??Ѥ????Ƥ??륨???ȥ????????????̤?
CSN/LDN ???Ȥ?????
¾?ΥǥХ????ǻ??ѤǤ????褦?ˤ??ޤ???
flags
- ?ǥХ????ɥ饤?Ф??Ϥ? 32
?ӥåȤ? flags
?????ȥ????ͤ????ꤷ?ޤ??? flags
?ϡ????̤?ư???⡼?ɤ????ꤹ???Τ˻Ȥ????뤳?Ȥ??????ޤ???
(?㤨?С????????Υ??????ɥ????ɤ? SB ?? WSS
?Υ??ߥ??졼????????
?ڤ??ؤ??롢?ʤ?)
???ߤΥơ??֥??????????ͤϡ?userconfig
?? ls
???ޥ??ɤ?ɽ???????ޤ???
???Υơ??֥??ϡ??桼?????Ԥʤä??ѹ??˲ä???
PnP
?ǥХ????ɥ饤?Ф????????????????٤Ƥ??????ǥХ????Υ????ȥ???
?ݻ????ޤ???
?ơ??֥????ѹ????̤ϡ?
dset(8)
???ޥ??ɤˤ??äƥե????륷???ƥ????Υ֡??ȥ????????¸?????ޤ???
(????: ?????ͥ??? ELF ???ˤ??? dset
???ޥ??ɤ??ѻߤ????ޤ???)
?????ͥ??? PnP
?ǥХ???????ưŪ??ǧ?????????ꤷ?ޤ???
PnP
?ǥХ????ϰʲ??Υǡ?????¤?Ǽ??̤??ޤ???
struct pnp_device {
char *pd_name;
char *(*pd_probe ) (u_long csn, u_long vendor_id);
void (*pd_attach ) (u_long csn, u_long vend_id, char * name,
struct isa_device *dev);
u_long *pd_count;
u_int *imask;
struct isa_device dev;
};
?ץ????? (probe) ?롼?????ϡ??Ϥ?????
vendor_id ????ʬ?? ǧ?????????ΤǤ??뤫??
??????????ɬ?פʥǥХ?????ͭ???ˤʤäƤ??뤫???????å?????
?????å??? ???Ԥ????????ˤ? NULL
?ͤ????????????????ˤ? NULL ?Ǥʤ???
(???̤˥ǥХ???̾???ؤ??ݥ?????)
???֤??ޤ???
?ץ????֥롼???????ˤ????ơ??????ǥХ?????ͭ???Ǥ??뤫?ɤ?????
?????å??ˤϡ? read_pnp_parms
()
?????ѤǤ??ޤ???
?????å? (attach) ?롼?????ϡ? PnP ?????ɤ?
ISA ??????????ǽ?ˤ??롢
?????????????롢?ǥХ????? ISA
?ɥ饤?Ф??Ƥ֡?
?Ȥ??ä?ɬ?פʽ??????٤ƹԤ????Ȥ?ɬ?פǤ???
???Υ롼?????ȥǡ?????¤?????ѤǤ??ޤ???
struct
pnp_cinfo
- ???Υǡ?????¤
(/usr/i386/isa/pnp.h ???????????Ƥ???)
?ϡ? PnP
?????ǥХ????˴?Ϣ???뤹?٤Ƥξ??????ޤ??Ǥ??ޤ???
read_pnp_parms
(struct pnp_cinfo
*d, int ldn)
- ???δؿ????ᤵ?줿?????ǥХ????????????֤??ޤ???
???δؿ??ϥץ????֤????ӥ????å???
?롼?????ƤФ??뤳?Ȥ????????ꤷ?Ƥ??뤿?ᡢ
CSN ?????ꤹ?뤳?ȤϤǤ??ޤ?????
write_pnp_parms
(struct pnp_cinfo
*d, int ldn)
- ???δؿ????ᤵ?줿?????ǥХ????Υѥ?????????ꤷ?ޤ???
Ʊ???ˡ??????ͥ??ζ????????ѥơ??֥??Υ????ȥ??????ޤ???
BIOS ?? (userconfig ?????Ѥ???) ?桼??????????
?ɤ??ѥ?????????ꤹ?٤??????褯?ΤäƤ????Ϥ??ʤΤǡ?
?ǥХ????ɥ饤?Ф??̾??ǥХ????????????ѹ????٤??Ǥ?
?????ޤ????? ?äˡ? userconfig
?ˤ??붯???????ᥫ?˥???????þ?????Ƥ??ޤ????ᡢ
̵???ˤʤäƤ????????ǥХ?????
ͭ???ˤ??ƤϤʤ??ޤ?????
?ǥХ????ɥ饤?Ф??????ǥХ??????ݡ????ΰ??ʤɤ?̵???ˤ??Ƥ?
???ޤ??ޤ????????ϡ?
?????ΥǥХ??????ѥ?????????????????Ȥ??狼?äƤ?????????
?¤??٤??Ǥ???
enable_pnp_card
(void)
- ???δؿ??ϥ????å??롼??????????
?Τߡ? ?????ɤ? ISA
?ݡ???/???????Υ??ɥ쥹?ΰ??˥???????????????
?ƤФʤ????Фʤ??ޤ?????
?ӥ??奢?륳???ե??????졼???????ˤϡ?PnP
?ǥХ????????Υ??ݡ??Ȥ? ?????ޤ?????
userconfig ?Υ??ޥ??ɤ? PnP
?ǥХ??????????????????뤳?Ȥ??Ǥ?????
?????餷?????ȤǤ??礦??
PnP ???ݡ??Ȥ? Sujal Patel
???????˼??ݤ??????Τˡ?
Luigi Rizzo ???ޤ?????
pnp
?? FreeBSD 2.2.5
?˽??????о줷?ޤ?????