aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXingui Yang <[email protected]>2023-09-05 02:48:33 +0000
committerAndrew Morton <[email protected]>2023-10-04 10:41:57 -0700
commit9cba82bba500e3ce875381350f289cfb3aa633ba (patch)
tree906d44fe52ab8b01a5ceb1ad722cdcaa33deba6a
parent9734fe4dc22052d8010cc0b68b092fe5335ccb31 (diff)
seq_file: add helper macro to define attribute for rw file
Patch series "Add helper macro DEFINE_SHOW_STORE_ATTRIBUTE() at seq_file.c", v6. We already own DEFINE_SHOW_ATTRIBUTE() helper macro for defining attribute for read-only file, but we found many of drivers also want a helper macro for read-write file too. So we add this helper macro to reduce duplicated code. This patch (of 3): We already own DEFINE_SHOW_ATTRIBUTE() helper macro for defining attribute for read-only file, but many of drivers want a helper macro for read-write file too. So we add DEFINE_SHOW_STORE_ATTRIBUTE() helper to reduce duplicated code. Link: https://lkml.kernel.org/r/[email protected] Link: https://lkml.kernel.org/r/[email protected] Signed-off-by: Luo Jiaxing <[email protected]> Co-developed-by: Xingui Yang <[email protected]> Signed-off-by: Xingui Yang <[email protected]> Reviewed-by: Andy Shevchenko <[email protected]> Cc: Al Viro <[email protected]> Cc: Animesh Manna <[email protected]> Cc: Anshuman Gupta <[email protected]> Cc: Damien Le Moal <[email protected]> Cc: Felipe Balbi <[email protected]> Cc: Greg Kroah-Hartman <[email protected]> Cc: Himanshu Madhani <[email protected]> Cc: James Bottomley <[email protected]> Cc: John Garry <[email protected]> Cc: Martin K. Petersen <[email protected]> Cc: Uma Shankar <[email protected]> Cc: Xiang Chen <[email protected]> Cc: Zeng Tao <[email protected]> Signed-off-by: Andrew Morton <[email protected]>
-rw-r--r--include/linux/seq_file.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/include/linux/seq_file.h b/include/linux/seq_file.h
index 386ab580b839..234bcdb1fba4 100644
--- a/include/linux/seq_file.h
+++ b/include/linux/seq_file.h
@@ -207,6 +207,21 @@ static const struct file_operations __name ## _fops = { \
.release = single_release, \
}
+#define DEFINE_SHOW_STORE_ATTRIBUTE(__name) \
+static int __name ## _open(struct inode *inode, struct file *file) \
+{ \
+ return single_open(file, __name ## _show, inode->i_private); \
+} \
+ \
+static const struct file_operations __name ## _fops = { \
+ .owner = THIS_MODULE, \
+ .open = __name ## _open, \
+ .read = seq_read, \
+ .write = __name ## _write, \
+ .llseek = seq_lseek, \
+ .release = single_release, \
+}
+
#define DEFINE_PROC_SHOW_ATTRIBUTE(__name) \
static int __name ## _open(struct inode *inode, struct file *file) \
{ \