xref: /openbmc/linux/drivers/scsi/scsi_sysctl.c (revision 22246614)
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 
15 static ctl_table scsi_table[] = {
16 	{ .ctl_name	= DEV_SCSI_LOGGING_LEVEL,
17 	  .procname	= "logging_level",
18 	  .data		= &scsi_logging_level,
19 	  .maxlen	= sizeof(scsi_logging_level),
20 	  .mode		= 0644,
21 	  .proc_handler	= &proc_dointvec },
22 	{ }
23 };
24 
25 static ctl_table scsi_dir_table[] = {
26 	{ .ctl_name	= DEV_SCSI,
27 	  .procname	= "scsi",
28 	  .mode		= 0555,
29 	  .child	= scsi_table },
30 	{ }
31 };
32 
33 static ctl_table scsi_root_table[] = {
34 	{ .ctl_name	= CTL_DEV,
35 	  .procname	= "dev",
36 	  .mode		= 0555,
37 	  .child	= scsi_dir_table },
38 	{ }
39 };
40 
41 static struct ctl_table_header *scsi_table_header;
42 
43 int __init scsi_init_sysctl(void)
44 {
45 	scsi_table_header = register_sysctl_table(scsi_root_table);
46 	if (!scsi_table_header)
47 		return -ENOMEM;
48 	return 0;
49 }
50 
51 void scsi_exit_sysctl(void)
52 {
53 	unregister_sysctl_table(scsi_table_header);
54 }
55