X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=src%2Flibudev%2Flibudev-device.c;fp=src%2Flibudev%2Flibudev-device.c;h=b518a2f891b93fb9549159fce78be6baa06d7a4c;hb=1b14c3cfbe25f9bf1183bd26875f3c68847559c0;hp=c0a061af6c808d6d505fc13f0182fcf41d4145c9;hpb=0964dcd77213a9e229efcc2f00084e1f63fc00ca;p=elogind.git diff --git a/src/libudev/libudev-device.c b/src/libudev/libudev-device.c index c0a061af6..b518a2f89 100644 --- a/src/libudev/libudev-device.c +++ b/src/libudev/libudev-device.c @@ -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