scsi_sysctl.c 1.0 KB

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