1/* 2 * Copyright (C) 2003 Christoph Hellwig. 3 * Released under GPL v2. 4 */ 5 6#include <linux/errno.h> 7#include <linux/init.h> 8#include <linux/kernel.h> 9#include <linux/sysctl.h> 10 11#include "scsi_logging.h" 12#include "scsi_priv.h" 13 14 15static struct ctl_table scsi_table[] = { 16 { .procname = "logging_level", 17 .data = &scsi_logging_level, 18 .maxlen = sizeof(scsi_logging_level), 19 .mode = 0644, 20 .proc_handler = proc_dointvec }, 21 { } 22}; 23 24static struct ctl_table scsi_dir_table[] = { 25 { .procname = "scsi", 26 .mode = 0555, 27 .child = scsi_table }, 28 { } 29}; 30 31static struct ctl_table scsi_root_table[] = { 32 { .procname = "dev", 33 .mode = 0555, 34 .child = scsi_dir_table }, 35 { } 36}; 37 38static struct ctl_table_header *scsi_table_header; 39 40int __init scsi_init_sysctl(void) 41{ 42 scsi_table_header = register_sysctl_table(scsi_root_table); 43 if (!scsi_table_header) 44 return -ENOMEM; 45 return 0; 46} 47 48void scsi_exit_sysctl(void) 49{ 50 unregister_sysctl_table(scsi_table_header); 51} 52