]> git.karo-electronics.de Git - linux-beck.git/blob - drivers/ras/debugfs.c
Merge tag 'xfs-for-linus-4.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-beck.git] / drivers / ras / debugfs.c
1 #include <linux/debugfs.h>
2
3 static struct dentry *ras_debugfs_dir;
4
5 static atomic_t trace_count = ATOMIC_INIT(0);
6
7 int ras_userspace_consumers(void)
8 {
9         return atomic_read(&trace_count);
10 }
11 EXPORT_SYMBOL_GPL(ras_userspace_consumers);
12
13 static int trace_show(struct seq_file *m, void *v)
14 {
15         return atomic_read(&trace_count);
16 }
17
18 static int trace_open(struct inode *inode, struct file *file)
19 {
20         atomic_inc(&trace_count);
21         return single_open(file, trace_show, NULL);
22 }
23
24 static int trace_release(struct inode *inode, struct file *file)
25 {
26         atomic_dec(&trace_count);
27         return single_release(inode, file);
28 }
29
30 static const struct file_operations trace_fops = {
31         .open    = trace_open,
32         .read    = seq_read,
33         .llseek  = seq_lseek,
34         .release = trace_release,
35 };
36
37 int __init ras_add_daemon_trace(void)
38 {
39         struct dentry *fentry;
40
41         if (!ras_debugfs_dir)
42                 return -ENOENT;
43
44         fentry = debugfs_create_file("daemon_active", S_IRUSR, ras_debugfs_dir,
45                                      NULL, &trace_fops);
46         if (!fentry)
47                 return -ENODEV;
48
49         return 0;
50
51 }
52
53 void __init ras_debugfs_init(void)
54 {
55         ras_debugfs_dir = debugfs_create_dir("ras", NULL);
56 }