* udev_device_get_devnum:
* @udev_device: udev device
*
- * Returns: the device major/minor number.
+ * Get the device major/minor number.
+ *
+ * Returns: the dev_t number.
**/
_public_ dev_t udev_device_get_devnum(struct udev_device *udev_device)
{
* udev_device_get_driver:
* @udev_device: udev device
*
- * Returns: the driver string, or #NULL if there is no driver attached.
+ * Get the kernel driver name.
+ *
+ * Returns: the driver name string, or #NULL if there is no driver attached.
**/
_public_ const char *udev_device_get_driver(struct udev_device *udev_device)
{
* @udev_device: udev device
* @key: property name
*
- * Returns: the value of a device property, or #NULL if there is no such property.
+ * Get the value of a given property.
+ *
+ * Returns: the property string, or #NULL if there is no such property.
**/
_public_ const char *udev_device_get_property_value(struct udev_device *udev_device, const char *key)
{
f = fopen(dbfile, "re");
if (f == NULL) {
- dbg(udev_device->udev, "no db file to read %s: %m\n", dbfile);
+ udev_dbg(udev_device->udev, "no db file to read %s: %m\n", dbfile);
return -1;
}
udev_device->is_initialized = true;
}
fclose(f);
- dbg(udev_device->udev, "device %p filled with db file data\n", udev_device);
+ udev_dbg(udev_device->udev, "device %p filled with db file data\n", udev_device);
return 0;
}
/* path starts in sys */
if (!startswith(syspath, TEST_PREFIX "/sys")) {
- dbg(udev, "not in sys :%s\n", syspath);
+ udev_dbg(udev, "not in sys :%s\n", syspath);
return NULL;
}
return NULL;
udev_device_set_syspath(udev_device, path);
- dbg(udev, "device %p has devpath '%s'\n", udev_device, udev_device_get_devpath(udev_device));
+ udev_dbg(udev, "device %p has devpath '%s'\n", udev_device, udev_device_get_devpath(udev_device));
return udev_device;
}
udev_device_add_property_from_string_parse(udev_device, environ[i]);
if (udev_device_add_property_from_string_parse_finish(udev_device) < 0) {
- dbg(udev, "missing values, invalid device\n");
+ udev_dbg(udev, "missing values, invalid device\n");
udev_device_unref(udev_device);
udev_device = NULL;
}
* Drop a reference of a udev device. If the refcount reaches zero,
* the resources of the device will be released.
*
+ * Returns: the passed udev device if it has still an active reference, or #NULL otherwise.
**/
-_public_ void udev_device_unref(struct udev_device *udev_device)
+_public_ struct udev_device *udev_device_unref(struct udev_device *udev_device)
{
if (udev_device == NULL)
- return;
+ return NULL;
udev_device->refcount--;
if (udev_device->refcount > 0)
- return;
+ return udev_device;
if (udev_device->parent_device != NULL)
udev_device_unref(udev_device->parent_device);
free(udev_device->syspath);
free(udev_device->envp);
free(udev_device->monitor_buf);
free(udev_device);
+ return NULL;
}
/**
* udev_device_get_sysname:
* @udev_device: udev device
*
- * Returns: the sys name of the device device
+ * Get the kernel device name in /sys.
+ *
+ * Returns: the name string of the device device
**/
_public_ const char *udev_device_get_sysname(struct udev_device *udev_device)
{
* udev_device_get_sysnum:
* @udev_device: udev device
*
- * Returns: the trailing number of of the device name
+ * Get the instance number of the device.
+ *
+ * Returns: the trailing number string of of the device name
**/
_public_ const char *udev_device_get_sysnum(struct udev_device *udev_device)
{
return udev_list_get_entry(&udev_device->tags_list);
}
+/**
+ * udev_device_has_tag:
+ * @udev_device: udev device
+ * @tag: tag name
+ *
+ * Check if a given device has a certain tag associated.
+ *
+ * Returns: 1 if the tag is found. 0 otherwise.
+ **/
_public_ int udev_device_has_tag(struct udev_device *udev_device, const char *tag)
{
struct udev_list_entry *list_entry;