orangefs-debug.h 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * (C) 2001 Clemson University and The University of Chicago
  4. *
  5. * See COPYING in top-level directory.
  6. */
  7. /* This file just defines debugging masks to be used with the gossip
  8. * logging utility. All debugging masks for ORANGEFS are kept here to make
  9. * sure we don't have collisions.
  10. */
  11. #ifndef __ORANGEFS_DEBUG_H
  12. #define __ORANGEFS_DEBUG_H
  13. #ifdef __KERNEL__
  14. #include <linux/types.h>
  15. #include <linux/kernel.h>
  16. #else
  17. #include <stdint.h>
  18. #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
  19. #endif
  20. #define GOSSIP_NO_DEBUG (__u64)0
  21. #define GOSSIP_SUPER_DEBUG ((__u64)1 << 0)
  22. #define GOSSIP_INODE_DEBUG ((__u64)1 << 1)
  23. #define GOSSIP_FILE_DEBUG ((__u64)1 << 2)
  24. #define GOSSIP_DIR_DEBUG ((__u64)1 << 3)
  25. #define GOSSIP_UTILS_DEBUG ((__u64)1 << 4)
  26. #define GOSSIP_WAIT_DEBUG ((__u64)1 << 5)
  27. #define GOSSIP_ACL_DEBUG ((__u64)1 << 6)
  28. #define GOSSIP_DCACHE_DEBUG ((__u64)1 << 7)
  29. #define GOSSIP_DEV_DEBUG ((__u64)1 << 8)
  30. #define GOSSIP_NAME_DEBUG ((__u64)1 << 9)
  31. #define GOSSIP_BUFMAP_DEBUG ((__u64)1 << 10)
  32. #define GOSSIP_CACHE_DEBUG ((__u64)1 << 11)
  33. #define GOSSIP_DEBUGFS_DEBUG ((__u64)1 << 12)
  34. #define GOSSIP_XATTR_DEBUG ((__u64)1 << 13)
  35. #define GOSSIP_INIT_DEBUG ((__u64)1 << 14)
  36. #define GOSSIP_SYSFS_DEBUG ((__u64)1 << 15)
  37. #define GOSSIP_MAX_NR 16
  38. #define GOSSIP_MAX_DEBUG (((__u64)1 << GOSSIP_MAX_NR) - 1)
  39. /* a private internal type */
  40. struct __keyword_mask_s {
  41. const char *keyword;
  42. __u64 mask_val;
  43. };
  44. /*
  45. * Map all kmod keywords to kmod debug masks here. Keep this
  46. * structure "packed":
  47. *
  48. * "all" is always last...
  49. *
  50. * keyword mask_val index
  51. * foo 1 0
  52. * bar 2 1
  53. * baz 4 2
  54. * qux 8 3
  55. * . . .
  56. */
  57. static struct __keyword_mask_s s_kmod_keyword_mask_map[] = {
  58. {"super", GOSSIP_SUPER_DEBUG},
  59. {"inode", GOSSIP_INODE_DEBUG},
  60. {"file", GOSSIP_FILE_DEBUG},
  61. {"dir", GOSSIP_DIR_DEBUG},
  62. {"utils", GOSSIP_UTILS_DEBUG},
  63. {"wait", GOSSIP_WAIT_DEBUG},
  64. {"acl", GOSSIP_ACL_DEBUG},
  65. {"dcache", GOSSIP_DCACHE_DEBUG},
  66. {"dev", GOSSIP_DEV_DEBUG},
  67. {"name", GOSSIP_NAME_DEBUG},
  68. {"bufmap", GOSSIP_BUFMAP_DEBUG},
  69. {"cache", GOSSIP_CACHE_DEBUG},
  70. {"debugfs", GOSSIP_DEBUGFS_DEBUG},
  71. {"xattr", GOSSIP_XATTR_DEBUG},
  72. {"init", GOSSIP_INIT_DEBUG},
  73. {"sysfs", GOSSIP_SYSFS_DEBUG},
  74. {"none", GOSSIP_NO_DEBUG},
  75. {"all", GOSSIP_MAX_DEBUG}
  76. };
  77. static const int num_kmod_keyword_mask_map = (int)
  78. (ARRAY_SIZE(s_kmod_keyword_mask_map));
  79. #endif /* __ORANGEFS_DEBUG_H */