chiark / gitweb /
libudev: add udev event monitor API
[elogind.git] / udev / lib / libudev.c
index 56bd47741dc9f3fa89a31952a548c9a8c6c2294c..a5f33eb08fa2b3de5e367d52ce8c1b8e73892dd4 100644 (file)
 #include "libudev-private.h"
 #include "../udev.h"
 
+struct udev {
+       int refcount;
+       void (*log_fn)(struct udev *udev,
+                      int priority, const char *file, int line, const char *fn,
+                      const char *format, va_list args);
+};
+
 void udev_log(struct udev *udev,
              int priority, const char *file, int line, const char *fn,
              const char *format, ...)
@@ -110,6 +117,8 @@ struct udev *udev_new(void)
  **/
 struct udev *udev_ref(struct udev *udev)
 {
+       if (udev == NULL)
+               return NULL;
        udev->refcount++;
        return udev;
 }
@@ -124,6 +133,8 @@ struct udev *udev_ref(struct udev *udev)
  **/
 void udev_unref(struct udev *udev)
 {
+       if (udev == NULL)
+               return;
        udev->refcount--;
        if (udev->refcount > 0)
                return;
@@ -164,6 +175,8 @@ void udev_set_log_fn(struct udev *udev,
  **/
 const char *udev_get_sys_path(struct udev *udev)
 {
+       if (udev == NULL)
+               return NULL;
        return sysfs_path;
 }
 
@@ -179,5 +192,7 @@ const char *udev_get_sys_path(struct udev *udev)
  **/
 const char *udev_get_dev_path(struct udev *udev)
 {
+       if (udev == NULL)
+               return NULL;
        return udev_root;
 }