From: Yu Watanabe Date: Fri, 25 Mar 2022 17:00:02 +0000 (+0900) Subject: sd-device: introduce device_add_propertyf() X-Git-Tag: v251-rc1~4^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=71978a79fd6c3c8cf094522a8e100b227a044910;p=thirdparty%2Fsystemd.git sd-device: introduce device_add_propertyf() --- diff --git a/src/libsystemd/sd-device/device-private.c b/src/libsystemd/sd-device/device-private.c index d08d81f53aa..5f3644aac4d 100644 --- a/src/libsystemd/sd-device/device-private.c +++ b/src/libsystemd/sd-device/device-private.c @@ -47,6 +47,27 @@ int device_add_property(sd_device *device, const char *key, const char *value) { return 0; } +int device_add_propertyf(sd_device *device, const char *key, const char *format, ...) { + _cleanup_free_ char *value = NULL; + va_list ap; + int r; + + assert(device); + assert(key); + + if (!format) + return device_add_property(device, key, NULL); + + va_start(ap, format); + r = vasprintf(&value, format, ap); + va_end(ap); + + if (r < 0) + return -ENOMEM; + + return device_add_property(device, key, value); +} + void device_set_devlink_priority(sd_device *device, int priority) { assert(device); diff --git a/src/libsystemd/sd-device/device-private.h b/src/libsystemd/sd-device/device-private.h index ec378076217..68caee2cb46 100644 --- a/src/libsystemd/sd-device/device-private.h +++ b/src/libsystemd/sd-device/device-private.h @@ -36,6 +36,7 @@ int device_ensure_usec_initialized(sd_device *device, sd_device *device_old); int device_add_devlink(sd_device *device, const char *devlink); bool device_has_devlink(sd_device *device, const char *devlink); int device_add_property(sd_device *device, const char *property, const char *value); +int device_add_propertyf(sd_device *device, const char *key, const char *format, ...) _printf_(3, 4); int device_add_tag(sd_device *device, const char *tag, bool both); void device_remove_tag(sd_device *device, const char *tag); void device_cleanup_tags(sd_device *device);