]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-device: add device_get_property_uint() helper
authorLennart Poettering <lennart@poettering.net>
Mon, 20 Oct 2025 10:34:32 +0000 (12:34 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 22 Oct 2025 20:56:01 +0000 (22:56 +0200)
This is just like device_get_property_int() but operates on unsigned
ints.

src/libsystemd/sd-device/device-private.h
src/libsystemd/sd-device/sd-device.c

index 74d6ffd11923c4165b166b593bdd1e11d837e4d5..9068b5497fdbf2e504b3236f582a2efc143501f7 100644 (file)
@@ -14,6 +14,7 @@ int device_opendir(sd_device *device, const char *subdir, DIR **ret);
 int device_get_sysnum_unsigned(sd_device *device, unsigned *ret);
 int device_get_property_bool(sd_device *device, const char *key);
 int device_get_property_int(sd_device *device, const char *key, int *ret);
+int device_get_property_uint(sd_device *device, const char *key, unsigned *ret);
 int device_get_ifname(sd_device *device, const char **ret);
 int device_get_sysattr_int(sd_device *device, const char *sysattr, int *ret_value);
 int device_get_sysattr_unsigned_full(sd_device *device, const char *sysattr, unsigned base, unsigned *ret_value);
index 3edebdda6699e722da384f17371f4efc8c7a66fe..0b77126b2c429bc0d70204917bd985cbb4a8a283 100644 (file)
@@ -2319,6 +2319,27 @@ int device_get_property_int(sd_device *device, const char *key, int *ret) {
         return 0;
 }
 
+int device_get_property_uint(sd_device *device, const char *key, unsigned *ret) {
+        const char *value;
+        int r;
+
+        assert(device);
+        assert(key);
+
+        r = sd_device_get_property_value(device, key, &value);
+        if (r < 0)
+                return r;
+
+        unsigned v;
+        r = safe_atou(value, &v);
+        if (r < 0)
+                return r;
+
+        if (ret)
+                *ret = v;
+        return 0;
+}
+
 _public_ int sd_device_get_trigger_uuid(sd_device *device, sd_id128_t *ret) {
         const char *s;
         sd_id128_t id;