libmultipath: Print out uevent sequence number
[multipath-tools/.git] / libmultipath / uevent.h
1 #ifndef _UEVENT_H
2 #define _UEVENT_H
3
4 /*
5  * buffer for environment variables, the kernel's size in
6  * lib/kobject_uevent.c should fit in
7 */
8 #define HOTPLUG_BUFFER_SIZE             2048
9 #define HOTPLUG_NUM_ENVP                32
10 #define OBJECT_SIZE                     512
11
12 #ifndef NETLINK_KOBJECT_UEVENT
13 #define NETLINK_KOBJECT_UEVENT          15
14 #endif
15
16 struct uevent {
17         struct list_head node;
18         struct udev_device *udev;
19         char buffer[HOTPLUG_BUFFER_SIZE + OBJECT_SIZE];
20         char *devpath;
21         char *action;
22         char *kernel;
23         unsigned long seqnum;
24         char *envp[HOTPLUG_NUM_ENVP];
25 };
26
27 int is_uevent_busy(void);
28 void setup_thread_attr(pthread_attr_t *attr, size_t stacksize, int detached);
29
30 int uevent_listen(void);
31 int uevent_dispatch(int (*store_uev)(struct uevent *, void * trigger_data),
32                     void * trigger_data);
33 int uevent_get_major(struct uevent *uev);
34 int uevent_get_minor(struct uevent *uev);
35 int uevent_get_disk_ro(struct uevent *uev);
36 char *uevent_get_dm_name(struct uevent *uev);
37
38 #endif /* _UEVENT_H */