[CORE] Expose vendor defined device in ibiou.
authorleonidk <leonidk@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Mon, 23 Mar 2009 18:49:29 +0000 (18:49 +0000)
committerleonidk <leonidk@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Mon, 23 Mar 2009 18:49:29 +0000 (18:49 +0000)
commit2b776b9b23f75acee855d12d06ee5c1a80ec70de
tree471cc0312357ff6a767cb0fcc0b0fc11523ecbd7
parentffbe8b2fae605773aef03ac245f5aec01d76a79d
[CORE] Expose vendor defined device in ibiou.

IBIOU driver doesn't create child PDO's on discovering a EVIC IOC.
It's behavior for SRP target IOCs is not altered and child devices for SRP targets will get created on their discovery.

IBIOU keeps a global list of reachable IOCs in iou_globals. IBIOU add/delete entries in this list on IOC ADD and IOC REMOVE PnP events.
User mode utility "qlgcvnic_config" is used to list all the reachable IOCs to the user and then to create the VNIC PDOs.
"qlgcvnic_config" uses device IOCTLs to communicate with the IBIOU driver.
IBIOU creates the devices only if sees that EVIC IOC is reachable from the particular CA.
"qlgcvnic_config" utility writes this device information into the registry also, so that IBIOU can pick up these device creation information on
next reboot.
In initialization phase, IBIOU reads the child device information from the registry and makes a list of VNIC child devices to be created.
On each IOC add events, it traverses the child device list (prepared during initialization) and create the child PDO for matching child device entries.

Signed off by: Deepak Gupta [deepak.gupta@qlogic.com]

git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2039 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
core/al/al_dev.h
core/iou/kernel/SOURCES
core/iou/kernel/iou_driver.c
core/iou/kernel/iou_driver.h
core/iou/kernel/iou_ioc_mgr.c
core/iou/kernel/iou_ioc_mgr.h
core/iou/kernel/iou_pnp.c