84f7b5e910be48f37e95c9362d12b86bcd66aab3
[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         void *next;
18         char buffer[HOTPLUG_BUFFER_SIZE + OBJECT_SIZE];
19         char *devpath;
20         char *action;
21         char *envp[HOTPLUG_NUM_ENVP];
22 };
23
24 int uevent_listen(int (*store_uev)(struct uevent *, void * trigger_data),
25                   void * trigger_data);
26 int is_uevent_busy(void);
27 void setup_thread_attr(pthread_attr_t *attr, size_t stacksize, int detached);
28
29 #endif /* _UEVENT_H */