1 // SPDX-License-Identifier: GPL-2.0-only
2 #include <linux/debugfs.h>
6 static struct dentry
*ras_debugfs_dir
;
8 static atomic_t trace_count
= ATOMIC_INIT(0);
10 struct dentry
*ras_get_debugfs_root(void)
12 return ras_debugfs_dir
;
14 EXPORT_SYMBOL_GPL(ras_get_debugfs_root
);
16 int ras_userspace_consumers(void)
18 return atomic_read(&trace_count
);
20 EXPORT_SYMBOL_GPL(ras_userspace_consumers
);
22 static int trace_show(struct seq_file
*m
, void *v
)
27 static int trace_open(struct inode
*inode
, struct file
*file
)
29 atomic_inc(&trace_count
);
30 return single_open(file
, trace_show
, NULL
);
33 static int trace_release(struct inode
*inode
, struct file
*file
)
35 atomic_dec(&trace_count
);
36 return single_release(inode
, file
);
39 static const struct file_operations trace_fops
= {
43 .release
= trace_release
,
46 int __init
ras_add_daemon_trace(void)
48 struct dentry
*fentry
;
53 fentry
= debugfs_create_file("daemon_active", S_IRUSR
, ras_debugfs_dir
,
62 void __init
ras_debugfs_init(void)
64 ras_debugfs_dir
= debugfs_create_dir("ras", NULL
);