This will use sysfs_create_file_uevent to create a sysfs file and send out a uevent to userspace application such as udev.
Signed-off-by: Bryan Wu <bryan...@canonical.com> --- drivers/base/core.c | 19 +++++++++++++++++++ include/linux/device.h | 4 ++++ 2 files changed, 23 insertions(+) diff --git a/drivers/base/core.c b/drivers/base/core.c index 346be8b..62fd266 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -538,6 +538,25 @@ int device_create_file(struct device *dev, } /** + * device_create_file_uevent - create sysfs attribute file for device + * and send a uevent to userspace. + * @dev: device. + * @attr: device attribute descriptor. + * @desc: description about the uevent. + * @action: kobject uevent action type. + */ +int device_create_file_uevent(struct device *dev, + const struct device_attribute *attr, + const char *desc, + enum kobject_action action) +{ + int error = 0; + if (dev) + error = sysfs_create_file_uevent(&dev->kobj, &attr->attr, + desc, action); + return error; +} +/** * device_remove_file - remove sysfs attribute file. * @dev: device. * @attr: device attribute descriptor. diff --git a/include/linux/device.h b/include/linux/device.h index 6de9415..d1545f3 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -510,6 +510,10 @@ ssize_t device_store_int(struct device *dev, struct device_attribute *attr, extern int device_create_file(struct device *device, const struct device_attribute *entry); +extern int device_create_file_uevent(struct device *dev, + const struct device_attribute *attr, + const char *desc, + enum kobject_action action); extern void device_remove_file(struct device *dev, const struct device_attribute *attr); extern int __must_check device_create_bin_file(struct device *dev, -- 1.7.11.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/