#include <linux/module.h>
#include <linux/string.h>
#include <linux/printk.h>
#include <linux/slab.h>
#include <linux/list.h>
#include <linux/debugfs.h>
#include <linux/rculist.h>
#include "internal.h"
static LIST_HEAD(unloaded_tainted_modules);
extern struct dentry *mod_debugfs_root;
int try_add_tainted_module(struct module *mod)
{ … }
void print_unloaded_tainted_modules(void)
{ … }
#ifdef CONFIG_DEBUG_FS
static void *unloaded_tainted_modules_seq_start(struct seq_file *m, loff_t *pos)
__acquires(rcu)
{ … }
static void *unloaded_tainted_modules_seq_next(struct seq_file *m, void *p, loff_t *pos)
{ … }
static void unloaded_tainted_modules_seq_stop(struct seq_file *m, void *p)
__releases(rcu)
{ … }
static int unloaded_tainted_modules_seq_show(struct seq_file *m, void *p)
{ … }
static const struct seq_operations unloaded_tainted_modules_seq_ops = …;
static int unloaded_tainted_modules_open(struct inode *inode, struct file *file)
{ … }
static const struct file_operations unloaded_tainted_modules_fops = …;
static int __init unloaded_tainted_modules_init(void)
{ … }
module_init(…) …;
#endif