int nodeNumOfDevices(virConnectPtr conn, const char *cap, unsigned int flags) { int ndevs = 0; size_t i; if (virNodeNumOfDevicesEnsureACL(conn) < 0) return -1; virCheckFlags(0, -1); nodeDeviceLock(); for (i = 0; i < driver->devs.count; i++) { virNodeDeviceObjPtr obj = driver->devs.objs[i]; virNodeDeviceObjLock(obj); if (virNodeNumOfDevicesCheckACL(conn, obj->def) && ((cap == NULL) || virNodeDeviceHasCap(obj, cap))) ++ndevs; virNodeDeviceObjUnlock(obj); } nodeDeviceUnlock(); return ndevs; }
int nodeNumOfDevices(virConnectPtr conn, const char *cap, unsigned int flags) { int ndevs = 0; if (virNodeNumOfDevicesEnsureACL(conn) < 0) return -1; virCheckFlags(0, -1); nodeDeviceLock(); ndevs = virNodeDeviceObjNumOfDevices(&driver->devs, conn, cap, virNodeNumOfDevicesCheckACL); nodeDeviceUnlock(); return ndevs; }