Skip to content
Snippets Groups Projects
Commit 2727be57 authored by Florian Pose's avatar Florian Pose
Browse files

Macro for SysFS attribute definition

parent 338d8a83
No related branches found
No related tags found
No related merge requests found
......@@ -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,
......
......@@ -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);
......
......@@ -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,
......
......@@ -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__
......
......@@ -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,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment