Branch data Line data Source code
1 : : // SPDX-License-Identifier: GPL-2.0 2 : : #include <linux/fs.h> 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> 8 : : 9 : : /* 10 : : * /proc/interrupts 11 : : */ 12 : 0 : static void *int_seq_start(struct seq_file *f, loff_t *pos) 13 : : { 14 [ # # ]: 0 : return (*pos <= nr_irqs) ? pos : NULL; 15 : : } 16 : : 17 : 0 : static void *int_seq_next(struct seq_file *f, void *v, loff_t *pos) 18 : : { 19 : 0 : (*pos)++; 20 [ # # ]: 0 : if (*pos > nr_irqs) 21 : 0 : return NULL; 22 : : return pos; 23 : : } 24 : : 25 : 0 : static void int_seq_stop(struct seq_file *f, void *v) 26 : : { 27 : : /* Nothing to do */ 28 : 0 : } 29 : : 30 : : static const struct seq_operations int_seq_ops = { 31 : : .start = int_seq_start, 32 : : .next = int_seq_next, 33 : : .stop = int_seq_stop, 34 : : .show = show_interrupts 35 : : }; 36 : : 37 : 30 : static int __init proc_interrupts_init(void) 38 : : { 39 : 30 : proc_create_seq("interrupts", 0, NULL, &int_seq_ops); 40 : 30 : return 0; 41 : : } 42 : : fs_initcall(proc_interrupts_init);