diff options
| author | Cornelia Huck <cornelia.huck@de.ibm.com> | 2006-11-20 11:07:51 -0500 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-12-01 17:52:01 -0500 |
| commit | 8a82472f86bf693b8e91ed56c9ca4f62fbbdcfa3 (patch) | |
| tree | 79d148ee548f4b57e6f5a4a69cf6cdb81e7a1bf2 /include/linux/kobject.h | |
| parent | af9e0765362151b27372c14d9d6dc417184182d3 (diff) | |
driver core: Introduce device_move(): move a device to a new parent.
Provide a function device_move() to move a device to a new parent device. Add
auxilliary functions kobject_move() and sysfs_move_dir().
kobject_move() generates a new uevent of type KOBJ_MOVE, containing the
previous path (DEVPATH_OLD) in addition to the usual values. For this, a new
interface kobject_uevent_env() is created that allows to add further
environmental data to the uevent at the kobject layer.
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Acked-by: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'include/linux/kobject.h')
| -rw-r--r-- | include/linux/kobject.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/include/linux/kobject.h b/include/linux/kobject.h index bcd9cd173c..d1c8d28fa9 100644 --- a/include/linux/kobject.h +++ b/include/linux/kobject.h | |||
| @@ -47,6 +47,7 @@ enum kobject_action { | |||
| 47 | KOBJ_UMOUNT = (__force kobject_action_t) 0x05, /* umount event for block devices (broken) */ | 47 | KOBJ_UMOUNT = (__force kobject_action_t) 0x05, /* umount event for block devices (broken) */ |
| 48 | KOBJ_OFFLINE = (__force kobject_action_t) 0x06, /* device offline */ | 48 | KOBJ_OFFLINE = (__force kobject_action_t) 0x06, /* device offline */ |
| 49 | KOBJ_ONLINE = (__force kobject_action_t) 0x07, /* device online */ | 49 | KOBJ_ONLINE = (__force kobject_action_t) 0x07, /* device online */ |
| 50 | KOBJ_MOVE = (__force kobject_action_t) 0x08, /* device move */ | ||
| 50 | }; | 51 | }; |
| 51 | 52 | ||
| 52 | struct kobject { | 53 | struct kobject { |
| @@ -76,6 +77,7 @@ extern int __must_check kobject_add(struct kobject *); | |||
| 76 | extern void kobject_del(struct kobject *); | 77 | extern void kobject_del(struct kobject *); |
| 77 | 78 | ||
| 78 | extern int __must_check kobject_rename(struct kobject *, const char *new_name); | 79 | extern int __must_check kobject_rename(struct kobject *, const char *new_name); |
| 80 | extern int __must_check kobject_move(struct kobject *, struct kobject *); | ||
| 79 | 81 | ||
| 80 | extern int __must_check kobject_register(struct kobject *); | 82 | extern int __must_check kobject_register(struct kobject *); |
| 81 | extern void kobject_unregister(struct kobject *); | 83 | extern void kobject_unregister(struct kobject *); |
| @@ -264,6 +266,8 @@ extern int __must_check subsys_create_file(struct subsystem * , | |||
| 264 | 266 | ||
| 265 | #if defined(CONFIG_HOTPLUG) | 267 | #if defined(CONFIG_HOTPLUG) |
| 266 | void kobject_uevent(struct kobject *kobj, enum kobject_action action); | 268 | void kobject_uevent(struct kobject *kobj, enum kobject_action action); |
| 269 | void kobject_uevent_env(struct kobject *kobj, enum kobject_action action, | ||
| 270 | char *envp[]); | ||
| 267 | 271 | ||
| 268 | int add_uevent_var(char **envp, int num_envp, int *cur_index, | 272 | int add_uevent_var(char **envp, int num_envp, int *cur_index, |
| 269 | char *buffer, int buffer_size, int *cur_len, | 273 | char *buffer, int buffer_size, int *cur_len, |
| @@ -271,6 +275,10 @@ int add_uevent_var(char **envp, int num_envp, int *cur_index, | |||
| 271 | __attribute__((format (printf, 7, 8))); | 275 | __attribute__((format (printf, 7, 8))); |
| 272 | #else | 276 | #else |
| 273 | static inline void kobject_uevent(struct kobject *kobj, enum kobject_action action) { } | 277 | static inline void kobject_uevent(struct kobject *kobj, enum kobject_action action) { } |
| 278 | static inline void kobject_uevent_env(struct kobject *kobj, | ||
| 279 | enum kobject_action action, | ||
| 280 | char *envp[]) | ||
| 281 | { } | ||
| 274 | 282 | ||
| 275 | static inline int add_uevent_var(char **envp, int num_envp, int *cur_index, | 283 | static inline int add_uevent_var(char **envp, int num_envp, int *cur_index, |
| 276 | char *buffer, int buffer_size, int *cur_len, | 284 | char *buffer, int buffer_size, int *cur_len, |
