Dave Allan wrote:
Attached is a fully functional version of the node device udev based
backend, incorporating all the feedback from earlier revisions. I broke
the new capability fields out into a separate patch per Dan's
suggestion, and I have also included a patch removing the DevKit backend.
I haven't reviewed the code yet, but I did get this built and running on one of
my machines here. I ran a script which collected the output of "virsh
nodedev-list" and "virsh nodedev-dumpxml <device>" against both the
HAL backend
and the udev backend (the output from both is attached). Then I did a
comparison. Overall, it looks like you did really good work. There are some
discrepancies, though, and a few random notes below.
1) I did this on an F-11 x86_64 box, which has libudev 141 installed. In order
for it to build, I had to change configure.in to allow 141, and I also had to
add #define LIBUDEV_I_KNOW_THE_API_IS_SUBJECT_TO_CHANGE. Neither of these is an
issue for F-12, but it might be something to consider adding to the ./configure
checks so we can build it on slightly older setups.
2) There are a few build-time warnings that you'll want to clean up:
CC libvirt_driver_nodedev_la-node_device_udev.lo
node_device/node_device_udev.c: In function 'udevGetUint64SysfsAttr':
node_device/node_device_udev.c:209: warning: passing argument 4 of
'virStrToLong_ull' from incompatible pointer type
../src/util/util.h:157: note: expected 'long long unsigned int *' but argument
is of type 'uint64_t *'
node_device/node_device_udev.c: In function 'udevProcessDisk':
node_device/node_device_udev.c:472: warning: passing argument 3 of
'udevGetUint64SysfsAttr' from incompatible pointer type
node_device/node_device_udev.c:199: note: expected 'uint64_t *' but argument is
of type 'long long unsigned int *'
node_device/node_device_udev.c:478: warning: passing argument 3 of
'udevGetUint64SysfsAttr' from incompatible pointer type
node_device/node_device_udev.c:199: note: expected 'uint64_t *' but argument is
of type 'long long unsigned int *'
node_device/node_device_udev.c: In function 'udevProcessCDROM':
node_device/node_device_udev.c:511: warning: passing argument 3 of
'udevGetUint64SysfsAttr' from incompatible pointer type
node_device/node_device_udev.c:199: note: expected 'uint64_t *' but argument is
of type 'long long unsigned int *'
node_device/node_device_udev.c:517: warning: passing argument 3 of
'udevGetUint64SysfsAttr' from incompatible pointer type
node_device/node_device_udev.c:199: note: expected 'uint64_t *' but argument is
of type 'long long unsigned int *'
3) I took a look at how the network is represented in the XML. In the HAL
backend, we get something that looks like:
<device>
<name>net_00_13_20_f5_fa_e3</name>
<parent>pci_8086_10bd</parent>
<capability type='net'>
<interface>eth0</interface>
<address>00:13:20:f5:fa:e3</address>
<capability type='80203'/>
</capability>
</device>
That "<capability type='80203'/>" looks to be bogus (although I
could be wrong;
that same XML is encoded into the tests, so maybe there is something else going
on). You are already in a <capability> block, so that should probably just be
"<type='80203'/>". The same problem occurs in the udev backend.
4) I also took a look at the output for one of the bridges. In my HAL backend,
I see:
<device>
<name>net_00_13_20_f5_fa_e3_0</name>
<parent>computer</parent>
<capability type='net'>
<interface>ovirtbr0</interface>
<address>00:13:20:f5:fa:e3</address>
</capability>
</device>
However, in the udev backend I am missing the parent link (in point of fact, the
parent link is missing for quite a few elements), and I also have an additional
"<capability type='80203'/>" element:
<device>
<name>/sys/devices/virtual/net/ovirtbr0</name>
<capability type='net'>
<interface>ovirtbr0</interface>
<address>00:13:20:f5:fa:e3</address>
<capability type='80203'/>
</capability>
</device>
I'm not sure if either of those is a problem.
5) We are still missing the mapping of product/vendor id --> names. This shows
up for instance in the parent of the eth0 device, where the HAL backend shows:
<product id='0x10bd'>82566DM-2 Gigabit Network Connection</product>
and the udev backend shows nothing. Probably not a show-stopper, but a
nice-to-have for human readers.
6) SCSI device 1:0:0:0 (pci_8086_2920_scsi_host_0_scsi_device_lun0 in the HAL
backend, /sys/devices/pci0000:00/0000:00:1f.2/host1/target1:0:0/1:0:0:0 in the
udev backend) shows up with "<type>cdrom</type>" in HAL, but not in
udev.
There are probably a few others, please take a look through my hal-output and
udev-output. Like I said, very good work overall, this is just nit-picking and
cleanups that will make it more like the HAL backend.
--
Chris Lalancette
computer
net_00_13_20_f5_fa_e3
net_00_13_20_f5_fa_e3_0
net_1e_85_27_2d_a9_b0
net_computer_loopback
pci_8086_10bd
pci_8086_244e
pci_8086_2910
pci_8086_2920
pci_8086_2920_scsi_host
pci_8086_2920_scsi_host_0
pci_8086_2920_scsi_host_0_scsi_device_lun0
pci_8086_2920_scsi_host_0_scsi_host
pci_8086_2920_scsi_host_scsi_device_lun0
pci_8086_2920_scsi_host_scsi_host
pci_8086_2926
pci_8086_2926_scsi_host
pci_8086_2926_scsi_host_0
pci_8086_2930
pci_8086_2934
pci_8086_2935
pci_8086_2936
pci_8086_2937
pci_8086_2938
pci_8086_2939
pci_8086_293a
pci_8086_293c
pci_8086_293e
pci_8086_29c0
pci_8086_29c2
pci_8086_29c4
pci_8086_29c6
pci_8086_29c7
platform_floppy_0_storage_platform_floppy
storage_model_DVDRW_LH_20A1S
storage_serial_SATA_ST3320620AS_9QF5E3AP
usb_device_1d6b_1_0000_00_1a_0
usb_device_1d6b_1_0000_00_1a_0_if0
usb_device_1d6b_1_0000_00_1a_1
usb_device_1d6b_1_0000_00_1a_1_if0
usb_device_1d6b_1_0000_00_1a_2
usb_device_1d6b_1_0000_00_1a_2_if0
usb_device_1d6b_1_0000_00_1d_0
usb_device_1d6b_1_0000_00_1d_0_if0
usb_device_1d6b_1_0000_00_1d_1
usb_device_1d6b_1_0000_00_1d_1_if0
usb_device_1d6b_1_0000_00_1d_2
usb_device_1d6b_1_0000_00_1d_2_if0
usb_device_1d6b_2_0000_00_1a_7
usb_device_1d6b_2_0000_00_1a_7_if0
usb_device_1d6b_2_0000_00_1d_7
usb_device_1d6b_2_0000_00_1d_7_if0
<device>
<name>computer</name>
<capability type='system'>
<hardware>
<vendor>To Be Filled By O.E.M.</vendor>
<version>To Be Filled By O.E.M.</version>
<serial>To Be Filled By O.E.M.</serial>
<uuid>35363738-393a-3b3c-3d3e-3f4041424344</uuid>
</hardware>
<firmware>
<vendor>American Megatrends Inc.</vendor>
<version>SDBLI944.86P</version>
<release_date>05/08/2007</release_date>
</firmware>
</capability>
</device>
<device>
<name>net_00_13_20_f5_fa_e3</name>
<parent>pci_8086_10bd</parent>
<capability type='net'>
<interface>eth0</interface>
<address>00:13:20:f5:fa:e3</address>
<capability type='80203'/>
</capability>
</device>
<device>
<name>net_00_13_20_f5_fa_e3_0</name>
<parent>computer</parent>
<capability type='net'>
<interface>ovirtbr0</interface>
<address>00:13:20:f5:fa:e3</address>
</capability>
</device>
<device>
<name>net_1e_85_27_2d_a9_b0</name>
<parent>computer</parent>
<capability type='net'>
<interface>virbr0</interface>
<address>1e:85:27:2d:a9:b0</address>
</capability>
</device>
<device>
<name>net_computer_loopback</name>
<parent>computer</parent>
<capability type='net'>
<interface>lo</interface>
<address>00:00:00:00:00:00</address>
</capability>
</device>
<device>
<name>pci_8086_10bd</name>
<parent>computer</parent>
<driver>
<name>e1000e</name>
</driver>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>25</slot>
<function>0</function>
<product id='0x10bd'>82566DM-2 Gigabit Network
Connection</product>
<vendor id='0x8086'>Intel Corporation</vendor>
</capability>
</device>
<device>
<name>pci_8086_244e</name>
<parent>computer</parent>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>30</slot>
<function>0</function>
<product id='0x244e'>82801 PCI Bridge</product>
<vendor id='0x8086'>Intel Corporation</vendor>
</capability>
</device>
<device>
<name>pci_8086_2910</name>
<parent>computer</parent>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>31</slot>
<function>0</function>
<product id='0x2910'>Unknown (0x2910)</product>
<vendor id='0x8086'>Intel Corporation</vendor>
</capability>
</device>
<device>
<name>pci_8086_2920</name>
<parent>computer</parent>
<driver>
<name>ata_piix</name>
</driver>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>31</slot>
<function>2</function>
<product id='0x2920'>82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA IDE
Controller</product>
<vendor id='0x8086'>Intel Corporation</vendor>
</capability>
</device>
<device>
<name>pci_8086_2920_scsi_host</name>
<parent>pci_8086_2920</parent>
<capability type='scsi_host'>
<host>0</host>
</capability>
</device>
<device>
<name>pci_8086_2920_scsi_host_0</name>
<parent>pci_8086_2920</parent>
<capability type='scsi_host'>
<host>1</host>
</capability>
</device>
<device>
<name>pci_8086_2920_scsi_host_0_scsi_device_lun0</name>
<parent>pci_8086_2920_scsi_host_0</parent>
<driver>
<name>sr</name>
</driver>
<capability type='scsi'>
<host>1</host>
<bus>0</bus>
<target>0</target>
<lun>0</lun>
<type>cdrom</type>
</capability>
</device>
<device>
<name>pci_8086_2920_scsi_host_0_scsi_host</name>
<parent>pci_8086_2920_scsi_host_0</parent>
<capability type='scsi_host'>
<host>1</host>
</capability>
</device>
<device>
<name>pci_8086_2920_scsi_host_scsi_device_lun0</name>
<parent>pci_8086_2920_scsi_host</parent>
<driver>
<name>sd</name>
</driver>
<capability type='scsi'>
<host>0</host>
<bus>0</bus>
<target>0</target>
<lun>0</lun>
<type>disk</type>
</capability>
</device>
<device>
<name>pci_8086_2920_scsi_host_scsi_host</name>
<parent>pci_8086_2920_scsi_host</parent>
<capability type='scsi_host'>
<host>0</host>
</capability>
</device>
<device>
<name>pci_8086_2926</name>
<parent>computer</parent>
<driver>
<name>ata_piix</name>
</driver>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>31</slot>
<function>5</function>
<product id='0x2926'>82801I (ICH9 Family) 2 port SATA IDE
Controller</product>
<vendor id='0x8086'>Intel Corporation</vendor>
</capability>
</device>
<device>
<name>pci_8086_2926_scsi_host</name>
<parent>pci_8086_2926</parent>
<capability type='scsi_host'>
<host>2</host>
</capability>
</device>
<device>
<name>pci_8086_2926_scsi_host_0</name>
<parent>pci_8086_2926</parent>
<capability type='scsi_host'>
<host>3</host>
</capability>
</device>
<device>
<name>pci_8086_2930</name>
<parent>computer</parent>
<driver>
<name>i801_smbus</name>
</driver>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>31</slot>
<function>3</function>
<product id='0x2930'>82801I (ICH9 Family) SMBus
Controller</product>
<vendor id='0x8086'>Intel Corporation</vendor>
</capability>
</device>
<device>
<name>pci_8086_2934</name>
<parent>computer</parent>
<driver>
<name>uhci_hcd</name>
</driver>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>29</slot>
<function>0</function>
<product id='0x2934'>82801I (ICH9 Family) USB UHCI Controller
#1</product>
<vendor id='0x8086'>Intel Corporation</vendor>
</capability>
</device>
<device>
<name>pci_8086_2935</name>
<parent>computer</parent>
<driver>
<name>uhci_hcd</name>
</driver>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>29</slot>
<function>1</function>
<product id='0x2935'>82801I (ICH9 Family) USB UHCI Controller
#2</product>
<vendor id='0x8086'>Intel Corporation</vendor>
</capability>
</device>
<device>
<name>pci_8086_2936</name>
<parent>computer</parent>
<driver>
<name>uhci_hcd</name>
</driver>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>29</slot>
<function>2</function>
<product id='0x2936'>82801I (ICH9 Family) USB UHCI Controller
#3</product>
<vendor id='0x8086'>Intel Corporation</vendor>
</capability>
</device>
<device>
<name>pci_8086_2937</name>
<parent>computer</parent>
<driver>
<name>uhci_hcd</name>
</driver>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>26</slot>
<function>0</function>
<product id='0x2937'>82801I (ICH9 Family) USB UHCI Controller
#4</product>
<vendor id='0x8086'>Intel Corporation</vendor>
</capability>
</device>
<device>
<name>pci_8086_2938</name>
<parent>computer</parent>
<driver>
<name>uhci_hcd</name>
</driver>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>26</slot>
<function>1</function>
<product id='0x2938'>82801I (ICH9 Family) USB UHCI Controller
#5</product>
<vendor id='0x8086'>Intel Corporation</vendor>
</capability>
</device>
<device>
<name>pci_8086_2939</name>
<parent>computer</parent>
<driver>
<name>uhci_hcd</name>
</driver>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>26</slot>
<function>2</function>
<product id='0x2939'>82801I (ICH9 Family) USB UHCI Controller
#6</product>
<vendor id='0x8086'>Intel Corporation</vendor>
</capability>
</device>
<device>
<name>pci_8086_293a</name>
<parent>computer</parent>
<driver>
<name>ehci_hcd</name>
</driver>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>29</slot>
<function>7</function>
<product id='0x293a'>82801I (ICH9 Family) USB2 EHCI Controller
#1</product>
<vendor id='0x8086'>Intel Corporation</vendor>
</capability>
</device>
<device>
<name>pci_8086_293c</name>
<parent>computer</parent>
<driver>
<name>ehci_hcd</name>
</driver>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>26</slot>
<function>7</function>
<product id='0x293c'>82801I (ICH9 Family) USB2 EHCI Controller
#2</product>
<vendor id='0x8086'>Intel Corporation</vendor>
</capability>
</device>
<device>
<name>pci_8086_293e</name>
<parent>computer</parent>
<driver>
<name>HDA Intel</name>
</driver>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>27</slot>
<function>0</function>
<product id='0x293e'>82801I (ICH9 Family) HD Audio
Controller</product>
<vendor id='0x8086'>Intel Corporation</vendor>
</capability>
</device>
<device>
<name>pci_8086_29c0</name>
<parent>computer</parent>
<driver>
<name>agpgart-intel</name>
</driver>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>0</slot>
<function>0</function>
<product id='0x29c0'>82G33/G31/P35/P31 Express DRAM
Controller</product>
<vendor id='0x8086'>Intel Corporation</vendor>
</capability>
</device>
<device>
<name>pci_8086_29c2</name>
<parent>computer</parent>
<driver>
<name>i915</name>
</driver>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>2</slot>
<function>0</function>
<product id='0x29c2'>82G33/G31 Express Integrated Graphics
Controller</product>
<vendor id='0x8086'>Intel Corporation</vendor>
</capability>
</device>
<device>
<name>pci_8086_29c4</name>
<parent>computer</parent>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>3</slot>
<function>0</function>
<product id='0x29c4'>82G33/G31/P35/P31 Express MEI
Controller</product>
<vendor id='0x8086'>Intel Corporation</vendor>
</capability>
</device>
<device>
<name>pci_8086_29c6</name>
<parent>computer</parent>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>3</slot>
<function>2</function>
<product id='0x29c6'>82G33/G31/P35/P31 Express PT IDER
Controller</product>
<vendor id='0x8086'>Intel Corporation</vendor>
</capability>
</device>
<device>
<name>pci_8086_29c7</name>
<parent>computer</parent>
<driver>
<name>serial</name>
</driver>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>3</slot>
<function>3</function>
<product id='0x29c7'>82G33/G31/P35/P31 Express Serial KT
Controller</product>
<vendor id='0x8086'>Intel Corporation</vendor>
</capability>
</device>
<device>
<name>platform_floppy_0_storage_platform_floppy</name>
<parent>platform_floppy_0</parent>
<capability type='storage'>
<block>/dev/fd0</block>
<bus>platform</bus>
<drive_type>floppy</drive_type>
<vendor>PC Floppy Drive</vendor>
<capability type='removable'>
<media_available>0</media_available>
<media_size>0</media_size>
<logical_block_size>0</logical_block_size>
<num_blocks>0</num_blocks>
</capability>
</capability>
</device>
<device>
<name>storage_model_DVDRW_LH_20A1S</name>
<parent>pci_8086_2920_scsi_host_0_scsi_device_lun0</parent>
<capability type='storage'>
<block>/dev/sr0</block>
<bus>pci</bus>
<drive_type>cdrom</drive_type>
<model>DVDRW LH-20A1S</model>
<vendor>LITE-ON</vendor>
<capability type='removable'>
<media_available>0</media_available>
<media_size>0</media_size>
<logical_block_size>0</logical_block_size>
<num_blocks>0</num_blocks>
</capability>
</capability>
</device>
<device>
<name>storage_serial_SATA_ST3320620AS_9QF5E3AP</name>
<parent>pci_8086_2920_scsi_host_scsi_device_lun0</parent>
<capability type='storage'>
<block>/dev/sda</block>
<bus>pci</bus>
<drive_type>disk</drive_type>
<model>ST3320620AS</model>
<vendor>ATA</vendor>
<serial>SATA_ST3320620AS_9QF5E3AP</serial>
<size>320072933376</size>
<logical_block_size>0</logical_block_size>
<num_blocks>0</num_blocks>
</capability>
</device>
<device>
<name>usb_device_1d6b_1_0000_00_1a_0</name>
<parent>pci_8086_2937</parent>
<driver>
<name>usb</name>
</driver>
<capability type='usb_device'>
<bus>3</bus>
<device>1</device>
<product id='0x0001'>1.1 root hub</product>
<vendor id='0x1d6b'>Linux Foundation</vendor>
</capability>
</device>
<device>
<name>usb_device_1d6b_1_0000_00_1a_0_if0</name>
<parent>usb_device_1d6b_1_0000_00_1a_0</parent>
<driver>
<name>hub</name>
</driver>
<capability type='usb'>
<number>0</number>
<class>9</class>
<subclass>0</subclass>
<protocol>0</protocol>
</capability>
</device>
<device>
<name>usb_device_1d6b_1_0000_00_1a_1</name>
<parent>pci_8086_2938</parent>
<driver>
<name>usb</name>
</driver>
<capability type='usb_device'>
<bus>4</bus>
<device>1</device>
<product id='0x0001'>1.1 root hub</product>
<vendor id='0x1d6b'>Linux Foundation</vendor>
</capability>
</device>
<device>
<name>usb_device_1d6b_1_0000_00_1a_1_if0</name>
<parent>usb_device_1d6b_1_0000_00_1a_1</parent>
<driver>
<name>hub</name>
</driver>
<capability type='usb'>
<number>0</number>
<class>9</class>
<subclass>0</subclass>
<protocol>0</protocol>
</capability>
</device>
<device>
<name>usb_device_1d6b_1_0000_00_1a_2</name>
<parent>pci_8086_2939</parent>
<driver>
<name>usb</name>
</driver>
<capability type='usb_device'>
<bus>5</bus>
<device>1</device>
<product id='0x0001'>1.1 root hub</product>
<vendor id='0x1d6b'>Linux Foundation</vendor>
</capability>
</device>
<device>
<name>usb_device_1d6b_1_0000_00_1a_2_if0</name>
<parent>usb_device_1d6b_1_0000_00_1a_2</parent>
<driver>
<name>hub</name>
</driver>
<capability type='usb'>
<number>0</number>
<class>9</class>
<subclass>0</subclass>
<protocol>0</protocol>
</capability>
</device>
<device>
<name>usb_device_1d6b_1_0000_00_1d_0</name>
<parent>pci_8086_2934</parent>
<driver>
<name>usb</name>
</driver>
<capability type='usb_device'>
<bus>6</bus>
<device>1</device>
<product id='0x0001'>1.1 root hub</product>
<vendor id='0x1d6b'>Linux Foundation</vendor>
</capability>
</device>
<device>
<name>usb_device_1d6b_1_0000_00_1d_0_if0</name>
<parent>usb_device_1d6b_1_0000_00_1d_0</parent>
<driver>
<name>hub</name>
</driver>
<capability type='usb'>
<number>0</number>
<class>9</class>
<subclass>0</subclass>
<protocol>0</protocol>
</capability>
</device>
<device>
<name>usb_device_1d6b_1_0000_00_1d_1</name>
<parent>pci_8086_2935</parent>
<driver>
<name>usb</name>
</driver>
<capability type='usb_device'>
<bus>7</bus>
<device>1</device>
<product id='0x0001'>1.1 root hub</product>
<vendor id='0x1d6b'>Linux Foundation</vendor>
</capability>
</device>
<device>
<name>usb_device_1d6b_1_0000_00_1d_1_if0</name>
<parent>usb_device_1d6b_1_0000_00_1d_1</parent>
<driver>
<name>hub</name>
</driver>
<capability type='usb'>
<number>0</number>
<class>9</class>
<subclass>0</subclass>
<protocol>0</protocol>
</capability>
</device>
<device>
<name>usb_device_1d6b_1_0000_00_1d_2</name>
<parent>pci_8086_2936</parent>
<driver>
<name>usb</name>
</driver>
<capability type='usb_device'>
<bus>8</bus>
<device>1</device>
<product id='0x0001'>1.1 root hub</product>
<vendor id='0x1d6b'>Linux Foundation</vendor>
</capability>
</device>
<device>
<name>usb_device_1d6b_1_0000_00_1d_2_if0</name>
<parent>usb_device_1d6b_1_0000_00_1d_2</parent>
<driver>
<name>hub</name>
</driver>
<capability type='usb'>
<number>0</number>
<class>9</class>
<subclass>0</subclass>
<protocol>0</protocol>
</capability>
</device>
<device>
<name>usb_device_1d6b_2_0000_00_1a_7</name>
<parent>pci_8086_293c</parent>
<driver>
<name>usb</name>
</driver>
<capability type='usb_device'>
<bus>1</bus>
<device>1</device>
<product id='0x0002'>2.0 root hub</product>
<vendor id='0x1d6b'>Linux Foundation</vendor>
</capability>
</device>
<device>
<name>usb_device_1d6b_2_0000_00_1a_7_if0</name>
<parent>usb_device_1d6b_2_0000_00_1a_7</parent>
<driver>
<name>hub</name>
</driver>
<capability type='usb'>
<number>0</number>
<class>9</class>
<subclass>0</subclass>
<protocol>0</protocol>
</capability>
</device>
<device>
<name>usb_device_1d6b_2_0000_00_1d_7</name>
<parent>pci_8086_293a</parent>
<driver>
<name>usb</name>
</driver>
<capability type='usb_device'>
<bus>2</bus>
<device>1</device>
<product id='0x0002'>2.0 root hub</product>
<vendor id='0x1d6b'>Linux Foundation</vendor>
</capability>
</device>
<device>
<name>usb_device_1d6b_2_0000_00_1d_7_if0</name>
<parent>usb_device_1d6b_2_0000_00_1d_7</parent>
<driver>
<name>hub</name>
</driver>
<capability type='usb'>
<number>0</number>
<class>9</class>
<subclass>0</subclass>
<protocol>0</protocol>
</capability>
</device>
/sys/devices/pci0000:00/0000:00:00.0
/sys/devices/pci0000:00/0000:00:02.0
/sys/devices/pci0000:00/0000:00:03.0
/sys/devices/pci0000:00/0000:00:03.2
/sys/devices/pci0000:00/0000:00:03.3
/sys/devices/pci0000:00/0000:00:19.0
/sys/devices/pci0000:00/0000:00:19.0/net/eth0
/sys/devices/pci0000:00/0000:00:1a.0/usb3
/sys/devices/pci0000:00/0000:00:1a.0/usb3/3-0:1.0
/sys/devices/pci0000:00/0000:00:1a.1/usb4
/sys/devices/pci0000:00/0000:00:1a.1/usb4/4-0:1.0
/sys/devices/pci0000:00/0000:00:1a.2/usb5
/sys/devices/pci0000:00/0000:00:1a.2/usb5/5-0:1.0
/sys/devices/pci0000:00/0000:00:1a.7/usb1
/sys/devices/pci0000:00/0000:00:1a.7/usb1/1-0:1.0
/sys/devices/pci0000:00/0000:00:1b.0
/sys/devices/pci0000:00/0000:00:1d.0/usb6
/sys/devices/pci0000:00/0000:00:1d.0/usb6/6-0:1.0
/sys/devices/pci0000:00/0000:00:1d.1/usb7
/sys/devices/pci0000:00/0000:00:1d.1/usb7/7-0:1.0
/sys/devices/pci0000:00/0000:00:1d.2/usb8
/sys/devices/pci0000:00/0000:00:1d.2/usb8/8-0:1.0
/sys/devices/pci0000:00/0000:00:1d.7/usb2
/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-0:1.0
/sys/devices/pci0000:00/0000:00:1e.0
/sys/devices/pci0000:00/0000:00:1f.0
/sys/devices/pci0000:00/0000:00:1f.2/host0
/sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0
/sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda
/sys/devices/pci0000:00/0000:00:1f.2/host1
/sys/devices/pci0000:00/0000:00:1f.2/host1/target1:0:0/1:0:0:0
/sys/devices/pci0000:00/0000:00:1f.2/host1/target1:0:0/1:0:0:0/block/sr0
/sys/devices/pci0000:00/0000:00:1f.5
/sys/devices/pci0000:00/0000:00:1f.5/host2
/sys/devices/pci0000:00/0000:00:1f.5/host3
/sys/devices/virtual/net/lo
/sys/devices/virtual/net/ovirtbr0
/sys/devices/virtual/net/virbr0
computer
<device>
<name>/sys/devices/pci0000:00/0000:00:00.0</name>
<parent>/sys/devices/pci0000:00</parent>
<driver>
<name>agpgart-intel</name>
</driver>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>0</slot>
<function>0</function>
<product id='0x0000' />
<vendor id='0x8086' />
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:02.0</name>
<parent>/sys/devices/pci0000:00</parent>
<driver>
<name>i915</name>
</driver>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>2</slot>
<function>0</function>
<product id='0x0000' />
<vendor id='0x8086' />
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:03.0</name>
<parent>/sys/devices/pci0000:00</parent>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>3</slot>
<function>0</function>
<product id='0x0000' />
<vendor id='0x8086' />
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:03.2</name>
<parent>/sys/devices/pci0000:00</parent>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>3</slot>
<function>2</function>
<product id='0x0000' />
<vendor id='0x8086' />
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:03.3</name>
<parent>/sys/devices/pci0000:00</parent>
<driver>
<name>serial</name>
</driver>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>3</slot>
<function>3</function>
<product id='0x0000' />
<vendor id='0x8086' />
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:19.0</name>
<parent>/sys/devices/pci0000:00</parent>
<driver>
<name>e1000e</name>
</driver>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>25</slot>
<function>0</function>
<product id='0x0000' />
<vendor id='0x8086' />
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:19.0/net/eth0</name>
<parent>/sys/devices/pci0000:00/0000:00:19.0</parent>
<capability type='net'>
<interface>eth0</interface>
<address>00:13:20:f5:fa:e3</address>
<capability type='80203'/>
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:1a.0/usb3</name>
<parent>/sys/devices/pci0000:00/0000:00:1a.0</parent>
<driver>
<name>usb</name>
</driver>
<capability type='usb_device'>
<bus>3</bus>
<device>1</device>
<product id='0x0001'>UHCI_Host_Controller</product>
<vendor
id='0x1d6b'>Linux_2.6.30.8-64.fc11.x86_64_uhci_hcd</vendor>
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:1a.0/usb3/3-0:1.0</name>
<parent>/sys/devices/pci0000:00/0000:00:1a.0/usb3</parent>
<driver>
<name>hub</name>
</driver>
<capability type='usb'>
<number>0</number>
<class>9</class>
<subclass>0</subclass>
<protocol>0</protocol>
<interface_name>9/0/0</interface_name>
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:1a.1/usb4</name>
<parent>/sys/devices/pci0000:00/0000:00:1a.1</parent>
<driver>
<name>usb</name>
</driver>
<capability type='usb_device'>
<bus>4</bus>
<device>1</device>
<product id='0x0001'>UHCI_Host_Controller</product>
<vendor
id='0x1d6b'>Linux_2.6.30.8-64.fc11.x86_64_uhci_hcd</vendor>
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:1a.1/usb4/4-0:1.0</name>
<parent>/sys/devices/pci0000:00/0000:00:1a.1/usb4</parent>
<driver>
<name>hub</name>
</driver>
<capability type='usb'>
<number>0</number>
<class>9</class>
<subclass>0</subclass>
<protocol>0</protocol>
<interface_name>9/0/0</interface_name>
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:1a.2/usb5</name>
<parent>/sys/devices/pci0000:00/0000:00:1a.2</parent>
<driver>
<name>usb</name>
</driver>
<capability type='usb_device'>
<bus>5</bus>
<device>1</device>
<product id='0x0001'>UHCI_Host_Controller</product>
<vendor
id='0x1d6b'>Linux_2.6.30.8-64.fc11.x86_64_uhci_hcd</vendor>
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:1a.2/usb5/5-0:1.0</name>
<parent>/sys/devices/pci0000:00/0000:00:1a.2/usb5</parent>
<driver>
<name>hub</name>
</driver>
<capability type='usb'>
<number>0</number>
<class>9</class>
<subclass>0</subclass>
<protocol>0</protocol>
<interface_name>9/0/0</interface_name>
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:1a.7/usb1</name>
<parent>/sys/devices/pci0000:00/0000:00:1a.7</parent>
<driver>
<name>usb</name>
</driver>
<capability type='usb_device'>
<bus>1</bus>
<device>1</device>
<product id='0x0002'>EHCI_Host_Controller</product>
<vendor
id='0x1d6b'>Linux_2.6.30.8-64.fc11.x86_64_ehci_hcd</vendor>
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:1a.7/usb1/1-0:1.0</name>
<parent>/sys/devices/pci0000:00/0000:00:1a.7/usb1</parent>
<driver>
<name>hub</name>
</driver>
<capability type='usb'>
<number>0</number>
<class>9</class>
<subclass>0</subclass>
<protocol>0</protocol>
<interface_name>9/0/0</interface_name>
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:1b.0</name>
<parent>/sys/devices/pci0000:00</parent>
<driver>
<name>HDA Intel</name>
</driver>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>27</slot>
<function>0</function>
<product id='0x0000' />
<vendor id='0x8086' />
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:1d.0/usb6</name>
<parent>/sys/devices/pci0000:00/0000:00:1d.0</parent>
<driver>
<name>usb</name>
</driver>
<capability type='usb_device'>
<bus>6</bus>
<device>1</device>
<product id='0x0001'>UHCI_Host_Controller</product>
<vendor
id='0x1d6b'>Linux_2.6.30.8-64.fc11.x86_64_uhci_hcd</vendor>
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:1d.0/usb6/6-0:1.0</name>
<parent>/sys/devices/pci0000:00/0000:00:1d.0/usb6</parent>
<driver>
<name>hub</name>
</driver>
<capability type='usb'>
<number>0</number>
<class>9</class>
<subclass>0</subclass>
<protocol>0</protocol>
<interface_name>9/0/0</interface_name>
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:1d.1/usb7</name>
<parent>/sys/devices/pci0000:00/0000:00:1d.1</parent>
<driver>
<name>usb</name>
</driver>
<capability type='usb_device'>
<bus>7</bus>
<device>1</device>
<product id='0x0001'>UHCI_Host_Controller</product>
<vendor
id='0x1d6b'>Linux_2.6.30.8-64.fc11.x86_64_uhci_hcd</vendor>
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:1d.1/usb7/7-0:1.0</name>
<parent>/sys/devices/pci0000:00/0000:00:1d.1/usb7</parent>
<driver>
<name>hub</name>
</driver>
<capability type='usb'>
<number>0</number>
<class>9</class>
<subclass>0</subclass>
<protocol>0</protocol>
<interface_name>9/0/0</interface_name>
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:1d.2/usb8</name>
<parent>/sys/devices/pci0000:00/0000:00:1d.2</parent>
<driver>
<name>usb</name>
</driver>
<capability type='usb_device'>
<bus>0</bus>
<device>0</device>
<product id='0x0000' />
<vendor id='0x0000' />
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:1d.2/usb8/8-0:1.0</name>
<parent>/sys/devices/pci0000:00/0000:00:1d.2/usb8</parent>
<driver>
<name>hub</name>
</driver>
<capability type='usb'>
<number>0</number>
<class>9</class>
<subclass>0</subclass>
<protocol>0</protocol>
<interface_name>9/0/0</interface_name>
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:1d.7/usb2</name>
<parent>/sys/devices/pci0000:00/0000:00:1d.7</parent>
<driver>
<name>usb</name>
</driver>
<capability type='usb_device'>
<bus>2</bus>
<device>1</device>
<product id='0x0002'>EHCI_Host_Controller</product>
<vendor
id='0x1d6b'>Linux_2.6.30.8-64.fc11.x86_64_ehci_hcd</vendor>
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-0:1.0</name>
<parent>/sys/devices/pci0000:00/0000:00:1d.7/usb2</parent>
<driver>
<name>hub</name>
</driver>
<capability type='usb'>
<number>0</number>
<class>9</class>
<subclass>0</subclass>
<protocol>0</protocol>
<interface_name>9/0/0</interface_name>
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:1e.0</name>
<parent>/sys/devices/pci0000:00</parent>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>30</slot>
<function>0</function>
<product id='0x0000' />
<vendor id='0x8086' />
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:1f.0</name>
<parent>/sys/devices/pci0000:00</parent>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>31</slot>
<function>0</function>
<product id='0x0000' />
<vendor id='0x8086' />
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:1f.2/host0</name>
<parent>/sys/devices/pci0000:00/0000:00:1f.2</parent>
<capability type='scsi_host'>
<host>0</host>
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0</name>
<parent>/sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0</parent>
<driver>
<name>sd</name>
</driver>
<capability type='scsi'>
<host>0</host>
<bus>0</bus>
<target>0</target>
<lun>0</lun>
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda</name>
<parent>/sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0</parent>
<capability type='storage'>
<block>/dev/sda</block>
<bus>scsi</bus>
<drive_type>disk</drive_type>
<model>ST3320620AS</model>
<vendor>ATA</vendor>
<serial>SATA_ST3320620AS_9QF5E3AP</serial>
<size>0</size>
<logical_block_size>0</logical_block_size>
<num_blocks>625142448</num_blocks>
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:1f.2/host1</name>
<parent>/sys/devices/pci0000:00/0000:00:1f.2</parent>
<capability type='scsi_host'>
<host>1</host>
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:1f.2/host1/target1:0:0/1:0:0:0</name>
<parent>/sys/devices/pci0000:00/0000:00:1f.2/host1/target1:0:0</parent>
<driver>
<name>sr</name>
</driver>
<capability type='scsi'>
<host>1</host>
<bus>0</bus>
<target>0</target>
<lun>0</lun>
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:1f.2/host1/target1:0:0/1:0:0:0/block/sr0</name>
<parent>/sys/devices/pci0000:00/0000:00:1f.2/host1/target1:0:0/1:0:0:0</parent>
<capability type='storage'>
<block>/dev/sr0</block>
<bus>scsi</bus>
<drive_type>cd</drive_type>
<model>DVDRW LH-20A1S</model>
<vendor>LITE-ON</vendor>
<capability type='removable'>
<media_available>0</media_available>
<media_size>0</media_size>
<logical_block_size>0</logical_block_size>
<num_blocks>0</num_blocks>
</capability>
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:1f.5</name>
<parent>/sys/devices/pci0000:00</parent>
<driver>
<name>ata_piix</name>
</driver>
<capability type='pci'>
<domain>0</domain>
<bus>0</bus>
<slot>31</slot>
<function>5</function>
<product id='0x0000' />
<vendor id='0x8086' />
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:1f.5/host2</name>
<parent>/sys/devices/pci0000:00/0000:00:1f.5</parent>
<capability type='scsi_host'>
<host>2</host>
</capability>
</device>
<device>
<name>/sys/devices/pci0000:00/0000:00:1f.5/host3</name>
<parent>/sys/devices/pci0000:00/0000:00:1f.5</parent>
<capability type='scsi_host'>
<host>3</host>
</capability>
</device>
<device>
<name>/sys/devices/virtual/net/lo</name>
<capability type='net'>
<interface>lo</interface>
<address>00:00:00:00:00:00</address>
<capability type='80203'/>
</capability>
</device>
<device>
<name>/sys/devices/virtual/net/ovirtbr0</name>
<capability type='net'>
<interface>ovirtbr0</interface>
<address>00:13:20:f5:fa:e3</address>
<capability type='80203'/>
</capability>
</device>
<device>
<name>/sys/devices/virtual/net/virbr0</name>
<capability type='net'>
<interface>virbr0</interface>
<address>1e:85:27:2d:a9:b0</address>
<capability type='80203'/>
</capability>
</device>
<device>
<name>computer</name>
<capability type='system'>
<product>To Be Filled By O.E.M.</product>
<dmi_devpath>/sys/devices/virtual/dmi/id</dmi_devpath>
<description>fictional device to root the node device tree</description>
<hardware>
<vendor>To Be Filled By O.E.M.</vendor>
<version>To Be Filled By O.E.M.</version>
<serial>To Be Filled By O.E.M.</serial>
<uuid>35363738-393a-3b3c-3d3e-3f4041424344</uuid>
</hardware>
<firmware>
<vendor>American Megatrends Inc.</vendor>
<version>SDBLI944.86P</version>
<release_date>05/08/2007</release_date>
</firmware>
</capability>
</device>