#include <linux/cpumask.h>
#include <linux/fs.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/kernel_stat.h>
#include <linux/proc_fs.h>
#include <linux/sched.h>
#include <linux/sched/stat.h>
#include <linux/seq_file.h>
#include <linux/slab.h>
#include <linux/time.h>
#include <linux/time_namespace.h>
#include <linux/irqnr.h>
#include <linux/sched/cputime.h>
#include <linux/tick.h>
#ifndef arch_irq_stat_cpu
#define arch_irq_stat_cpu …
#endif
#ifndef arch_irq_stat
#define arch_irq_stat …
#endif
u64 get_idle_time(struct kernel_cpustat *kcs, int cpu)
{ … }
static u64 get_iowait_time(struct kernel_cpustat *kcs, int cpu)
{ … }
static void show_irq_gap(struct seq_file *p, unsigned int gap)
{ … }
static void show_all_irqs(struct seq_file *p)
{ … }
static int show_stat(struct seq_file *p, void *v)
{ … }
static int stat_open(struct inode *inode, struct file *file)
{ … }
static const struct proc_ops stat_proc_ops = …;
static int __init proc_stat_init(void)
{ … }
fs_initcall(proc_stat_init);