chiark / gitweb /
libudev: add comments to libudev.h
authorKay Sievers <kay.sievers@vrfy.org>
Mon, 8 Jun 2009 17:31:07 +0000 (19:31 +0200)
committerKay Sievers <kay.sievers@vrfy.org>
Mon, 8 Jun 2009 17:31:07 +0000 (19:31 +0200)
udev/lib/libudev.h

index 63cb478..241091c 100644 (file)
 #error "#define LIBUDEV_I_KNOW_THE_API_IS_SUBJECT_TO_CHANGE is needed to use this experimental library version"
 #endif
 
-/* library context */
+/*
+ * udev - library context
+ * 
+ * reads the udev config and system environment
+ * allows custom logging
+ */
 struct udev;
-struct udev *udev_new(void);
 struct udev *udev_ref(struct udev *udev);
 void udev_unref(struct udev *udev);
+struct udev *udev_new(void);
 void udev_set_log_fn(struct udev *udev,
                            void (*log_fn)(struct udev *udev,
                                           int priority, const char *file, int line, const char *fn,
@@ -37,7 +42,11 @@ const char *udev_get_dev_path(struct udev *udev);
 void *udev_get_userdata(struct udev *udev);
 void udev_set_userdata(struct udev *udev, void *userdata);
 
-/* list iteration */
+/*
+ * udev_list
+ *
+ * access to libudev generated lists
+ */
 struct udev_list_entry;
 struct udev_list_entry *udev_list_entry_get_next(struct udev_list_entry *list_entry);
 struct udev_list_entry *udev_list_entry_get_by_name(struct udev_list_entry *list_entry, const char *name);
@@ -48,16 +57,23 @@ const char *udev_list_entry_get_value(struct udev_list_entry *list_entry);
             entry != NULL; \
             entry = udev_list_entry_get_next(entry))
 
-/* sys devices */
+/*
+ * udev_device
+ *
+ * access to sysfs/kernel devices
+ */
 struct udev_device;
+struct udev_device *udev_device_ref(struct udev_device *udev_device);
+void udev_device_unref(struct udev_device *udev_device);
+struct udev *udev_device_get_udev(struct udev_device *udev_device);
 struct udev_device *udev_device_new_from_syspath(struct udev *udev, const char *syspath);
 struct udev_device *udev_device_new_from_devnum(struct udev *udev, char type, dev_t devnum);
 struct udev_device *udev_device_new_from_subsystem_sysname(struct udev *udev, const char *subsystem, const char *sysname);
+/* udev_device_get_parent_*() does not take a reference on the returned device, it is automatically unref'd with the parent */
 struct udev_device *udev_device_get_parent(struct udev_device *udev_device);
-struct udev_device *udev_device_get_parent_with_subsystem_devtype(struct udev_device *udev_device, const char *subsystem, const char *devtype);
-struct udev_device *udev_device_ref(struct udev_device *udev_device);
-void udev_device_unref(struct udev_device *udev_device);
-struct udev *udev_device_get_udev(struct udev_device *udev_device);
+struct udev_device *udev_device_get_parent_with_subsystem_devtype(struct udev_device *udev_device,
+                                                                 const char *subsystem, const char *devtype);
+/* retrieve device properties */
 const char *udev_device_get_devpath(struct udev_device *udev_device);
 const char *udev_device_get_subsystem(struct udev_device *udev_device);
 const char *udev_device_get_devtype(struct udev_device *udev_device);
@@ -74,42 +90,62 @@ const char *udev_device_get_action(struct udev_device *udev_device);
 unsigned long long int udev_device_get_seqnum(struct udev_device *udev_device);
 const char *udev_device_get_sysattr_value(struct udev_device *udev_device, const char *sysattr);
 
-/* device events */
+/*
+ * udev_monitor
+ *
+ * access to kernel uevents and udev events
+ */
 struct udev_monitor;
-struct udev_monitor *udev_monitor_new_from_netlink(struct udev *udev, const char *name);
-struct udev_monitor *udev_monitor_new_from_socket(struct udev *udev, const char *socket_path);
-int udev_monitor_enable_receiving(struct udev_monitor *udev_monitor);
 struct udev_monitor *udev_monitor_ref(struct udev_monitor *udev_monitor);
 void udev_monitor_unref(struct udev_monitor *udev_monitor);
 struct udev *udev_monitor_get_udev(struct udev_monitor *udev_monitor);
+/* kernel and udev generated events over netlink */
+struct udev_monitor *udev_monitor_new_from_netlink(struct udev *udev, const char *name);
+/* custom socket (use netlink and filters instead) */
+struct udev_monitor *udev_monitor_new_from_socket(struct udev *udev, const char *socket_path);
+/* bind socket */
+int udev_monitor_enable_receiving(struct udev_monitor *udev_monitor);
 int udev_monitor_get_fd(struct udev_monitor *udev_monitor);
 struct udev_device *udev_monitor_receive_device(struct udev_monitor *udev_monitor);
-int udev_monitor_filter_add_match_subsystem_devtype(struct udev_monitor *udev_monitor, const char *subsystem, const char *devtype);
+/* in-kernel socket filters to select messages that get delivered to a listener */
+int udev_monitor_filter_add_match_subsystem_devtype(struct udev_monitor *udev_monitor,
+                                                   const char *subsystem, const char *devtype);
 int udev_monitor_filter_update(struct udev_monitor *udev_monitor);
 int udev_monitor_filter_remove(struct udev_monitor *udev_monitor);
 
-/* sys enumeration */
+/*
+ * udev_enumerate
+ *
+ * search sysfs for specific devices and provide a sorted list
+ */
 struct udev_enumerate;
-struct udev_enumerate *udev_enumerate_new(struct udev *udev);
 struct udev_enumerate *udev_enumerate_ref(struct udev_enumerate *udev_enumerate);
 void udev_enumerate_unref(struct udev_enumerate *udev_enumerate);
 struct udev *udev_enumerate_get_udev(struct udev_enumerate *udev_enumerate);
+struct udev_enumerate *udev_enumerate_new(struct udev *udev);
+/* device properties filter */
 int udev_enumerate_add_match_subsystem(struct udev_enumerate *udev_enumerate, const char *subsystem);
 int udev_enumerate_add_nomatch_subsystem(struct udev_enumerate *udev_enumerate, const char *subsystem);
 int udev_enumerate_add_match_sysattr(struct udev_enumerate *udev_enumerate, const char *sysattr, const char *value);
 int udev_enumerate_add_nomatch_sysattr(struct udev_enumerate *udev_enumerate, const char *sysattr, const char *value);
 int udev_enumerate_add_match_property(struct udev_enumerate *udev_enumerate, const char *property, const char *value);
 int udev_enumerate_add_syspath(struct udev_enumerate *udev_enumerate, const char *syspath);
+/* run enumeration with active filters */
 int udev_enumerate_scan_devices(struct udev_enumerate *udev_enumerate);
 int udev_enumerate_scan_subsystems(struct udev_enumerate *udev_enumerate);
+/* return device list */
 struct udev_list_entry *udev_enumerate_get_list_entry(struct udev_enumerate *udev_enumerate);
 
-/* event queue */
+/*
+ * udev_queue
+ *
+ * access to the currently running udev events
+ */
 struct udev_queue;
-struct udev_queue *udev_queue_new(struct udev *udev);
 struct udev_queue *udev_queue_ref(struct udev_queue *udev_queue);
 void udev_queue_unref(struct udev_queue *udev_queue);
 struct udev *udev_queue_get_udev(struct udev_queue *udev_queue);
+struct udev_queue *udev_queue_new(struct udev *udev);
 unsigned long long int udev_queue_get_kernel_seqnum(struct udev_queue *udev_queue);
 unsigned long long int udev_queue_get_udev_seqnum(struct udev_queue *udev_queue);
 int udev_queue_get_udev_is_active(struct udev_queue *udev_queue);