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