X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=udev%2Flib%2Flibudev-device.c;h=8103c7fcc46448c5812a5a393afa8217c9b83d7f;hb=4c9dff47f696b1e6c89cc6e0a7ba683067927821;hp=76ef298a3420aec4b0f9fbb3ae4973c6b83aa02c;hpb=279595bd1af86db92b063ac8b70c7ef51c67363c;p=elogind.git
diff --git a/udev/lib/libudev-device.c b/udev/lib/libudev-device.c
index 76ef298a3..8103c7fcc 100644
--- a/udev/lib/libudev-device.c
+++ b/udev/lib/libudev-device.c
@@ -17,8 +17,6 @@
* along with this program. If not, see .
*/
-#include "config.h"
-
#include
#include
#include
@@ -218,6 +216,20 @@ struct udev_device *udev_device_new_from_syspath(struct udev *udev, const char *
return udev_device;
}
+struct udev_device *udev_device_new_from_devnum(struct udev *udev, char type, dev_t devnum)
+{
+ char path[UTIL_PATH_SIZE];
+
+ snprintf(path, sizeof(path), "%s/dev/%s/%u:%u",
+ udev_get_sys_path(udev),
+ type == 'b' ? "block" : "char",
+ major(devnum), minor(devnum));
+ if (util_resolve_sys_link(udev, path, sizeof(path)) < 0)
+ return NULL;
+
+ return udev_device_new_from_syspath(udev, path);
+}
+
static struct udev_device *device_new_from_parent(struct udev_device *udev_device)
{
struct udev_device *udev_device_parent = NULL;
@@ -363,7 +375,7 @@ const char *udev_device_get_sysname(struct udev_device *udev_device)
}
/**
- * udev_device_get_devname:
+ * udev_device_get_devnode:
* @udev_device: udev device
*
* Retrieve the device node file name belonging to the udev device.
@@ -371,7 +383,7 @@ const char *udev_device_get_sysname(struct udev_device *udev_device)
*
* Returns: the device node file name of the udev device, or #NULL if no device node exists
**/
-const char *udev_device_get_devname(struct udev_device *udev_device)
+const char *udev_device_get_devnode(struct udev_device *udev_device)
{
if (udev_device == NULL)
return NULL;