sr_err("No dev_list in driver %d ('%s').", i, d);
errors++;
}
- if (!drivers[i]->dev_clear) {
- sr_err("No dev_clear in driver %d ('%s').", i, d);
- errors++;
- }
/* Note: config_get() is optional. */
if (!drivers[i]->config_set) {
sr_err("No config_set in driver %d ('%s').", i, d);
}
/**
- * Clear all devices/instances of the specified driver.
+ * Clear the list of device instances a driver knows about.
*
- * @param driver The driver to use. Must not be NULL.
+ * @param driver The driver to use. This must be a pointer to one of
+ * the entries returned by sr_driver_list(). Must not be NULL.
*
- * @return SR_OK upon success, a negative error code upon errors.
+ * @retval SR_OK Success
+ * @retval SR_ERR_ARG Invalid driver
*
* @since 0.2.0
*/
SR_API int sr_dev_clear(const struct sr_dev_driver *driver)
{
- if (driver && driver->dev_clear)
- return driver->dev_clear();
+ int ret;
+
+ if (!driver) {
+ sr_err("Invalid driver.");
+ return SR_ERR_ARG;
+ }
+
+ if (driver->dev_clear)
+ ret = driver->dev_clear();
else
- return SR_OK;
+ ret = std_dev_clear(driver, NULL);
+
+ return ret;
}
/**