chiark / gitweb /
libudev: add missing 'global' to symbol export
[elogind.git] / src / libudev / libudev-queue.c
index 81f40db2085778f8b96fe838fae3b3f1503a39b1..0dd20313d9fe892dad73a1256b83041bd55bc002 100644 (file)
@@ -1,14 +1,22 @@
-/*
- * libudev - interface to udev device information
- *
- * Copyright (C) 2008 Kay Sievers <kay.sievers@vrfy.org>
- * Copyright (C) 2009 Alan Jenkins <alan-jenkins@tuffmail.co.uk>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- */
+/***
+  This file is part of systemd.
+
+  Copyright 2008-2012 Kay Sievers <kay@vrfy.org>
+  Copyright 2009 Alan Jenkins <alan-jenkins@tuffmail.co.uk>
+
+  systemd is free software; you can redistribute it and/or modify it
+  under the terms of the GNU Lesser General Public License as published by
+  the Free Software Foundation; either version 2.1 of the License, or
+  (at your option) any later version.
+
+  systemd is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public License
+  along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -92,16 +100,19 @@ _public_ struct udev_queue *udev_queue_ref(struct udev_queue *udev_queue)
  *
  * Drop a reference of a udev queue context. If the refcount reaches zero,
  * the resources of the queue context will be released.
+ *
+ * Returns: the passed queue context if it has still an active reference, or #NULL otherwise.
  **/
-_public_ void udev_queue_unref(struct udev_queue *udev_queue)
+_public_ struct udev_queue *udev_queue_unref(struct udev_queue *udev_queue)
 {
         if (udev_queue == NULL)
-                return;
+                return NULL;
         udev_queue->refcount--;
         if (udev_queue->refcount > 0)
-                return;
+                return udev_queue;
         udev_list_cleanup(&udev_queue->queue_list);
         free(udev_queue);
+        return NULL;
 }
 
 /**
@@ -207,11 +218,9 @@ ssize_t udev_queue_read_devpath(FILE *queue_file, char *devpath, size_t size)
 
 static FILE *open_queue_file(struct udev_queue *udev_queue, unsigned long long int *seqnum_start)
 {
-        char filename[UTIL_PATH_SIZE];
         FILE *queue_file;
 
-        util_strscpyl(filename, sizeof(filename), "/run/udev/queue.bin", NULL);
-        queue_file = fopen(filename, "re");
+        queue_file = fopen("/run/udev/queue.bin", "re");
         if (queue_file == NULL)
                 return NULL;
 
@@ -449,7 +458,7 @@ _public_ struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_qu
                 snprintf(seqnum_str, sizeof(seqnum_str), "%llu", seqnum);
 
                 s = syspath;
-                l = util_strpcpy(&s, sizeof(syspath), "/sys");
+                l = strpcpy(&s, sizeof(syspath), "/sys");
                 len = udev_queue_read_devpath(queue_file, s, l);
                 if (len < 0)
                         break;
@@ -458,7 +467,7 @@ _public_ struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_qu
                         udev_list_entry_add(&udev_queue->queue_list, syspath, seqnum_str);
                 } else {
                         udev_list_entry_foreach(list_entry, udev_list_get_entry(&udev_queue->queue_list)) {
-                                if (strcmp(seqnum_str, udev_list_entry_get_value(list_entry)) == 0) {
+                                if (streq(seqnum_str, udev_list_entry_get_value(list_entry))) {
                                         udev_list_entry_delete(list_entry);
                                         break;
                                 }
@@ -469,11 +478,3 @@ _public_ struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_qu
 
         return udev_list_get_entry(&udev_queue->queue_list);
 }
-
-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)
-{
-        udev_err(udev_queue->udev, "udev_queue_get_failed_list_entry() does not return anything; failed events are not recorded\n");
-        errno = ENOSYS;
-        return NULL;
-}