diff options
| author | Dave Young <hidave.darkstar@gmail.com> | 2008-01-22 02:27:08 -0500 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@suse.de> | 2008-01-24 23:40:44 -0500 |
| commit | fd04897bb20be29d60f7e426a053545aebeaa61a (patch) | |
| tree | 7cd86b2d9de79a70bdeb32997240af5e28be6d03 /include/linux/device.h | |
| parent | 63b6971a0876b744e2fcf3c9df15d130501e1deb (diff) | |
Driver Core: add class iteration api
Add the following class iteration functions for driver use:
class_for_each_device
class_find_device
class_for_each_child
class_find_child
Signed-off-by: Dave Young <hidave.darkstar@gmail.com>
Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'include/linux/device.h')
| -rw-r--r-- | include/linux/device.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/include/linux/device.h b/include/linux/device.h index 92ba3a8746..cdaf57bf4d 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
| @@ -177,8 +177,7 @@ struct class { | |||
| 177 | struct list_head devices; | 177 | struct list_head devices; |
| 178 | struct list_head interfaces; | 178 | struct list_head interfaces; |
| 179 | struct kset class_dirs; | 179 | struct kset class_dirs; |
| 180 | struct semaphore sem; /* locks both the children and interfaces lists */ | 180 | struct semaphore sem; /* locks children, devices, interfaces */ |
| 181 | |||
| 182 | struct class_attribute * class_attrs; | 181 | struct class_attribute * class_attrs; |
| 183 | struct class_device_attribute * class_dev_attrs; | 182 | struct class_device_attribute * class_dev_attrs; |
| 184 | struct device_attribute * dev_attrs; | 183 | struct device_attribute * dev_attrs; |
| @@ -196,6 +195,12 @@ struct class { | |||
| 196 | 195 | ||
| 197 | extern int __must_check class_register(struct class *); | 196 | extern int __must_check class_register(struct class *); |
| 198 | extern void class_unregister(struct class *); | 197 | extern void class_unregister(struct class *); |
| 198 | extern int class_for_each_device(struct class *class, void *data, | ||
| 199 | int (*fn)(struct device *dev, void *data)); | ||
| 200 | extern struct device *class_find_device(struct class *class, void *data, | ||
| 201 | int (*match)(struct device *, void *)); | ||
| 202 | extern struct class_device *class_find_child(struct class *class, void *data, | ||
| 203 | int (*match)(struct class_device *, void *)); | ||
| 199 | 204 | ||
| 200 | 205 | ||
| 201 | struct class_attribute { | 206 | struct class_attribute { |
