linux/drivers/ras/debugfs.c
<<
>>
Prefs
   1#include <linux/debugfs.h>
   2
   3struct dentry *ras_debugfs_dir;
   4
   5static atomic_t trace_count = ATOMIC_INIT(0);
   6
   7int ras_userspace_consumers(void)
   8{
   9        return atomic_read(&trace_count);
  10}
  11EXPORT_SYMBOL_GPL(ras_userspace_consumers);
  12
  13static int trace_show(struct seq_file *m, void *v)
  14{
  15        return atomic_read(&trace_count);
  16}
  17
  18static 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
  24static int trace_release(struct inode *inode, struct file *file)
  25{
  26        atomic_dec(&trace_count);
  27        return single_release(inode, file);
  28}
  29
  30static const struct file_operations trace_fops = {
  31        .open    = trace_open,
  32        .read    = seq_read,
  33        .llseek  = seq_lseek,
  34        .release = trace_release,
  35};
  36
  37int __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
  53void __init ras_debugfs_init(void)
  54{
  55        ras_debugfs_dir = debugfs_create_dir("ras", NULL);
  56}
  57