#include "libudev.h"
#include "libudev-private.h"
+static int udev_device_set_devnode(struct udev_device *udev_device, const char *devnode);
+
/**
* SECTION:libudev-device
* @short_description: kernel sys devices
*
* Representation of kernel sys devices. Devices are uniquely identified
* by their syspath, every device has exactly one path in the kernel sys
- * filesystem. Devices usually belong to a kernel subsystem, and and have
+ * filesystem. Devices usually belong to a kernel subsystem, and have
* a unique name inside that subsystem.
*/
f = fopen(dbfile, "re");
if (f == NULL) {
udev_dbg(udev_device->udev, "no db file to read %s: %m\n", dbfile);
- return -1;
+ return -errno;
}
udev_device->is_initialized = true;
strscpyl(filename, sizeof(filename), udev_device->syspath, "/uevent", NULL);
f = fopen(filename, "re");
if (f == NULL)
- return -1;
+ return -errno;
udev_device->uevent_loaded = true;
while (fgets(line, sizeof(line), f)) {
* Find the next parent device, and fill in information from the sys
* device and the udev database entry.
*
- * The returned the device is not referenced. It is attached to the
- * child device, and will be cleaned up when the child device
- * is cleaned up.
+ * Returned device is not referenced. It is attached to the child
+ * device, and will be cleaned up when the child device is cleaned up.
*
* It is not necessarily just the upper level directory, empty or not
* recognized sys directories are ignored.
* If devtype is #NULL, only subsystem is checked, and any devtype will
* match.
*
- * The returned the device is not referenced. It is attached to the
- * child device, and will be cleaned up when the child device
- * is cleaned up.
+ * Returned device is not referenced. It is attached to the child
+ * device, and will be cleaned up when the child device is cleaned up.
*
* It can be called as many times as needed, without caring about
* references.
* 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.
+ * Returns: #NULL
**/
_public_ struct udev_device *udev_device_unref(struct udev_device *udev_device)
{
return NULL;
udev_device->refcount--;
if (udev_device->refcount > 0)
- return udev_device;
+ return NULL;
if (udev_device->parent_device != NULL)
udev_device_unref(udev_device->parent_device);
free(udev_device->syspath);
int num = 0;
if (udev_device == NULL)
- return -1;
+ return -EINVAL;
if (udev_device->sysattr_list_read)
return 0;
dir = opendir(udev_device_get_syspath(udev_device));
if (!dir)
- return -1;
+ return -errno;
for (dent = readdir(dir); dent != NULL; dent = readdir(dir)) {
char path[UTIL_PATH_SIZE];
return 0;
}
-int udev_device_set_devnode(struct udev_device *udev_device, const char *devnode)
+static int udev_device_set_devnode(struct udev_device *udev_device, const char *devnode)
{
free(udev_device->devnode);
if (devnode[0] != '/') {