11da177e4SLinus Torvalds /* 21da177e4SLinus Torvalds * Copyright (C) 2003 Christoph Hellwig. 31da177e4SLinus Torvalds * Released under GPL v2. 41da177e4SLinus Torvalds */ 51da177e4SLinus Torvalds 61da177e4SLinus Torvalds #include <linux/errno.h> 71da177e4SLinus Torvalds #include <linux/init.h> 81da177e4SLinus Torvalds #include <linux/kernel.h> 91da177e4SLinus Torvalds #include <linux/sysctl.h> 101da177e4SLinus Torvalds 111da177e4SLinus Torvalds #include "scsi_logging.h" 121da177e4SLinus Torvalds 131da177e4SLinus Torvalds 141da177e4SLinus Torvalds static ctl_table scsi_table[] = { 151da177e4SLinus Torvalds { .ctl_name = DEV_SCSI_LOGGING_LEVEL, 161da177e4SLinus Torvalds .procname = "logging_level", 171da177e4SLinus Torvalds .data = &scsi_logging_level, 181da177e4SLinus Torvalds .maxlen = sizeof(scsi_logging_level), 191da177e4SLinus Torvalds .mode = 0644, 201da177e4SLinus Torvalds .proc_handler = &proc_dointvec }, 211da177e4SLinus Torvalds { } 221da177e4SLinus Torvalds }; 231da177e4SLinus Torvalds 241da177e4SLinus Torvalds static ctl_table scsi_dir_table[] = { 251da177e4SLinus Torvalds { .ctl_name = DEV_SCSI, 261da177e4SLinus Torvalds .procname = "scsi", 271da177e4SLinus Torvalds .mode = 0555, 281da177e4SLinus Torvalds .child = scsi_table }, 291da177e4SLinus Torvalds { } 301da177e4SLinus Torvalds }; 311da177e4SLinus Torvalds 321da177e4SLinus Torvalds static ctl_table scsi_root_table[] = { 331da177e4SLinus Torvalds { .ctl_name = CTL_DEV, 341da177e4SLinus Torvalds .procname = "dev", 351da177e4SLinus Torvalds .mode = 0555, 361da177e4SLinus Torvalds .child = scsi_dir_table }, 371da177e4SLinus Torvalds { } 381da177e4SLinus Torvalds }; 391da177e4SLinus Torvalds 401da177e4SLinus Torvalds static struct ctl_table_header *scsi_table_header; 411da177e4SLinus Torvalds 421da177e4SLinus Torvalds int __init scsi_init_sysctl(void) 431da177e4SLinus Torvalds { 440b4d4147SEric W. Biederman scsi_table_header = register_sysctl_table(scsi_root_table); 451da177e4SLinus Torvalds if (!scsi_table_header) 461da177e4SLinus Torvalds return -ENOMEM; 471da177e4SLinus Torvalds return 0; 481da177e4SLinus Torvalds } 491da177e4SLinus Torvalds 501da177e4SLinus Torvalds void scsi_exit_sysctl(void) 511da177e4SLinus Torvalds { 521da177e4SLinus Torvalds unregister_sysctl_table(scsi_table_header); 531da177e4SLinus Torvalds } 54