diff -uprN -X dontdiff linux-2.6.12-rc4-sysfsdyncallback-deviceattr/include/linux/device.h linux-2.6.12-rc4-sysfsdyncallback-deviceattr-macro/include/linux/device.h --- linux-2.6.12-rc4-sysfsdyncallback-deviceattr/include/linux/device.h 2005-05-13 01:02:10.000000000 -0400 +++ linux-2.6.12-rc4-sysfsdyncallback-deviceattr-macro/include/linux/device.h 2005-05-13 01:09:27.000000000 -0400 @@ -343,6 +343,9 @@ struct device_attribute { #define DEVICE_ATTR(_name,_mode,_show,_store) \ struct device_attribute dev_attr_##_name = __ATTR(_name,_mode,_show,_store) +#define DEVICE_ATTR_PRIVATE(_name,_mode,_show,_store,_private) \ +struct device_attribute dev_attr_##_name = \ + __ATTR_PRIVATE(_name,_mode,_show,_store,_private) extern int device_create_file(struct device *device, struct device_attribute * entry); extern void device_remove_file(struct device * dev, struct device_attribute * attr); diff -uprN -X dontdiff linux-2.6.12-rc4-sysfsdyncallback-deviceattr/include/linux/sysfs.h linux-2.6.12-rc4-sysfsdyncallback-deviceattr-macro/include/linux/sysfs.h --- linux-2.6.12-rc4-sysfsdyncallback-deviceattr/include/linux/sysfs.h 2005-05-13 01:02:10.000000000 -0400 +++ linux-2.6.12-rc4-sysfsdyncallback-deviceattr-macro/include/linux/sysfs.h 2005-05-13 01:08:09.000000000 -0400 @@ -45,6 +45,17 @@ struct attribute_group { .store = _store, \ } +#define __ATTR_PRIVATE(_name,_mode,_show,_store,_private) { \ + .attr = { \ + .name = __stringify(_name), \ + .mode = _mode, \ + .private = _private, \ + .owner = THIS_MODULE, \ + }, \ + .show = _show, \ + .store = _store, \ +} + #define __ATTR_RO(_name) { \ .attr = { \ .name = __stringify(_name), \