From 2727be57d2917c6fe0876023e33f7f45554a900f Mon Sep 17 00:00:00 2001 From: Florian Pose <fp@igh-essen.com> Date: Tue, 11 Apr 2006 10:17:30 +0000 Subject: [PATCH] Macro for SysFS attribute definition --- master/domain.c | 6 +----- master/globals.h | 8 ++++++++ master/master.c | 6 +----- master/module.c | 4 +--- master/slave.c | 24 +++++------------------- 5 files changed, 16 insertions(+), 32 deletions(-) diff --git a/master/domain.c b/master/domain.c index f361e2fb..cf3f5cef 100644 --- a/master/domain.c +++ b/master/domain.c @@ -19,11 +19,7 @@ ssize_t ec_show_domain_attribute(struct kobject *, struct attribute *, char *); /*****************************************************************************/ -static struct attribute attr_data_size = { - .name = "data_size", - .owner = THIS_MODULE, - .mode = S_IRUGO -}; +EC_SYSFS_READ_ATTR(data_size); static struct attribute *def_attrs[] = { &attr_data_size, diff --git a/master/globals.h b/master/globals.h index 08807e9e..d8f93e10 100644 --- a/master/globals.h +++ b/master/globals.h @@ -43,6 +43,14 @@ #define EC_DBG(fmt, args...) \ printk(KERN_DEBUG "EtherCAT DEBUG: " fmt, ##args) +#define EC_LIT(X) #X +#define EC_STR(X) EC_LIT(X) + +#define EC_SYSFS_READ_ATTR(NAME) \ + static struct attribute attr_##NAME = { \ + .name = EC_STR(NAME), .owner = THIS_MODULE, .mode = S_IRUGO \ + } + /*****************************************************************************/ extern void ec_print_data(const uint8_t *, size_t); diff --git a/master/master.c b/master/master.c index 80ffd769..347628c5 100644 --- a/master/master.c +++ b/master/master.c @@ -29,11 +29,7 @@ ssize_t ec_show_master_attribute(struct kobject *, struct attribute *, char *); /*****************************************************************************/ -static struct attribute attr_slave_count = { - .name = "slave_count", - .owner = THIS_MODULE, - .mode = S_IRUGO -}; +EC_SYSFS_READ_ATTR(slave_count); static struct attribute *ec_def_attrs[] = { &attr_slave_count, diff --git a/master/module.c b/master/module.c index b4496e4e..ab1a3717 100644 --- a/master/module.c +++ b/master/module.c @@ -22,6 +22,7 @@ #include <linux/kernel.h> #include <linux/init.h> +#include "globals.h" #include "master.h" #include "device.h" @@ -32,9 +33,6 @@ void __exit ec_cleanup_module(void); /*****************************************************************************/ -#define EC_LIT(X) #X -#define EC_STR(X) EC_LIT(X) - #define COMPILE_INFO "Revision " EC_STR(SVNREV) \ ", compiled by " EC_STR(USER) \ " at " __DATE__ " " __TIME__ diff --git a/master/slave.c b/master/slave.c index afd30aed..82a56a81 100644 --- a/master/slave.c +++ b/master/slave.c @@ -28,25 +28,11 @@ ssize_t ec_show_slave_attribute(struct kobject *, struct attribute *, char *); /*****************************************************************************/ -static struct attribute attr_ring_position = { - .name = "ring_position", .owner = THIS_MODULE, .mode = S_IRUGO -}; - -static struct attribute attr_station_address = { - .name = "station_address", .owner = THIS_MODULE, .mode = S_IRUGO -}; - -static struct attribute attr_vendor_name = { - .name = "vendor_name", .owner = THIS_MODULE, .mode = S_IRUGO -}; - -static struct attribute attr_product_name = { - .name = "product_name", .owner = THIS_MODULE, .mode = S_IRUGO -}; - -static struct attribute attr_product_desc = { - .name = "product_description", .owner = THIS_MODULE, .mode = S_IRUGO -}; +EC_SYSFS_READ_ATTR(ring_position); +EC_SYSFS_READ_ATTR(station_address); +EC_SYSFS_READ_ATTR(vendor_name); +EC_SYSFS_READ_ATTR(product_name); +EC_SYSFS_READ_ATTR(product_desc); static struct attribute *def_attrs[] = { &attr_ring_position, -- GitLab