scsi_sysctl.c 1015 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. static ctl_table scsi_table[] = {
  11. { .ctl_name = DEV_SCSI_LOGGING_LEVEL,
  12. .procname = "logging_level",
  13. .data = &scsi_logging_level,
  14. .maxlen = sizeof(scsi_logging_level),
  15. .mode = 0644,
  16. .proc_handler = &proc_dointvec },
  17. { }
  18. };
  19. static ctl_table scsi_dir_table[] = {
  20. { .ctl_name = DEV_SCSI,
  21. .procname = "scsi",
  22. .mode = 0555,
  23. .child = scsi_table },
  24. { }
  25. };
  26. static ctl_table scsi_root_table[] = {
  27. { .ctl_name = CTL_DEV,
  28. .procname = "dev",
  29. .mode = 0555,
  30. .child = scsi_dir_table },
  31. { }
  32. };
  33. static struct ctl_table_header *scsi_table_header;
  34. int __init scsi_init_sysctl(void)
  35. {
  36. scsi_table_header = register_sysctl_table(scsi_root_table, 1);
  37. if (!scsi_table_header)
  38. return -ENOMEM;
  39. return 0;
  40. }
  41. void scsi_exit_sysctl(void)
  42. {
  43. unregister_sysctl_table(scsi_table_header);
  44. }