chiark / gitweb /
udev: make set_usec_initialized() internal to libudev
[elogind.git] / src / libudev / libudev-device.c
index c0a061af6c808d6d505fc13f0182fcf41d4145c9..b518a2f891b93fb9549159fce78be6baa06d7a4c 100644 (file)
@@ -445,6 +445,23 @@ static int udev_device_set_syspath(struct udev_device *udev_device, const char *
         return 0;
 }
 
+static void udev_device_set_usec_initialized(struct udev_device *udev_device, usec_t usec_initialized)
+{
+        char num[DECIMAL_STR_MAX(usec_t)];
+
+        udev_device->usec_initialized = usec_initialized;
+        snprintf(num, sizeof(num), USEC_FMT, usec_initialized);
+        udev_device_add_property_internal(udev_device, "USEC_INITIALIZED", num);
+}
+
+void udev_device_ensure_usec_initialized(struct udev_device *udev_device, struct udev_device *old_device)
+{
+        if (old_device && old_device->usec_initialized != 0)
+                udev_device_set_usec_initialized(udev_device, old_device->usec_initialized);
+        else
+                udev_device_set_usec_initialized(udev_device, now(CLOCK_MONOTONIC));
+}
+
 /*
  * parse property string, and if needed, update internal values accordingly
  *
@@ -1418,15 +1435,6 @@ usec_t udev_device_get_usec_initialized(struct udev_device *udev_device)
         return udev_device->usec_initialized;
 }
 
-void udev_device_set_usec_initialized(struct udev_device *udev_device, usec_t usec_initialized)
-{
-        char num[32];
-
-        udev_device->usec_initialized = usec_initialized;
-        snprintf(num, sizeof(num), USEC_FMT, usec_initialized);
-        udev_device_add_property_internal(udev_device, "USEC_INITIALIZED", num);
-}
-
 /**
  * udev_device_get_sysattr_value:
  * @udev_device: udev device