chiark / gitweb /
[PATCH] switch major/minor to dev_t
[elogind.git] / udev_sysfs.c
index fd7330a161760b00443d811762a05bc784de369f..f0666509eaca5b87614d4124eb5a5e0d014ff4c5 100644 (file)
@@ -59,6 +59,23 @@ static const struct subsystem_file {
        { NULL, NULL }
 };
 
+dev_t get_devt(struct sysfs_class_device *class_dev)
+{
+       struct sysfs_attribute *attr = NULL;
+       unsigned int major, minor;
+
+       attr = sysfs_get_classdev_attr(class_dev, "dev");
+       if (attr == NULL)
+               return 0;
+       dbg("dev='%s'", attr->value);
+
+       if (sscanf(attr->value, "%u:%u", &major, &minor) != 2)
+               return 0;
+       dbg("found major=%d, minor=%d", major, minor);
+
+       return makedev(major, minor);
+}
+
 int subsystem_expect_no_dev(const char *subsystem)
 {
        const struct subsystem_file *file;