X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=udev_sysfs.c;h=f0666509eaca5b87614d4124eb5a5e0d014ff4c5;hp=fd7330a161760b00443d811762a05bc784de369f;hb=7e720bd4ad8257d81d273d98294ebbcc03ade9ba;hpb=1cec1c241600fc11121f9504bc9e95836c03bd9c;ds=sidebyside diff --git a/udev_sysfs.c b/udev_sysfs.c index fd7330a16..f0666509e 100644 --- a/udev_sysfs.c +++ b/udev_sysfs.c @@ -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;