On Wed, Jan 27, 2021 at 12:19:22PM +0800, Orson Zhai wrote:
> 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,                                                \
> +}

Do you have a real user for this?  Using "raw" kobject attributes is
rare and should not be used often, so who needs this?

thanks,

greg k-h

Reply via email to