Hi,
This patch adds support to the sysfs device_attribute to pass the new
void * attribute member to it's callback functions. The device
attribute will benefit the most from the dynamic sysfs callback patch
compared to the other attributes simply because of it's greater usage.
The first patch simply adds the void * parameter to the device
attribute function types and passes them when calling the callbacks.
Signed-off-by: Yani Ioannou <[email protected]>
Thanks,
Yani
---
drivers/base/core.c | 4 ++--
include/linux/device.h | 5 +++--
2 files changed, 5 insertions(+), 4 deletions(-)
diff -uprN -X dontdiff linux-2.6.12-rc4-sysfsdyncallback-gregkhcore/drivers/base/core.c linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/base/core.c
--- linux-2.6.12-rc4-sysfsdyncallback-gregkhcore/drivers/base/core.c 2005-05-10 21:44:00.000000000 -0400
+++ linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/base/core.c 2005-05-10 23:17:20.000000000 -0400
@@ -41,7 +41,7 @@ dev_attr_show(struct kobject * kobj, str
ssize_t ret = 0;
if (dev_attr->show)
- ret = dev_attr->show(dev, buf);
+ ret = dev_attr->show(dev, buf, attr->private);
return ret;
}
@@ -54,7 +54,7 @@ dev_attr_store(struct kobject * kobj, st
ssize_t ret = 0;
if (dev_attr->store)
- ret = dev_attr->store(dev, buf, count);
+ ret = dev_attr->store(dev, buf, count, attr->private);
return ret;
}
diff -uprN -X dontdiff linux-2.6.12-rc4-sysfsdyncallback-gregkhcore/include/linux/device.h linux-2.6.12-rc4-sysfsdyncallback-deviceattr/include/linux/device.h
--- linux-2.6.12-rc4-sysfsdyncallback-gregkhcore/include/linux/device.h 2005-05-10 21:44:28.000000000 -0400
+++ linux-2.6.12-rc4-sysfsdyncallback-deviceattr/include/linux/device.h 2005-05-10 23:23:15.000000000 -0400
@@ -335,8 +335,9 @@ extern void driver_attach(struct device_
struct device_attribute {
struct attribute attr;
- ssize_t (*show)(struct device * dev, char * buf);
- ssize_t (*store)(struct device * dev, const char * buf, size_t count);
+ ssize_t (*show)(struct device * dev, char * buf, void * private);
+ ssize_t (*store)(struct device * dev, const char * buf, size_t count,
+ void * private);
};
#define DEVICE_ATTR(_name,_mode,_show,_store) \
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]