Merge with http://www.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
[linux-2.6] / include / linux / kobject_uevent.h
1 /*
2  * kobject_uevent.h - list of kobject user events that can be generated
3  *
4  * Copyright (C) 2004 IBM Corp.
5  * Copyright (C) 2004 Greg Kroah-Hartman <greg@kroah.com>
6  *
7  * This file is released under the GPLv2.
8  *
9  */
10
11 #ifndef _KOBJECT_EVENT_H_
12 #define _KOBJECT_EVENT_H_
13
14 #define HOTPLUG_PATH_LEN        256
15
16 /* path to the hotplug userspace helper executed on an event */
17 extern char hotplug_path[];
18
19 /*
20  * If you add an action here, you must also add the proper string to the
21  * lib/kobject_uevent.c file.
22  */
23 typedef int __bitwise kobject_action_t;
24 enum kobject_action {
25         KOBJ_ADD        = (__force kobject_action_t) 0x01,      /* add event, for hotplug */
26         KOBJ_REMOVE     = (__force kobject_action_t) 0x02,      /* remove event, for hotplug */
27         KOBJ_CHANGE     = (__force kobject_action_t) 0x03,      /* a sysfs attribute file has changed */
28         KOBJ_MOUNT      = (__force kobject_action_t) 0x04,      /* mount event for block devices */
29         KOBJ_UMOUNT     = (__force kobject_action_t) 0x05,      /* umount event for block devices */
30         KOBJ_OFFLINE    = (__force kobject_action_t) 0x06,      /* offline event for hotplug devices */
31         KOBJ_ONLINE     = (__force kobject_action_t) 0x07,      /* online event for hotplug devices */
32 };
33
34
35 #ifdef CONFIG_KOBJECT_UEVENT
36 int kobject_uevent(struct kobject *kobj,
37                    enum kobject_action action,
38                    struct attribute *attr);
39 int kobject_uevent_atomic(struct kobject *kobj,
40                           enum kobject_action action,
41                           struct attribute *attr);
42 #else
43 static inline int kobject_uevent(struct kobject *kobj,
44                                  enum kobject_action action,
45                                  struct attribute *attr)
46 {
47         return 0;
48 }
49 static inline int kobject_uevent_atomic(struct kobject *kobj,
50                                         enum kobject_action action,
51                                         struct attribute *attr)
52 {
53         return 0;
54 }
55 #endif
56
57 #endif