Bluetooth: introduce DEFINE_SHOW_ATTRIBUTE() macro
Subsystems (4)
PATCH 1/1 Bluetooth: introduce DEFINE_SHOW_ATTRIBUTE() macro
This macro deduplicates a lot of similar code across the hci_debugfs.c module. Targeting to be moved to seq_file.h eventually.
--- net/bluetooth/hci_debugfs.c | 184 +++++--------------------------------------- 1 file changed, 18 insertions(+), 166 deletions(-)
net/bluetooth/hci_debugfs.c +18 -166
@@ -88,6 +88,9 @@ static int __name ## _show(struct seq_file *f, void *ptr) \return 0 ; \ } \ \ +DEFINE_SHOW_ATTRIBUTE(__name) + +#define DEFINE_SHOW_ATTRIBUTE (__name) \ static int __name ## _open(struct inode *inode, struct file *file) \ { \ return single_open(file, __name ## _show, inode->i_private); \
@@ -126,17 +129,7 @@ static int features_show(struct seq_file *f, void *ptr)return 0 ; } -static int features_open (struct inode *inode,struct file *file) -{ -return single_open (file, features_show, inode->i_private); -} - -static const struct file_operations features_fops = { - .open = features_open, - .read = seq_read, - .llseek = seq_lseek, - .release = single_release, -}; +DEFINE_SHOW_ATTRIBUTE (features);static int device_id_show (struct seq_file *f,void *ptr) {
@@ -150,17 +143,7 @@ static int device_id_show(struct seq_file *f, void *ptr)return 0 ; } -static int device_id_open (struct inode *inode,struct file *file) -{ -return single_open (file, device_id_show, inode->i_private); -} - -static const struct file_operations device_id_fops = { - .open = device_id_open, - .read = seq_read, - .llseek = seq_lseek, - .release = single_release, -}; +DEFINE_SHOW_ATTRIBUTE (device_id);static int device_list_show (struct seq_file *f,void *ptr) {
@@ -180,17 +163,7 @@ static int device_list_show(struct seq_file *f, void *ptr)return 0 ; } -static int device_list_open (struct inode *inode,struct file *file) -{ -return single_open (file, device_list_show, inode->i_private); -} - -static const struct file_operations device_list_fops = { - .open = device_list_open, - .read = seq_read, - .llseek = seq_lseek, - .release = single_release, -}; +DEFINE_SHOW_ATTRIBUTE (device_list);static int blacklist_show (struct seq_file *f,void *p) {
@@ -205,17 +178,7 @@ static int blacklist_show(struct seq_file *f, void *p)return 0 ; } -static int blacklist_open (struct inode *inode,struct file *file) -{ -return single_open (file, blacklist_show, inode->i_private); -} - -static const struct file_operations blacklist_fops = { - .open = blacklist_open, - .read = seq_read, - .llseek = seq_lseek, - .release = single_release, -}; +DEFINE_SHOW_ATTRIBUTE (blacklist);static int uuids_show (struct seq_file *f,void *p) {
@@ -240,17 +203,7 @@ static int uuids_show(struct seq_file *f, void *p)return 0 ; } -static int uuids_open (struct inode *inode,struct file *file) -{ -return single_open (file, uuids_show, inode->i_private); -} - -static const struct file_operations uuids_fops = { - .open = uuids_open, - .read = seq_read, - .llseek = seq_lseek, - .release = single_release, -}; +DEFINE_SHOW_ATTRIBUTE (uuids);static int remote_oob_show (struct seq_file *f,void *ptr) {
@@ -269,17 +222,7 @@ static int remote_oob_show(struct seq_file *f, void *ptr)return 0 ; } -static int remote_oob_open (struct inode *inode,struct file *file) -{ -return single_open (file, remote_oob_show, inode->i_private); -} - -static const struct file_operations remote_oob_fops = { - .open = remote_oob_open, - .read = seq_read, - .llseek = seq_lseek, - .release = single_release, -}; +DEFINE_SHOW_ATTRIBUTE (remote_oob);static int conn_info_min_age_set (void *data,u64 val) {
@@ -443,17 +386,7 @@ static int inquiry_cache_show(struct seq_file *f, void *p)return 0 ; } -static int inquiry_cache_open (struct inode *inode,struct file *file) -{ -return single_open (file, inquiry_cache_show, inode->i_private); -} - -static const struct file_operations inquiry_cache_fops = { - .open = inquiry_cache_open, - .read = seq_read, - .llseek = seq_lseek, - .release = single_release, -}; +DEFINE_SHOW_ATTRIBUTE (inquiry_cache);static int link_keys_show (struct seq_file *f,void *ptr) {
@@ -469,17 +402,7 @@ static int link_keys_show(struct seq_file *f, void *ptr)return 0 ; } -static int link_keys_open (struct inode *inode,struct file *file) -{ -return single_open (file, link_keys_show, inode->i_private); -} - -static const struct file_operations link_keys_fops = { - .open = link_keys_open, - .read = seq_read, - .llseek = seq_lseek, - .release = single_release, -}; +DEFINE_SHOW_ATTRIBUTE (link_keys);static int dev_class_show (struct seq_file *f,void *ptr) {
@@ -493,17 +416,7 @@ static int dev_class_show(struct seq_file *f, void *ptr)return 0 ; } -static int dev_class_open (struct inode *inode,struct file *file) -{ -return single_open (file, dev_class_show, inode->i_private); -} - -static const struct file_operations dev_class_fops = { - .open = dev_class_open, - .read = seq_read, - .llseek = seq_lseek, - .release = single_release, -}; +DEFINE_SHOW_ATTRIBUTE (dev_class);static int voice_setting_get (void *data,u64 *val) {
@@ -692,17 +605,7 @@ static int identity_show(struct seq_file *f, void *p)return 0 ; } -static int identity_open (struct inode *inode,struct file *file) -{ -return single_open (file, identity_show, inode->i_private); -} - -static const struct file_operations identity_fops = { - .open = identity_open, - .read = seq_read, - .llseek = seq_lseek, - .release = single_release, -}; +DEFINE_SHOW_ATTRIBUTE (identity);static int rpa_timeout_set (void *data,u64 val) {
@@ -746,17 +649,7 @@ static int random_address_show(struct seq_file *f, void *p)return 0 ; } -static int random_address_open (struct inode *inode,struct file *file) -{ -return single_open (file, random_address_show, inode->i_private); -} - -static const struct file_operations random_address_fops = { - .open = random_address_open, - .read = seq_read, - .llseek = seq_lseek, - .release = single_release, -}; +DEFINE_SHOW_ATTRIBUTE (random_address);static int static_address_show (struct seq_file *f,void *p) {
@@ -769,17 +662,7 @@ static int static_address_show(struct seq_file *f, void *p)return 0 ; } -static int static_address_open (struct inode *inode,struct file *file) -{ -return single_open (file, static_address_show, inode->i_private); -} - -static const struct file_operations static_address_fops = { - .open = static_address_open, - .read = seq_read, - .llseek = seq_lseek, - .release = single_release, -}; +DEFINE_SHOW_ATTRIBUTE (static_address); static ssize_t force_static_address_read(struct file *file, char __user *user_buf,
@@ -841,17 +724,7 @@ static int white_list_show(struct seq_file *f, void *ptr)return 0 ; } -static int white_list_open (struct inode *inode,struct file *file) -{ -return single_open (file, white_list_show, inode->i_private); -} - -static const struct file_operations white_list_fops = { - .open = white_list_open, - .read = seq_read, - .llseek = seq_lseek, - .release = single_release, -}; +DEFINE_SHOW_ATTRIBUTE (white_list);static int identity_resolving_keys_show (struct seq_file *f,void *ptr) {
@@ -869,18 +742,7 @@ static int identity_resolving_keys_show(struct seq_file *f, void *ptr)return 0 ; } -static int identity_resolving_keys_open (struct inode *inode,struct file *file) -{ -return single_open (file, identity_resolving_keys_show, - inode->i_private); -} - -static const struct file_operations identity_resolving_keys_fops = { - .open = identity_resolving_keys_open, - .read = seq_read, - .llseek = seq_lseek, - .release = single_release, -}; +DEFINE_SHOW_ATTRIBUTE (identity_resolving_keys);static int long_term_keys_show (struct seq_file *f,void *ptr) {
@@ -898,17 +760,7 @@ static int long_term_keys_show(struct seq_file *f, void *ptr)return 0 ; } -static int long_term_keys_open (struct inode *inode,struct file *file) -{ -return single_open (file, long_term_keys_show, inode->i_private); -} - -static const struct file_operations long_term_keys_fops = { - .open = long_term_keys_open, - .read = seq_read, - .llseek = seq_lseek, - .release = single_release, -}; +DEFINE_SHOW_ATTRIBUTE (long_term_keys);static int conn_min_interval_set (void *data,u64 val) {
Signature · 1 line
2.15.0
Quoted 7 lines · Andy Shevchenko
This macro deduplicates a lot of similar code across the
hci_debugfs.cmodule. Targeting to be moved toseq_file.heventually.Signed-off-by Andy Shevchenko <[email protected]>--- net/bluetooth/hci_debugfs.c | 184 +++++--------------------------------------- 1 file changed, 18 insertions(+), 166 deletions(-)
Looks like a good idea, but below, there is a use of DEFINE_SHOW_ATTRIBUTE() before it is #defined.
net/bluetooth/hci_debugfs.c static int __name ## _show(struct seq_file *f, void *ptr) \ · line 91
Quoted 9 lines
net/bluetooth/hci_debugfs.c +1
-0@@ -88,6 +88,9 @@ static int __name ## _show(struct seq_file *f, void *ptr) \return 0 ; \ } \ \ +DEFINE_SHOW_ATTRIBUTE (__name)
eh?
Quoted 4 lines
net/bluetooth/hci_debugfs.c +1
-0+> +#define DEFINE_SHOW_ATTRIBUTE(__name) \ static int __name ## _open(struct inode *inode, struct file *file) \ { \ return single_open(file, __name ## _show, inode->i_private); \
Signature · 1 line
~Randy
Quoted 12 lines · Randy Dunlap
Quoted 7 lines · Andy Shevchenko
This macro deduplicates a lot of similar code across the
hci_debugfs.cmodule. Targeting to be moved toseq_file.heventually.Signed-off-by Andy Shevchenko <[email protected]>--- net/bluetooth/hci_debugfs.c | 184 +++++--------------------------------------- 1 file changed, 18 insertions(+), 166 deletions(-)Looks like a good idea, but below, there is a use of
DEFINE_SHOW_ATTRIBUTE()before it is #defined.
Quoted 11 lines
net/bluetooth/hci_debugfs.c static int __name ## _show(struct seq_file *f, void *ptr) \ · line 91
Quoted 9 lines
net/bluetooth/hci_debugfs.c +1
-0@@ -88,6 +88,9 @@ static int __name ## _show(struct seq_file *f, void *ptr) \return 0 ; \ } \ \ +DEFINE_SHOW_ATTRIBUTE (__name)eh?
OK, it's a continuation of the macro above it.
Sorry about that.
Quoted 6 lines
Quoted 4 lines
net/bluetooth/hci_debugfs.c +1
-0+> +#define DEFINE_SHOW_ATTRIBUTE(__name) \ static int __name ## _open(struct inode *inode, struct file *file) \ { \ return single_open(file, __name ## _show, inode->i_private); \
Signature · 1 line
~Randy
A message that is not in the archive (sent off-list or not yet received): 2404941a-6e4a-3665-f737-00b48819d204-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org
Quoted 6 lines · Randy Dunlap
Quoted 4 lines · Randy Dunlap
Quoted 3 lines · Andy Shevchenko
This macro deduplicates a lot of similar code across the
hci_debugfs.c
module. Targeting to be moved toseq_file.heventually
Quoted 6 lines
Quoted 3 lines
Quoted 1 line
+DEFINE_SHOW_ATTRIBUTE(__name)
eh?
OK, it's a continuation of the macro above it.
Sorry about that.
NP.
It's just for better looking patch, I can move code around of course, but as I stated in commit message I would like eventually to move it to seq_file.h for everyone to use (there are basically a lot of users already).
Quoted 1 line
Quoted 1 line
Quoted 1 line
+> +#define
DEFINE_SHOW_ATTRIBUTE(__name)
Signature · 2 lines
Andy Shevchenko <[email protected]> Intel Finland Oy
A message that is not in the archive (sent off-list or not yet received): 20171122211546.5682-1-andriy.shevchenko-VuQAYsv1563Yd54FQh9/[email protected]
Hi Andy,
Quoted 7 lines
This macro deduplicates a lot of similar code across the
hci_debugfs.cmodule. Targeting to be moved toseq_file.heventually.Signed-off-by Andy Shevchenko <[email protected]>---
net/bluetooth/hci_debugfs.c| 184 +++++---------------------------------------1 file changed, 18 insertions(+), 166 deletions(-)
patch has been applied to bluetooth-next tree.
Regards
Marcel