aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorKay Sievers <kay.sievers@suse.de>2005-11-11 08:43:07 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2006-01-04 19:18:07 -0500
commit5f123fbd80f4f788554636f02bf73e40f914e0d6 (patch)
treedbb7db4c62fa8130a393ce772cf819fcffe2606b /include
parent033b96fd30db52a710d97b06f87d16fc59fee0f1 (diff)
[PATCH] merge kobject_uevent and kobject_hotplug
The distinction between hotplug and uevent does not make sense these days, netlink events are the default. udev depends entirely on netlink uevents. Only during early boot and in initramfs, /sbin/hotplug is needed. So merge the two functions and provide only one interface without all the options. The netlink layer got a nice generic interface with named slots recently, which is probably a better facility to plug events for subsystem specific events. Also the new poll() interface to /proc/mounts is a nicer way to notify about changes than sending events through the core. The uevents should only be used for driver core related requests to userspace now. Signed-off-by: Kay Sievers <kay.sievers@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'include')
-rw-r--r--include/linux/kobject.h27
1 files changed, 6 insertions, 21 deletions
diff --git a/include/linux/kobject.h b/include/linux/kobject.h
index e6926b327538..5b08248fba72 100644
--- a/include/linux/kobject.h
+++ b/include/linux/kobject.h
@@ -39,11 +39,11 @@ extern u64 hotplug_seqnum;
39/* the actions here must match the proper string in lib/kobject_uevent.c */ 39/* the actions here must match the proper string in lib/kobject_uevent.c */
40typedef int __bitwise kobject_action_t; 40typedef int __bitwise kobject_action_t;
41enum kobject_action { 41enum kobject_action {
42 KOBJ_ADD = (__force kobject_action_t) 0x01, /* add event, for hotplug */ 42 KOBJ_ADD = (__force kobject_action_t) 0x01, /* exclusive to core */
43 KOBJ_REMOVE = (__force kobject_action_t) 0x02, /* remove event, for hotplug */ 43 KOBJ_REMOVE = (__force kobject_action_t) 0x02, /* exclusive to core */
44 KOBJ_CHANGE = (__force kobject_action_t) 0x03, /* a sysfs attribute file has changed */ 44 KOBJ_CHANGE = (__force kobject_action_t) 0x03, /* device state change */
45 KOBJ_OFFLINE = (__force kobject_action_t) 0x04, /* offline event for hotplug devices */ 45 KOBJ_OFFLINE = (__force kobject_action_t) 0x04, /* device offline */
46 KOBJ_ONLINE = (__force kobject_action_t) 0x05, /* online event for hotplug devices */ 46 KOBJ_ONLINE = (__force kobject_action_t) 0x05, /* device online */
47}; 47};
48 48
49struct kobject { 49struct kobject {
@@ -262,28 +262,13 @@ int add_hotplug_env_var(char **envp, int num_envp, int *cur_index,
262 char *buffer, int buffer_size, int *cur_len, 262 char *buffer, int buffer_size, int *cur_len,
263 const char *format, ...) 263 const char *format, ...)
264 __attribute__((format (printf, 7, 8))); 264 __attribute__((format (printf, 7, 8)));
265
266int kobject_uevent(struct kobject *kobj,
267 enum kobject_action action,
268 struct attribute *attr);
269int kobject_uevent_atomic(struct kobject *kobj,
270 enum kobject_action action,
271 struct attribute *attr);
272
273#else 265#else
274static inline void kobject_hotplug(struct kobject *kobj, enum kobject_action action) { } 266static inline void kobject_hotplug(struct kobject *kobj, enum kobject_action action) { }
267
275static inline int add_hotplug_env_var(char **envp, int num_envp, int *cur_index, 268static inline int add_hotplug_env_var(char **envp, int num_envp, int *cur_index,
276 char *buffer, int buffer_size, int *cur_len, 269 char *buffer, int buffer_size, int *cur_len,
277 const char *format, ...) 270 const char *format, ...)
278{ return 0; } 271{ return 0; }
279int kobject_uevent(struct kobject *kobj,
280 enum kobject_action action,
281 struct attribute *attr)
282{ return 0; }
283int kobject_uevent_atomic(struct kobject *kobj,
284 enum kobject_action action,
285 struct attribute *attr)
286{ return 0; }
287#endif 272#endif
288 273
289#endif /* __KERNEL__ */ 274#endif /* __KERNEL__ */