Commit bde355c9 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman

Merge bk://kernel.bkbits.net/mochel/linux-2.6-core

into kroah.com:/home/greg/linux/BK/driver-2.6
parents 727a7f73 a4e2bce3
...@@ -320,7 +320,7 @@ sdev_store_timeout (struct device *dev, const char *buf, size_t count) ...@@ -320,7 +320,7 @@ sdev_store_timeout (struct device *dev, const char *buf, size_t count)
sdev->timeout = timeout * HZ; sdev->timeout = timeout * HZ;
return count; return count;
} }
static DEVICE_ATTR(timeout, S_IRUGO | S_IWUSR, sdev_show_timeout, sdev_store_timeout) static DEVICE_ATTR(timeout, S_IRUGO | S_IWUSR, sdev_show_timeout, sdev_store_timeout);
static ssize_t static ssize_t
store_rescan_field (struct device *dev, const char *buf, size_t count) store_rescan_field (struct device *dev, const char *buf, size_t count)
...@@ -328,7 +328,7 @@ store_rescan_field (struct device *dev, const char *buf, size_t count) ...@@ -328,7 +328,7 @@ store_rescan_field (struct device *dev, const char *buf, size_t count)
scsi_rescan_device(dev); scsi_rescan_device(dev);
return count; return count;
} }
static DEVICE_ATTR(rescan, S_IWUSR, NULL, store_rescan_field) static DEVICE_ATTR(rescan, S_IWUSR, NULL, store_rescan_field);
static ssize_t sdev_store_delete(struct device *dev, const char *buf, static ssize_t sdev_store_delete(struct device *dev, const char *buf,
size_t count) size_t count)
......
...@@ -90,11 +90,7 @@ struct bus_attribute { ...@@ -90,11 +90,7 @@ struct bus_attribute {
}; };
#define BUS_ATTR(_name,_mode,_show,_store) \ #define BUS_ATTR(_name,_mode,_show,_store) \
struct bus_attribute bus_attr_##_name = { \ struct bus_attribute bus_attr_##_name = __ATTR(_name,_mode,_show,_store)
.attr = {.name = __stringify(_name), .mode = _mode, .owner = THIS_MODULE }, \
.show = _show, \
.store = _store, \
};
extern int bus_create_file(struct bus_type *, struct bus_attribute *); extern int bus_create_file(struct bus_type *, struct bus_attribute *);
extern void bus_remove_file(struct bus_type *, struct bus_attribute *); extern void bus_remove_file(struct bus_type *, struct bus_attribute *);
...@@ -131,11 +127,7 @@ struct driver_attribute { ...@@ -131,11 +127,7 @@ struct driver_attribute {
}; };
#define DRIVER_ATTR(_name,_mode,_show,_store) \ #define DRIVER_ATTR(_name,_mode,_show,_store) \
struct driver_attribute driver_attr_##_name = { \ struct driver_attribute driver_attr_##_name = __ATTR(_name,_mode,_show,_store)
.attr = {.name = __stringify(_name), .mode = _mode, .owner = THIS_MODULE }, \
.show = _show, \
.store = _store, \
};
extern int driver_create_file(struct device_driver *, struct driver_attribute *); extern int driver_create_file(struct device_driver *, struct driver_attribute *);
extern void driver_remove_file(struct device_driver *, struct driver_attribute *); extern void driver_remove_file(struct device_driver *, struct driver_attribute *);
...@@ -172,11 +164,7 @@ struct class_attribute { ...@@ -172,11 +164,7 @@ struct class_attribute {
}; };
#define CLASS_ATTR(_name,_mode,_show,_store) \ #define CLASS_ATTR(_name,_mode,_show,_store) \
struct class_attribute class_attr_##_name = { \ struct class_attribute class_attr_##_name = __ATTR(_name,_mode,_show,_store)
.attr = {.name = __stringify(_name), .mode = _mode, .owner = THIS_MODULE }, \
.show = _show, \
.store = _store, \
};
extern int class_create_file(struct class *, const struct class_attribute *); extern int class_create_file(struct class *, const struct class_attribute *);
extern void class_remove_file(struct class *, const struct class_attribute *); extern void class_remove_file(struct class *, const struct class_attribute *);
...@@ -224,11 +212,8 @@ struct class_device_attribute { ...@@ -224,11 +212,8 @@ struct class_device_attribute {
}; };
#define CLASS_DEVICE_ATTR(_name,_mode,_show,_store) \ #define CLASS_DEVICE_ATTR(_name,_mode,_show,_store) \
struct class_device_attribute class_device_attr_##_name = { \ struct class_device_attribute class_device_attr_##_name = \
.attr = {.name = __stringify(_name), .mode = _mode, .owner = THIS_MODULE }, \ __ATTR(_name,_mode,_show,_store)
.show = _show, \
.store = _store, \
};
extern int class_device_create_file(struct class_device *, extern int class_device_create_file(struct class_device *,
const struct class_device_attribute *); const struct class_device_attribute *);
...@@ -342,11 +327,7 @@ struct device_attribute { ...@@ -342,11 +327,7 @@ struct device_attribute {
}; };
#define DEVICE_ATTR(_name,_mode,_show,_store) \ #define DEVICE_ATTR(_name,_mode,_show,_store) \
struct device_attribute dev_attr_##_name = { \ struct device_attribute dev_attr_##_name = __ATTR(_name,_mode,_show,_store)
.attr = {.name = __stringify(_name), .mode = _mode, .owner = THIS_MODULE }, \
.show = _show, \
.store = _store, \
};
extern int device_create_file(struct device *device, struct device_attribute * entry); extern int device_create_file(struct device *device, struct device_attribute * entry);
......
...@@ -24,6 +24,27 @@ struct attribute_group { ...@@ -24,6 +24,27 @@ struct attribute_group {
}; };
/**
* Use these macros to make defining attributes easier. See include/linux/device.h
* for examples..
*/
#define __ATTR(_name,_mode,_show,_store) { \
.attr = {.name = __stringify(_name), .mode = _mode, .owner = THIS_MODULE }, \
.show = _show, \
.store = _store, \
}
#define __ATTR_RO(_name) { \
.attr = { .name = __stringify(_name), .mode = 0444, .owner = THIS_MODULE }, \
.show = _name##_show, \
}
#define __ATTR_NULL { .attr = { .name = NULL } }
struct bin_attribute { struct bin_attribute {
struct attribute attr; struct attribute attr;
size_t size; size_t size;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment