From: Lennart Poettering Date: Mon, 20 Oct 2025 10:34:32 +0000 (+0200) Subject: sd-device: add device_get_property_uint() helper X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b09ea23978a79237e441b786781437bb1b5e02be;p=thirdparty%2Fsystemd.git sd-device: add device_get_property_uint() helper This is just like device_get_property_int() but operates on unsigned ints. --- diff --git a/src/libsystemd/sd-device/device-private.h b/src/libsystemd/sd-device/device-private.h index 74d6ffd1192..9068b5497fd 100644 --- a/src/libsystemd/sd-device/device-private.h +++ b/src/libsystemd/sd-device/device-private.h @@ -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); diff --git a/src/libsystemd/sd-device/sd-device.c b/src/libsystemd/sd-device/sd-device.c index 3edebdda669..0b77126b2c4 100644 --- a/src/libsystemd/sd-device/sd-device.c +++ b/src/libsystemd/sd-device/sd-device.c @@ -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;