October 2017
Intermediate to advanced
586 pages
14h 8m
English
Apart from default attributes provided by the kobject embedded in your device structure, you can create custom ones. The structure used for this purpose is struct device_attribute, which is nothing but a wrapping around the standard struct attribute, and a set of callbacks to show/store the value of the attribute:
struct device_attribute {
struct attribute attr;
ssize_t (*show)(struct device *dev,
struct device_attribute *attr,
char *buf);
ssize_t (*store)(struct device *dev,
struct device_attribute *attr,
const char *buf, size_t count);
};
Their declaration is done through the DEVICE_ATTR macro:
DEVICE_ATTR(_name, _mode, _show, _store);
Whenever you declare a device attribute using DEVICE_ATTR, the prefix dev_attr_ is ...