+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));
+}
+
+static int udev_device_set_action(struct udev_device *udev_device, const char *action)
+{
+ free(udev_device->action);
+ udev_device->action = strdup(action);
+ if (udev_device->action == NULL)
+ return -ENOMEM;
+ udev_device_add_property_internal(udev_device, "ACTION", udev_device->action);
+ return 0;
+}
+