X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=udev_sysfs.c;h=172f0ce1fdd4b3e95999c4f9f5c1ee0043c9bdd4;hp=983837980338e8de0a219b991063689188f08413;hb=6ecd4d1e364ea8104c83e36b82d1c23835fb104b;hpb=ea48d4d7fb856184b5caadf5436a48afe5ad113c diff --git a/udev_sysfs.c b/udev_sysfs.c index 983837980..172f0ce1f 100644 --- a/udev_sysfs.c +++ b/udev_sysfs.c @@ -306,6 +306,19 @@ device_link: return sysfs_device_get(parent_devpath); } +struct sysfs_device *sysfs_device_get_parent_with_subsystem(struct sysfs_device *dev, const char *subsystem) +{ + struct sysfs_device *dev_parent; + + dev_parent = sysfs_device_get_parent(dev); + while (dev_parent != NULL) { + if (strcmp(dev_parent->subsystem, subsystem) == 0) + return dev_parent; + dev_parent = sysfs_device_get_parent(dev_parent); + } + return NULL; +} + char *sysfs_attr_get_value(const char *devpath, const char *attr_name) { char path_full[PATH_SIZE];