In some circumstances, multiple __ATTR_RO attributes need to be assigned
with a single show function.

Add this macro to make life easier with simple code.

Signed-off-by: Orson Zhai <orsonz...@gmail.com>
---
 Documentation/filesystems/sysfs.rst | 2 ++
 include/linux/sysfs.h               | 5 +++++
 2 files changed, 7 insertions(+)

diff --git a/Documentation/filesystems/sysfs.rst 
b/Documentation/filesystems/sysfs.rst
index 004d490..0e2274a 100644
--- a/Documentation/filesystems/sysfs.rst
+++ b/Documentation/filesystems/sysfs.rst
@@ -141,6 +141,8 @@ __ATTR_RO_MODE(name, mode):
                 fore more restrictive RO access currently
                  only use case is the EFI System Resource Table
                  (see drivers/firmware/efi/esrt.c)
+__ATTR_RO_SHOW(name, show):
+                assumes default mode 0444 with specified show.
 __ATTR_RW(name):
                 assumes default name_show, name_store and setting
                  mode to 0644.
diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h
index 2caa34c..c851592 100644
--- a/include/linux/sysfs.h
+++ b/include/linux/sysfs.h
@@ -117,6 +117,11 @@ struct attribute_group {
        .show   = _name##_show,                                         \
 }
 
+#define __ATTR_RO_SHOW(_name, _show) {                                 \
+       .attr   = { .name = __stringify(_name), .mode = 0444 },         \
+       .show   = _show,                                                \
+}
+
 #define __ATTR_RO_MODE(_name, _mode) {                                 \
        .attr   = { .name = __stringify(_name),                         \
                    .mode = VERIFY_OCTAL_PERMISSIONS(_mode) },          \
-- 
2.7.4

Reply via email to