]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-device: introduce device_add_propertyf()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 25 Mar 2022 17:00:02 +0000 (02:00 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 29 Mar 2022 16:27:29 +0000 (01:27 +0900)
src/libsystemd/sd-device/device-private.c
src/libsystemd/sd-device/device-private.h

index d08d81f53aa8dc581d5a2abdab7619d12a8bb7f9..5f3644aac4d15d0cd58a4dc8816ad672e3f23871 100644 (file)
@@ -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);
 
index ec378076217e6ce21528025fc7167e95290f824c..68caee2cb460e68989471ae144970b5af99ff9ea 100644 (file)
@@ -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);