#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;
}