Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003  * Copyright (C) 2003 Christoph Hellwig.
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 }