1 // SPDX-License-Identifier: GPL-2.0
3 #include <linux/init.h>
4 #include <linux/interrupt.h>
5 #include <linux/irqnr.h>
6 #include <linux/proc_fs.h>
7 #include <linux/seq_file.h>
12 static void *int_seq_start(struct seq_file
*f
, loff_t
*pos
)
14 return (*pos
<= nr_irqs
) ? pos
: NULL
;
17 static void *int_seq_next(struct seq_file
*f
, void *v
, loff_t
*pos
)
25 static void int_seq_stop(struct seq_file
*f
, void *v
)
30 static const struct seq_operations int_seq_ops
= {
31 .start
= int_seq_start
,
34 .show
= show_interrupts
37 static int interrupts_open(struct inode
*inode
, struct file
*filp
)
39 return seq_open(filp
, &int_seq_ops
);
42 static const struct file_operations proc_interrupts_operations
= {
43 .open
= interrupts_open
,
46 .release
= seq_release
,
49 static int __init
proc_interrupts_init(void)
51 proc_create("interrupts", 0, NULL
, &proc_interrupts_operations
);
54 fs_initcall(proc_interrupts_init
);