Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 61693
b: refs/heads/master
c: 542b258
h: refs/heads/master
i:
  61691: 31fa788
v: v3
  • Loading branch information
Douglas Thompson authored and Linus Torvalds committed Jul 19, 2007
1 parent 9b54a7e commit 8e3a87d
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 108 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 079708b9173595bf74b31b14c36e946359ae6c7e
refs/heads/master: 542b25881a6ae1bf0804d4d39bf8b4d2cfc25e42
107 changes: 0 additions & 107 deletions trunk/drivers/edac/edac_device_sysfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,113 +21,6 @@
#define to_edacdev(k) container_of(k, struct edac_device_ctl_info, kobj)
#define to_edacdev_attr(a) container_of(a, struct edacdev_attribute, attr)

#ifdef DKT

static ssize_t edac_dev_ue_count_show(struct edac_device_ctl_info *edac_dev,
char *data)
{
return sprintf(data, "%d\n", edac_dev->ue_count);
}

static ssize_t edac_dev_ce_count_show(struct edac_device_ctl_info *edac_dev,
char *data)
{
return sprintf(data, "%d\n", edac_dev->ce_count);
}

static ssize_t edac_dev_seconds_show(struct edac_device_ctl_info *edac_dev,
char *data)
{
return sprintf(data, "%ld\n", (jiffies - edac_dev->start_time) / HZ);
}

static ssize_t edac_dev_ctl_name_show(struct edac_device_ctl_info *edac_dev,
char *data)
{
return sprintf(data, "%s\n", edac_dev->ctl_name);
}

struct edacdev_attribute {
struct attribute attr;
ssize_t(*show) (struct edac_device_ctl_info *, char *);
ssize_t(*store) (struct edac_device_ctl_info *, const char *, size_t);
};

/* EDAC DEVICE show/store functions for top most object */
static ssize_t edacdev_show(struct kobject *kobj, struct attribute *attr,
char *buffer)
{
struct edac_device_ctl_info *edac_dev = to_edacdev(kobj);
struct edacdev_attribute *edacdev_attr = to_edacdev_attr(attr);

if (edacdev_attr->show)
return edacdev_attr->show(edac_dev, buffer);

return -EIO;
}

static ssize_t edacdev_store(struct kobject *kobj, struct attribute *attr,
const char *buffer, size_t count)
{
struct edac_device_ctl_info *edac_dev = to_edacdev(kobj);
struct edacdev_attribute *edacdev_attr = to_edacdev_attr(attr);

if (edacdev_attr->store)
return edacdev_attr->store(edac_dev, buffer, count);

return -EIO;
}

static struct sysfs_ops edac_dev_ops = {
.show = edacdev_show,
.store = edacdev_store
};

#define EDACDEV_ATTR(_name,_mode,_show,_store) \
static struct edacdev_attribute edac_dev_attr_##_name = { \
.attr = {.name = __stringify(_name), .mode = _mode }, \
.show = _show, \
.store = _store, \
};

/* default Control file */
EDACDEV_ATTR(reset_counters, S_IWUSR, NULL, edac_dev_reset_counters_store);

/* default Attribute files */
EDACDEV_ATTR(mc_name, S_IRUGO, edac_dev_ctl_name_show, NULL);
EDACDEV_ATTR(seconds_since_reset, S_IRUGO, edac_dev_seconds_show, NULL);
EDACDEV_ATTR(ue_count, S_IRUGO, edac_dev_ue_count_show, NULL);
EDACDEV_ATTR(ce_count, S_IRUGO, edac_dev_ce_count_show, NULL);

static struct edacdev_attribute *edacdev_attr[] = {
&edacdev_attr_reset_counters,
&edacdev_attr_mc_name,
&edacdev_attr_seconds_since_reset,
&edacdev_attr_ue_count,
&edacdev_attr_ce_count,
NULL
};

/*
* Release of a Edac Device controlling instance
*/
static void edac_dev_instance_release(struct kobject *kobj)
{
struct edac_device_ctl_info *edac_dev;

edac_dev = to_edacdev(kobj);
debugf0("%s() idx=%d\n", __func__, edac_dev->dev_idx);
complete(&edac_dev->kobj_complete);
}

static struct kobj_type ktype_device = {
.release = edac_dev_instance_release,
.sysfs_ops = &edacdev_ops,
.default_attrs = (struct attribute **)edacdev_attr,
};

#endif

/************************** edac_device sysfs code and data **************/

/*
Expand Down

0 comments on commit 8e3a87d

Please sign in to comment.