X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=udev%2Flib%2Flibudev-private.h;h=11e9ad9cb38f49c06fadb5de4c7e43c3536a7b1f;hb=86b5778857522087e74182f26f0e565adea0c699;hp=040a48b0e3e6d1e13fdc664aab2bd65522165487;hpb=fc233a874bc93ac82bed7eda1d6967d6281a6fe2;p=elogind.git diff --git a/udev/lib/libudev-private.h b/udev/lib/libudev-private.h index 040a48b0e..11e9ad9cb 100644 --- a/udev/lib/libudev-private.h +++ b/udev/lib/libudev-private.h @@ -62,6 +62,7 @@ extern void udev_device_cleanup_devlinks_list(struct udev_device *udev_device); extern struct udev_list_entry *udev_device_add_property(struct udev_device *udev_device, const char *key, const char *value); extern struct udev_list_entry *udev_device_add_property_from_string(struct udev_device *udev_device, const char *property); extern char **udev_device_get_properties_envp(struct udev_device *udev_device); +extern ssize_t udev_device_get_properties_monitor_buf(struct udev_device *udev_device, const char **buf); extern int udev_device_read_db(struct udev_device *udev_device); extern int udev_device_read_uevent_file(struct udev_device *udev_device); extern int udev_device_set_action(struct udev_device *udev_device, const char *action); @@ -91,6 +92,7 @@ extern int udev_device_rename_db(struct udev_device *udev_device, const char *de /* libudev-monitor - netlink/unix socket communication */ extern int udev_monitor_send_device(struct udev_monitor *udev_monitor, struct udev_device *udev_device); +extern int udev_monitor_set_receive_buffer_size(struct udev_monitor *udev_monitor, int size); /* libudev-ctrl - daemon runtime setup */ struct udev_ctrl; @@ -123,18 +125,29 @@ struct udev_list_node { struct udev_list_node *next, *prev; }; extern void udev_list_init(struct udev_list_node *list); -extern void udev_list_cleanup(struct udev *udev, struct udev_list_node *name_list); +extern int udev_list_is_empty(struct udev_list_node *list); +extern void udev_list_node_append(struct udev_list_node *new, struct udev_list_node *list); +extern void udev_list_node_remove(struct udev_list_node *entry); +#define udev_list_node_foreach(node, list) \ + for (node = (list)->next; \ + node != list; \ + node = (node)->next) +#define udev_list_node_foreach_safe(node, tmp, list) \ + for (node = (list)->next, tmp = (node)->next; \ + node != list; \ + node = tmp, tmp = (tmp)->next) extern struct udev_list_entry *udev_list_entry_add(struct udev *udev, struct udev_list_node *list, const char *name, const char *value, int unique, int sort); extern void udev_list_entry_remove(struct udev_list_entry *entry); +extern void udev_list_cleanup_entries(struct udev *udev, struct udev_list_node *name_list); extern struct udev_list_entry *udev_list_get_entry(struct udev_list_node *list); extern void udev_list_entry_move_to_end(struct udev_list_entry *list_entry); +extern void udev_list_entry_move_before(struct udev_list_entry *list_entry, struct udev_list_entry *entry); extern int udev_list_entry_get_flag(struct udev_list_entry *list_entry); extern void udev_list_entry_set_flag(struct udev_list_entry *list_entry, int flag); -#define list_entry_foreach_safe(entry, tmp, first) \ - for (entry = first, \ - tmp = udev_list_entry_get_next(entry); \ +#define udev_list_entry_foreach_safe(entry, tmp, first) \ + for (entry = first, tmp = udev_list_entry_get_next(entry); \ entry != NULL; \ entry = tmp, tmp = udev_list_entry_get_next(tmp))