842_debugfs.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #ifndef __842_DEBUGFS_H__
  2. #define __842_DEBUGFS_H__
  3. #include <linux/debugfs.h>
  4. static bool sw842_template_counts;
  5. module_param_named(template_counts, sw842_template_counts, bool, 0444);
  6. static atomic_t template_count[OPS_MAX], template_repeat_count,
  7. template_zeros_count, template_short_data_count, template_end_count;
  8. static struct dentry *sw842_debugfs_root;
  9. static int __init sw842_debugfs_create(void)
  10. {
  11. umode_t m = S_IRUGO | S_IWUSR;
  12. int i;
  13. if (!debugfs_initialized())
  14. return -ENODEV;
  15. sw842_debugfs_root = debugfs_create_dir(MODULE_NAME, NULL);
  16. if (IS_ERR(sw842_debugfs_root))
  17. return PTR_ERR(sw842_debugfs_root);
  18. for (i = 0; i < ARRAY_SIZE(template_count); i++) {
  19. char name[32];
  20. snprintf(name, 32, "template_%02x", i);
  21. debugfs_create_atomic_t(name, m, sw842_debugfs_root,
  22. &template_count[i]);
  23. }
  24. debugfs_create_atomic_t("template_repeat", m, sw842_debugfs_root,
  25. &template_repeat_count);
  26. debugfs_create_atomic_t("template_zeros", m, sw842_debugfs_root,
  27. &template_zeros_count);
  28. debugfs_create_atomic_t("template_short_data", m, sw842_debugfs_root,
  29. &template_short_data_count);
  30. debugfs_create_atomic_t("template_end", m, sw842_debugfs_root,
  31. &template_end_count);
  32. return 0;
  33. }
  34. static void __exit sw842_debugfs_remove(void)
  35. {
  36. if (sw842_debugfs_root && !IS_ERR(sw842_debugfs_root))
  37. debugfs_remove_recursive(sw842_debugfs_root);
  38. }
  39. #endif