diff --git a/src/node_device/node_device_driver.c b/src/node_device/node_device_driver.c index d44924c132..4c6270787d 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 6f680a5d81..b34e1af220 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 9d63a29436..273b114bd1 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 265cbd4a29..f419101976 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 */