sysctl.c
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:1k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /*
  2.  * sysctl.c - System control stuff
  3.  *
  4.  * Copyright (C) 1997 Martin von L鰓is
  5.  * Copyright (C) 1997 R間is Duchesne
  6.  */
  7. #include "sysctl.h"
  8. #ifdef DEBUG
  9. #include <linux/locks.h>
  10. #include <linux/sysctl.h>
  11. int ntdebug = 0;
  12. /* Add or remove the debug sysctl
  13.  * Is this really the only file system with sysctls ?
  14.  */
  15. void ntfs_sysctl(int add)
  16. {
  17. #define FS_NTFS             1
  18. /* Definition of the sysctl */
  19. static ctl_table ntfs_sysctls[]={
  20. {FS_NTFS,                  /* ID */
  21.  "ntfs-debug",             /* name in /proc */
  22.  &ntdebug,sizeof(ntdebug), /* data ptr, data size */
  23.  0644,                     /* mode */
  24.  0,                        /* child */
  25.  proc_dointvec,            /* proc handler */
  26.  0,                        /* strategy */
  27.  0,                        /* proc control block */
  28.  0,0},                     /* extra */
  29. {0}
  30. };
  31. /* Define the parent file : /proc/sys/fs */
  32. static ctl_table sysctls_root[]={
  33. {CTL_FS,
  34.  "fs",
  35.  NULL,0,
  36.  0555,
  37.  ntfs_sysctls},
  38. {0}
  39. };
  40. static struct ctl_table_header *sysctls_root_header = NULL;
  41. if(add){
  42. if(!sysctls_root_header)
  43. sysctls_root_header = register_sysctl_table(sysctls_root, 0);
  44. } else if(sysctls_root_header) {
  45. unregister_sysctl_table(sysctls_root_header);
  46. sysctls_root_header = NULL;
  47. }
  48. }
  49. #endif /* DEBUG */