0001
0002
0003
0004
0005
0006 #include <linux/errno.h>
0007 #include <linux/init.h>
0008 #include <linux/kernel.h>
0009 #include <linux/sysctl.h>
0010
0011 #include "scsi_logging.h"
0012 #include "scsi_priv.h"
0013
0014
0015 static struct ctl_table scsi_table[] = {
0016 { .procname = "logging_level",
0017 .data = &scsi_logging_level,
0018 .maxlen = sizeof(scsi_logging_level),
0019 .mode = 0644,
0020 .proc_handler = proc_dointvec },
0021 { }
0022 };
0023
0024 static struct ctl_table scsi_dir_table[] = {
0025 { .procname = "scsi",
0026 .mode = 0555,
0027 .child = scsi_table },
0028 { }
0029 };
0030
0031 static struct ctl_table scsi_root_table[] = {
0032 { .procname = "dev",
0033 .mode = 0555,
0034 .child = scsi_dir_table },
0035 { }
0036 };
0037
0038 static struct ctl_table_header *scsi_table_header;
0039
0040 int __init scsi_init_sysctl(void)
0041 {
0042 scsi_table_header = register_sysctl_table(scsi_root_table);
0043 if (!scsi_table_header)
0044 return -ENOMEM;
0045 return 0;
0046 }
0047
0048 void scsi_exit_sysctl(void)
0049 {
0050 unregister_sysctl_table(scsi_table_header);
0051 }