virObjectLockable parent;
virNodeDeviceDefPtr def; /* device definition */
+ bool skipUpdateCaps; /* whether to skip checking host caps,
+ used by testdriver */
};
struct _virNodeDeviceObjList {
unsigned int flags)
{
/* Refresh the capabilities first, e.g. due to a driver change */
- if (virNodeDeviceUpdateCaps(obj->def) < 0)
+ if (!obj->skipUpdateCaps &&
+ virNodeDeviceUpdateCaps(obj->def) < 0)
return false;
/* filter by cap type */
virObjectListFree(data.devices);
return -1;
}
+
+
+void
+virNodeDeviceObjSetSkipUpdateCaps(virNodeDeviceObjPtr obj,
+ bool skipUpdateCaps)
+{
+ obj->skipUpdateCaps = skipUpdateCaps;
+}
virNodeDeviceObjListFilter filter,
unsigned int flags);
+void
+virNodeDeviceObjSetSkipUpdateCaps(virNodeDeviceObjPtr obj,
+ bool skipUpdateCaps);
+
#endif /* __VIRNODEDEVICEOBJ_H__ */
goto error;
}
+ virNodeDeviceObjSetSkipUpdateCaps(obj, true);
virNodeDeviceObjEndAPI(&obj);
}
if (!(obj = virNodeDeviceObjListAssignDef(driver->devs, def)))
goto cleanup;
+ virNodeDeviceObjSetSkipUpdateCaps(obj, true);
def = NULL;
objdef = virNodeDeviceObjGetDef(obj);