unsigned long long int udev_get_kernel_seqnum(struct udev *udev)
{
- char filename[UTIL_PATH_SIZE];
unsigned long long int seqnum;
int fd;
char buf[32];
ssize_t len;
- util_strscpyl(filename, sizeof(filename), udev_get_sys_path(udev), "/kernel/uevent_seqnum", NULL);
- fd = open(filename, O_RDONLY|O_CLOEXEC);
+ fd = open("/sys/kernel/uevent_seqnum", O_RDONLY|O_CLOEXEC);
if (fd < 0)
return 0;
len = read(fd, buf, sizeof(buf));
* udev_queue_get_kernel_seqnum:
* @udev_queue: udev queue context
*
- * Returns: the current kernel event sequence number.
+ * Get the current kernel event sequence number.
+ *
+ * Returns: the sequence number.
**/
_public_ unsigned long long int udev_queue_get_kernel_seqnum(struct udev_queue *udev_queue)
{
char filename[UTIL_PATH_SIZE];
FILE *queue_file;
- util_strscpyl(filename, sizeof(filename), udev_get_run_path(udev_queue->udev), "/queue.bin", NULL);
+ util_strscpyl(filename, sizeof(filename), "/run/udev/queue.bin", NULL);
queue_file = fopen(filename, "re");
if (queue_file == NULL)
return NULL;
* udev_queue_get_udev_seqnum:
* @udev_queue: udev queue context
*
- * Returns: the last known udev event sequence number.
+ * Get the last known udev event sequence number.
+ *
+ * Returns: the sequence number.
**/
_public_ unsigned long long int udev_queue_get_udev_seqnum(struct udev_queue *udev_queue)
{
* udev_queue_get_udev_is_active:
* @udev_queue: udev queue context
*
+ * Check if udev is active on the system.
+ *
* Returns: a flag indicating if udev is active.
**/
_public_ int udev_queue_get_udev_is_active(struct udev_queue *udev_queue)
* udev_queue_get_queue_is_empty:
* @udev_queue: udev queue context
*
+ * Check if udev is currently processing any events.
+ *
* Returns: a flag indicating if udev is currently handling events.
**/
_public_ int udev_queue_get_queue_is_empty(struct udev_queue *udev_queue)
* @start: first event sequence number
* @end: last event sequence number
*
+ * Check if udev is currently processing any events in a given sequence number range.
+ *
* Returns: a flag indicating if any of the sequence numbers in the given range is currently active.
**/
_public_ int udev_queue_get_seqnum_sequence_is_finished(struct udev_queue *udev_queue,
* @udev_queue: udev queue context
* @seqnum: sequence number
*
+ * Check if udev is currently processing a given sequence number.
+ *
* Returns: a flag indicating if the given sequence number is currently active.
**/
_public_ int udev_queue_get_seqnum_is_finished(struct udev_queue *udev_queue, unsigned long long int seqnum)
* udev_queue_get_queued_list_entry:
* @udev_queue: udev queue context
*
- * Returns: the first entry of the list of queued events.
+ * Get the first entry of the list of queued events.
+ *
+ * Returns: a udev_list_entry.
**/
_public_ struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_queue *udev_queue)
{
snprintf(seqnum_str, sizeof(seqnum_str), "%llu", seqnum);
s = syspath;
- l = util_strpcpyl(&s, sizeof(syspath), udev_get_sys_path(udev_queue->udev), NULL);
+ l = util_strpcpy(&s, sizeof(syspath), "/sys");
len = udev_queue_read_devpath(queue_file, s, l);
if (len < 0)
break;
struct udev_list_entry *udev_queue_get_failed_list_entry(struct udev_queue *udev_queue);
_public_ struct udev_list_entry *udev_queue_get_failed_list_entry(struct udev_queue *udev_queue)
{
+ err(udev_queue->udev, "udev_queue_get_failed_list_entry() does not return anything; failed events are not recorded\n");
errno = ENOSYS;
return NULL;
}