#include <linux/module.h> #include <linux/fs.h> #include <linux/proc_fs.h> /* * This is all required so that if we load all of scsi as a module, * that the scsi code will be able to talk to the /proc/scsi handling * in the procfs. */ extern int (* dispatch_scsi_info_ptr) (int ino, char *buffer, char **start, off_t offset, int length, int inout); extern struct inode_operations proc_scsi_inode_operations; static struct symbol_table procfs_syms = { /* Should this be surrounded with "#ifdef CONFIG_MODULES" ? */ #include <linux/symtab_begin.h> X(proc_register), X(proc_register_dynamic), X(proc_unregister), X(proc_root), X(in_group_p), X(generate_cluster), X(proc_net_inode_operations), X(proc_net), /* * This is required so that if we load scsi later, that the * scsi code can attach to /proc/scsi in the correct manner. */ X(proc_scsi), X(proc_scsi_inode_operations), X(dispatch_scsi_info_ptr), #include <linux/symtab_end.h> }; static struct file_system_type proc_fs_type = { proc_read_super, "proc", 0, NULL }; int init_proc_fs(void) { int status; if ((status = register_filesystem(&proc_fs_type)) == 0) status = register_symtab(&procfs_syms); return status; }