From: Osier Yang Date: Wed, 5 Sep 2012 05:34:10 +0000 (+0800) Subject: list: Implement listAllNodeDevices X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=c68cd62adb83c74bdd54431d3988400b506aaf3a;p=people%2Fliuw%2Flibxenctrl-split%2Flibvirt.git list: Implement listAllNodeDevices This simply implements listAllNodeDevices using helper virNodeDeviceList src/node_device/node_device_driver.h: * Declare nodeListAllNodeDevices. src/node_device/node_device_driver.c: * Implement nodeListAllNodeDevices. src/node_device/node_device_hal.c: * Hook listAllNodeDevices to nodeListAllNodeDevices. src/node_device/node_device_udev.c * Hook listAllNodeDevices to nodeListAllNodeDevices. --- diff --git a/src/node_device/node_device_driver.c b/src/node_device/node_device_driver.c index d44924c13..4c6270787 100644 --- a/src/node_device/node_device_driver.c +++ b/src/node_device/node_device_driver.c @@ -183,6 +183,21 @@ nodeListDevices(virConnectPtr conn, return -1; } +int +nodeListAllNodeDevices(virConnectPtr conn, + virNodeDevicePtr **devices, + unsigned int flags) +{ + virDeviceMonitorStatePtr driver = conn->devMonPrivateData; + int ret = -1; + + virCheckFlags(VIR_CONNECT_LIST_NODE_DEVICES_FILTERS_CAP, -1); + + nodeDeviceLock(driver); + ret = virNodeDeviceList(conn, driver->devs, devices, flags); + nodeDeviceUnlock(driver); + return ret; +} virNodeDevicePtr nodeDeviceLookupByName(virConnectPtr conn, const char *name) diff --git a/src/node_device/node_device_driver.h b/src/node_device/node_device_driver.h index 6f680a5d8..b34e1af22 100644 --- a/src/node_device/node_device_driver.h +++ b/src/node_device/node_device_driver.h @@ -73,6 +73,9 @@ int read_wwn_linux(int host, const char *file, char **wwn); int nodeNumOfDevices(virConnectPtr conn, const char *cap, unsigned int flags); int nodeListDevices(virConnectPtr conn, const char *cap, char **const names, int maxnames, unsigned int flags); +int nodeListAllNodeDevices(virConnectPtr conn, + virNodeDevicePtr **devices, + unsigned int flags); virNodeDevicePtr nodeDeviceLookupByName(virConnectPtr conn, const char *name); char *nodeDeviceGetXMLDesc(virNodeDevicePtr dev, unsigned int flags); char *nodeDeviceGetParent(virNodeDevicePtr dev); diff --git a/src/node_device/node_device_hal.c b/src/node_device/node_device_hal.c index 9d63a2943..273b114bd 100644 --- a/src/node_device/node_device_hal.c +++ b/src/node_device/node_device_hal.c @@ -770,6 +770,7 @@ static virDeviceMonitor halDeviceMonitor = { .close = halNodeDrvClose, /* 0.5.0 */ .numOfDevices = nodeNumOfDevices, /* 0.5.0 */ .listDevices = nodeListDevices, /* 0.5.0 */ + .listAllNodeDevices = nodeListAllNodeDevices, /* 0.10.2 */ .deviceLookupByName = nodeDeviceLookupByName, /* 0.5.0 */ .deviceGetXMLDesc = nodeDeviceGetXMLDesc, /* 0.5.0 */ .deviceGetParent = nodeDeviceGetParent, /* 0.5.0 */ diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c index 265cbd4a2..f41910197 100644 --- a/src/node_device/node_device_udev.c +++ b/src/node_device/node_device_udev.c @@ -1757,6 +1757,7 @@ static virDeviceMonitor udevDeviceMonitor = { .close = udevNodeDrvClose, /* 0.7.3 */ .numOfDevices = nodeNumOfDevices, /* 0.7.3 */ .listDevices = nodeListDevices, /* 0.7.3 */ + .listAllNodeDevices = nodeListAllNodeDevices, /* 0.10.2 */ .deviceLookupByName = nodeDeviceLookupByName, /* 0.7.3 */ .deviceGetXMLDesc = nodeDeviceGetXMLDesc, /* 0.7.3 */ .deviceGetParent = nodeDeviceGetParent, /* 0.7.3 */