From: Yu Watanabe Date: Mon, 8 Jan 2024 16:12:20 +0000 (+0900) Subject: udev/builtin: introduce udev_builtin_import_property() helper function X-Git-Tag: v256-rc1~1212^2~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=50a0379d5d5fd19bfe0efa5a4e32cb9cd5f48724;p=thirdparty%2Fsystemd.git udev/builtin: introduce udev_builtin_import_property() helper function This is not used in this commit, but will be used later commits. --- diff --git a/src/udev/udev-builtin.c b/src/udev/udev-builtin.c index bcc2018c6fb..6caea8eccee 100644 --- a/src/udev/udev-builtin.c +++ b/src/udev/udev-builtin.c @@ -154,3 +154,26 @@ int udev_builtin_add_propertyf(sd_device *dev, bool test, const char *key, const return udev_builtin_add_property(dev, test, key, val); } + +int udev_builtin_import_property(sd_device *dev, sd_device *src, bool test, const char *key) { + const char *val; + int r; + + assert(dev); + assert(key); + + if (!src) + return 0; + + r = sd_device_get_property_value(src, key, &val); + if (r == -ENOENT) + return 0; + if (r < 0) + return log_device_debug_errno(src, r, "Failed to get property \"%s\", ignoring: %m", key); + + r = udev_builtin_add_property(dev, test, key, val); + if (r < 0) + return r; + + return 1; +} diff --git a/src/udev/udev-builtin.h b/src/udev/udev-builtin.h index fcd41d615de..c7a48b0201c 100644 --- a/src/udev/udev-builtin.h +++ b/src/udev/udev-builtin.h @@ -84,5 +84,6 @@ void udev_builtin_list(void); bool udev_builtin_should_reload(void); int udev_builtin_add_property(sd_device *dev, bool test, const char *key, const char *val); int udev_builtin_add_propertyf(sd_device *dev, bool test, const char *key, const char *valf, ...) _printf_(4, 5); +int udev_builtin_import_property(sd_device *dev, sd_device *src, bool test, const char *key); int udev_builtin_hwdb_lookup(sd_device *dev, const char *prefix, const char *modalias, const char *filter, bool test);