#include <linux/config.h> #include <linux/module.h> #include <linux/fs.h> #include <linux/proc_fs.h> #include <linux/init.h> extern struct proc_dir_entry *proc_sys_root; #ifdef CONFIG_SYSCTL EXPORT_SYMBOL(proc_sys_root); #endif EXPORT_SYMBOL(proc_symlink); EXPORT_SYMBOL(proc_mknod); EXPORT_SYMBOL(proc_mkdir); EXPORT_SYMBOL(create_proc_entry); EXPORT_SYMBOL(remove_proc_entry); EXPORT_SYMBOL(proc_root); EXPORT_SYMBOL(proc_root_fs); EXPORT_SYMBOL(proc_net); EXPORT_SYMBOL(proc_bus); EXPORT_SYMBOL(proc_root_driver); static DECLARE_FSTYPE(proc_fs_type, "proc", proc_read_super, FS_SINGLE); 25 static int __init init_proc_fs(void) { int err = register_filesystem(&proc_fs_type); 28 if (!err) { proc_mnt = kern_mount(&proc_fs_type); err = PTR_ERR(proc_mnt); 31 if (IS_ERR(proc_mnt)) unregister_filesystem(&proc_fs_type); 33 else err = 0; } 36 return err; } 39 static void __exit exit_proc_fs(void) { unregister_filesystem(&proc_fs_type); kern_umount(proc_mnt); } module_init(init_proc_fs) module_exit(exit_proc_fs)