[libvirt] [PATCH 4/6] nodedev_hal: Enumerate scsi generic device

Osier Yang jyang at redhat.com
Mon Jun 3 10:05:33 UTC 2013


The xml outputed by HAL backend for scsi generic device:

<device>
  <name>pci_8086_2922_scsi_host_scsi_device_lun0_scsi_generic</name>
  <path>/sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/scsi_generic/sg0</path>
  <parent>pci_8086_2922_scsi_host_scsi_device_lun0</parent>
  <capability type='scsi_generic'>
    <char>/dev/sg0</char>
  </capability>
</device>
---
 src/node_device/node_device_hal.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/node_device/node_device_hal.c b/src/node_device/node_device_hal.c
index 99b5044..794f923 100644
--- a/src/node_device/node_device_hal.c
+++ b/src/node_device/node_device_hal.c
@@ -303,6 +303,14 @@ gather_storage_cap(LibHalContext *ctx, const char *udi,
     return 0;
 }
 
+static int
+gather_scsi_generic_cap(LibHalContext *ctx, const char *udi,
+                        union _virNodeDevCapData *d)
+{
+    (void)get_str_prop(ctx, udi, "scsi_generic.device", &d->sg.path);
+    return 0;
+}
+
 
 static int
 gather_system_cap(LibHalContext *ctx, const char *udi,
@@ -350,6 +358,7 @@ static caps_tbl_entry caps_tbl[] = {
     { "scsi_host",  VIR_NODE_DEV_CAP_SCSI_HOST,     gather_scsi_host_cap },
     { "scsi",       VIR_NODE_DEV_CAP_SCSI,          gather_scsi_cap },
     { "storage",    VIR_NODE_DEV_CAP_STORAGE,       gather_storage_cap },
+    { "scsi_generic", VIR_NODE_DEV_CAP_SCSI_GENERIC, gather_scsi_generic_cap },
 };
 
 
-- 
1.8.1.4




More information about the libvir-list mailing list