diff options
author | Kay Sievers <kay.sievers@suse.de> | 2005-11-11 08:43:07 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-01-04 19:18:07 -0500 |
commit | 5f123fbd80f4f788554636f02bf73e40f914e0d6 (patch) | |
tree | dbb7db4c62fa8130a393ce772cf819fcffe2606b /include | |
parent | 033b96fd30db52a710d97b06f87d16fc59fee0f1 (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.h | 27 |
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 */ |
40 | typedef int __bitwise kobject_action_t; | 40 | typedef int __bitwise kobject_action_t; |
41 | enum kobject_action { | 41 | enum 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 | ||
49 | struct kobject { | 49 | struct 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 | |||
266 | int kobject_uevent(struct kobject *kobj, | ||
267 | enum kobject_action action, | ||
268 | struct attribute *attr); | ||
269 | int kobject_uevent_atomic(struct kobject *kobj, | ||
270 | enum kobject_action action, | ||
271 | struct attribute *attr); | ||
272 | |||
273 | #else | 265 | #else |
274 | static inline void kobject_hotplug(struct kobject *kobj, enum kobject_action action) { } | 266 | static inline void kobject_hotplug(struct kobject *kobj, enum kobject_action action) { } |
267 | |||
275 | static inline int add_hotplug_env_var(char **envp, int num_envp, int *cur_index, | 268 | static 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; } |
279 | int kobject_uevent(struct kobject *kobj, | ||
280 | enum kobject_action action, | ||
281 | struct attribute *attr) | ||
282 | { return 0; } | ||
283 | int 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__ */ |