]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-device: shorten code a bit 23972/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 11 Jul 2022 10:02:31 +0000 (12:02 +0200)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 11 Jul 2022 13:27:21 +0000 (15:27 +0200)
src/libsystemd/sd-device/sd-device.c
src/systemd/sd-device.h

index 62531b9564b7e2120cd228c30d5ff8bc6f0e0a11..a53f31e5ff73d9c15ccb947978e4ca1449e14d5e 100644 (file)
@@ -1603,11 +1603,10 @@ _public_ int sd_device_get_usec_initialized(sd_device *device, uint64_t *ret) {
 
         assert_return(device, -EINVAL);
 
-        r = device_read_db(device);
+        r = sd_device_get_is_initialized(device);
         if (r < 0)
                 return r;
-
-        if (!device->is_initialized)
+        if (r == 0)
                 return -EBUSY;
 
         if (device->usec_initialized == 0)
@@ -1619,29 +1618,24 @@ _public_ int sd_device_get_usec_initialized(sd_device *device, uint64_t *ret) {
         return 0;
 }
 
-_public_ int sd_device_get_usec_since_initialized(sd_device *device, uint64_t *usec) {
-        usec_t now_ts;
+_public_ int sd_device_get_usec_since_initialized(sd_device *device, uint64_t *ret) {
+        usec_t now_ts, ts;
         int r;
 
         assert_return(device, -EINVAL);
 
-        r = device_read_db(device);
+        r = sd_device_get_usec_initialized(device, &ts);
         if (r < 0)
                 return r;
 
-        if (!device->is_initialized)
-                return -EBUSY;
-
-        if (device->usec_initialized == 0)
-                return -ENODATA;
-
         now_ts = now(CLOCK_MONOTONIC);
 
-        if (now_ts < device->usec_initialized)
+        if (now_ts < ts)
                 return -EIO;
 
-        if (usec)
-                *usec = now_ts - device->usec_initialized;
+        if (ret)
+                *ret = usec_sub_unsigned(now_ts, ts);
+
         return 0;
 }
 
index f8d7f225a97d55c7bccac973eda61a43f59743ec..19dd4d9eefae8c692446a1e4c876c086cc03a681 100644 (file)
@@ -85,8 +85,8 @@ int sd_device_get_seqnum(sd_device *device, uint64_t *ret);
 int sd_device_get_diskseq(sd_device *device, uint64_t *ret);
 
 int sd_device_get_is_initialized(sd_device *device);
-int sd_device_get_usec_initialized(sd_device *device, uint64_t *usec);
-int sd_device_get_usec_since_initialized(sd_device *device, uint64_t *usec);
+int sd_device_get_usec_initialized(sd_device *device, uint64_t *ret);
+int sd_device_get_usec_since_initialized(sd_device *device, uint64_t *ret);
 
 const char *sd_device_get_tag_first(sd_device *device);
 const char *sd_device_get_tag_next(sd_device *device);