diff --git a/udev.h b/udev.h index 91b520b..51ba317 100644 --- a/udev.h +++ b/udev.h @@ -28,6 +28,7 @@ const char *udev_device_get_sysnum(struct udev_device *udev_device); const char *udev_device_get_devpath(struct udev_device *udev_device); const char *udev_device_get_devnode(struct udev_device *udev_device); dev_t udev_device_get_devnum(struct udev_device *udev_device); +unsigned long long udev_device_get_seqnum(struct udev_device *udev_device); const char *udev_device_get_devtype(struct udev_device *udev_device); const char *udev_device_get_subsystem(struct udev_device *udev_device); const char *udev_device_get_driver(struct udev_device *udev_device); diff --git a/udev_device.c b/udev_device.c index bd03d40..e189659 100644 --- a/udev_device.c +++ b/udev_device.c @@ -44,6 +44,19 @@ const char *udev_device_get_devnode(struct udev_device *udev_device) return udev_device_get_property_value(udev_device, "DEVNAME"); } +unsigned long long udev_device_get_seqnum(struct udev_device *udev_device) +{ + const char *seqnum; + + seqnum = udev_device_get_property_value(udev_device, "SEQNUM"); + + if (!seqnum) { + return 0; + } + + return strtoull(seqnum, NULL, 10); +} + dev_t udev_device_get_devnum(struct udev_device *udev_device) { const char *major, *minor;