1
2
3
4
5
6
7
8
9
10#include <linux/module.h>
11#include <linux/kernel.h>
12#include <linux/init.h>
13#include <linux/list.h>
14#include <linux/spinlock.h>
15#include <linux/device.h>
16#include <linux/timer.h>
17#include <linux/err.h>
18#include <linux/ctype.h>
19#include "merisc.h"
20
21static ssize_t merisc_model_show(struct class *class, char *buf)
22{
23 ssize_t ret = 0;
24
25 sprintf(buf, "%s\n", merisc_model());
26 ret = strlen(buf) + 1;
27
28 return ret;
29}
30
31static ssize_t merisc_revision_show(struct class *class, char *buf)
32{
33 ssize_t ret = 0;
34
35 sprintf(buf, "%s\n", merisc_revision());
36 ret = strlen(buf) + 1;
37
38 return ret;
39}
40
41static struct class_attribute merisc_class_attrs[] = {
42 __ATTR(model, S_IRUGO, merisc_model_show, NULL),
43 __ATTR(revision, S_IRUGO, merisc_revision_show, NULL),
44 __ATTR_NULL,
45};
46
47struct class merisc_class = {
48 .name = "merisc",
49 .owner = THIS_MODULE,
50 .class_attrs = merisc_class_attrs,
51};
52
53static int __init merisc_sysfs_init(void)
54{
55 int status;
56
57 status = class_register(&merisc_class);
58 if (status < 0)
59 return status;
60
61 return 0;
62}
63
64postcore_initcall(merisc_sysfs_init);
65