*
* Returns: the udev queue context, or #NULL on error.
**/
-UDEV_EXPORT struct udev_queue *udev_queue_new(struct udev *udev)
+_public_ struct udev_queue *udev_queue_new(struct udev *udev)
{
struct udev_queue *udev_queue;
*
* Returns: the same udev queue context.
**/
-UDEV_EXPORT struct udev_queue *udev_queue_ref(struct udev_queue *udev_queue)
+_public_ struct udev_queue *udev_queue_ref(struct udev_queue *udev_queue)
{
if (udev_queue == NULL)
return NULL;
* Drop a reference of a udev queue context. If the refcount reaches zero,
* the resources of the queue context will be released.
**/
-UDEV_EXPORT void udev_queue_unref(struct udev_queue *udev_queue)
+_public_ void udev_queue_unref(struct udev_queue *udev_queue)
{
if (udev_queue == NULL)
return;
*
* Returns: the udev library context.
**/
-UDEV_EXPORT struct udev *udev_queue_get_udev(struct udev_queue *udev_queue)
+_public_ struct udev *udev_queue_get_udev(struct udev_queue *udev_queue)
{
if (udev_queue == NULL)
return NULL;
*
* Returns: the current kernel event sequence number.
**/
-UDEV_EXPORT unsigned long long int udev_queue_get_kernel_seqnum(struct udev_queue *udev_queue)
+_public_ unsigned long long int udev_queue_get_kernel_seqnum(struct udev_queue *udev_queue)
{
unsigned long long int seqnum;
return -EINVAL;
seqnum = udev_get_kernel_seqnum(udev_queue->udev);
- dbg(udev_queue->udev, "seqnum=%llu\n", seqnum);
return seqnum;
}
unsigned short int len;
if (fread(&len, sizeof(unsigned short int), 1, queue_file) == 1) {
- char devpath[len];
+ char *devpath = alloca(len);
/* use fread to skip, fseek might drop buffered data */
if (fread(devpath, 1, len, queue_file) == len)
/* if devpath was too long, skip unread characters */
if (read_bytes != len) {
unsigned short int skip_bytes = len - read_bytes;
- char buf[skip_bytes];
+ char *buf = alloca(skip_bytes);
if (fread(buf, 1, skip_bytes, queue_file) != skip_bytes)
return -1;
*
* Returns: the last known udev event sequence number.
**/
-UDEV_EXPORT unsigned long long int udev_queue_get_udev_seqnum(struct udev_queue *udev_queue)
+_public_ unsigned long long int udev_queue_get_udev_seqnum(struct udev_queue *udev_queue)
{
unsigned long long int seqnum_udev;
FILE *queue_file;
*
* Returns: a flag indicating if udev is active.
**/
-UDEV_EXPORT int udev_queue_get_udev_is_active(struct udev_queue *udev_queue)
+_public_ int udev_queue_get_udev_is_active(struct udev_queue *udev_queue)
{
unsigned long long int seqnum_start;
FILE *queue_file;
*
* Returns: a flag indicating if udev is currently handling events.
**/
-UDEV_EXPORT int udev_queue_get_queue_is_empty(struct udev_queue *udev_queue)
+_public_ int udev_queue_get_queue_is_empty(struct udev_queue *udev_queue)
{
unsigned long long int seqnum_kernel;
unsigned long long int seqnum_udev = 0;
}
}
- if (queued > 0) {
- dbg(udev_queue->udev, "queue is not empty\n");
+ if (queued > 0)
goto out;
- }
seqnum_kernel = udev_queue_get_kernel_seqnum(udev_queue);
- if (seqnum_udev < seqnum_kernel) {
- dbg(udev_queue->udev, "queue is empty but kernel events still pending [%llu]<->[%llu]\n",
- seqnum_kernel, seqnum_udev);
+ if (seqnum_udev < seqnum_kernel)
goto out;
- }
- dbg(udev_queue->udev, "queue is empty\n");
is_empty = 1;
out:
*
* Returns: a flag indicating if any of the sequence numbers in the given range is currently active.
**/
-UDEV_EXPORT int udev_queue_get_seqnum_sequence_is_finished(struct udev_queue *udev_queue,
+_public_ int udev_queue_get_seqnum_sequence_is_finished(struct udev_queue *udev_queue,
unsigned long long int start, unsigned long long int end)
{
unsigned long long int seqnum;
*
* Returns: a flag indicating if the given sequence number is currently active.
**/
-UDEV_EXPORT int udev_queue_get_seqnum_is_finished(struct udev_queue *udev_queue, unsigned long long int seqnum)
+_public_ int udev_queue_get_seqnum_is_finished(struct udev_queue *udev_queue, unsigned long long int seqnum)
{
if (!udev_queue_get_seqnum_sequence_is_finished(udev_queue, seqnum, seqnum))
return 0;
- dbg(udev_queue->udev, "seqnum: %llu finished\n", seqnum);
return 1;
}
*
* Returns: the first entry of the list of queued events.
**/
-UDEV_EXPORT struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_queue *udev_queue)
+_public_ struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_queue *udev_queue)
{
unsigned long long int seqnum;
FILE *queue_file;
}
struct udev_list_entry *udev_queue_get_failed_list_entry(struct udev_queue *udev_queue);
-UDEV_EXPORT 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)
{
errno = ENOSYS;
return NULL;