interrupts.c (841B)
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 */ 12static void *int_seq_start(struct seq_file *f, loff_t *pos) 13{ 14 return (*pos <= nr_irqs) ? pos : NULL; 15} 16 17static void *int_seq_next(struct seq_file *f, void *v, loff_t *pos) 18{ 19 (*pos)++; 20 if (*pos > nr_irqs) 21 return NULL; 22 return pos; 23} 24 25static void int_seq_stop(struct seq_file *f, void *v) 26{ 27 /* Nothing to do */ 28} 29 30static 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 37static int __init proc_interrupts_init(void) 38{ 39 proc_create_seq("interrupts", 0, NULL, &int_seq_ops); 40 return 0; 41} 42fs_initcall(proc_interrupts_init);