diff options
-rw-r--r-- | drivers/base/class.c | 18 | ||||
-rw-r--r-- | include/linux/device.h | 4 |
2 files changed, 22 insertions, 0 deletions
diff --git a/drivers/base/class.c b/drivers/base/class.c index f6ebe6af3ef..a863bb091e1 100644 --- a/drivers/base/class.c +++ b/drivers/base/class.c | |||
@@ -257,6 +257,22 @@ void class_device_remove_file(struct class_device * class_dev, | |||
257 | sysfs_remove_file(&class_dev->kobj, &attr->attr); | 257 | sysfs_remove_file(&class_dev->kobj, &attr->attr); |
258 | } | 258 | } |
259 | 259 | ||
260 | int class_device_create_bin_file(struct class_device *class_dev, | ||
261 | struct bin_attribute *attr) | ||
262 | { | ||
263 | int error = -EINVAL; | ||
264 | if (class_dev) | ||
265 | error = sysfs_create_bin_file(&class_dev->kobj, attr); | ||
266 | return error; | ||
267 | } | ||
268 | |||
269 | void class_device_remove_bin_file(struct class_device *class_dev, | ||
270 | struct bin_attribute *attr) | ||
271 | { | ||
272 | if (class_dev) | ||
273 | sysfs_remove_bin_file(&class_dev->kobj, attr); | ||
274 | } | ||
275 | |||
260 | static ssize_t | 276 | static ssize_t |
261 | class_device_attr_show(struct kobject * kobj, struct attribute * attr, | 277 | class_device_attr_show(struct kobject * kobj, struct attribute * attr, |
262 | char * buf) | 278 | char * buf) |
@@ -869,6 +885,8 @@ EXPORT_SYMBOL_GPL(class_device_create); | |||
869 | EXPORT_SYMBOL_GPL(class_device_destroy); | 885 | EXPORT_SYMBOL_GPL(class_device_destroy); |
870 | EXPORT_SYMBOL_GPL(class_device_create_file); | 886 | EXPORT_SYMBOL_GPL(class_device_create_file); |
871 | EXPORT_SYMBOL_GPL(class_device_remove_file); | 887 | EXPORT_SYMBOL_GPL(class_device_remove_file); |
888 | EXPORT_SYMBOL_GPL(class_device_create_bin_file); | ||
889 | EXPORT_SYMBOL_GPL(class_device_remove_bin_file); | ||
872 | 890 | ||
873 | EXPORT_SYMBOL_GPL(class_interface_register); | 891 | EXPORT_SYMBOL_GPL(class_interface_register); |
874 | EXPORT_SYMBOL_GPL(class_interface_unregister); | 892 | EXPORT_SYMBOL_GPL(class_interface_unregister); |
diff --git a/include/linux/device.h b/include/linux/device.h index 2c5e49d446b..2e15822fe40 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
@@ -291,6 +291,10 @@ extern void class_device_put(struct class_device *); | |||
291 | 291 | ||
292 | extern void class_device_remove_file(struct class_device *, | 292 | extern void class_device_remove_file(struct class_device *, |
293 | const struct class_device_attribute *); | 293 | const struct class_device_attribute *); |
294 | extern int __must_check class_device_create_bin_file(struct class_device *, | ||
295 | struct bin_attribute *); | ||
296 | extern void class_device_remove_bin_file(struct class_device *, | ||
297 | struct bin_attribute *); | ||
294 | 298 | ||
295 | struct class_interface { | 299 | struct class_interface { |
296 | struct list_head node; | 300 | struct list_head node; |