842_debugfs.h 1.4 KB

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