mali_kbase_mem_pool_debugfs.c 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. /*
  2. *
  3. * (C) COPYRIGHT 2015 ARM Limited. All rights reserved.
  4. *
  5. * This program is free software and is provided to you under the terms of the
  6. * GNU General Public License version 2 as published by the Free Software
  7. * Foundation, and any use by you of this program is subject to the terms
  8. * of such GNU licence.
  9. *
  10. * A copy of the licence is included with the program, and can also be obtained
  11. * from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  12. * Boston, MA 02110-1301, USA.
  13. *
  14. */
  15. #include <linux/debugfs.h>
  16. #include <linux/seq_file.h>
  17. #include <mali_kbase_mem_pool_debugfs.h>
  18. #ifdef CONFIG_DEBUG_FS
  19. static int kbase_mem_pool_debugfs_size_get(void *data, u64 *val)
  20. {
  21. struct kbase_mem_pool *pool = (struct kbase_mem_pool *)data;
  22. *val = kbase_mem_pool_size(pool);
  23. return 0;
  24. }
  25. static int kbase_mem_pool_debugfs_size_set(void *data, u64 val)
  26. {
  27. struct kbase_mem_pool *pool = (struct kbase_mem_pool *)data;
  28. kbase_mem_pool_trim(pool, val);
  29. return 0;
  30. }
  31. DEFINE_SIMPLE_ATTRIBUTE(kbase_mem_pool_debugfs_size_fops,
  32. kbase_mem_pool_debugfs_size_get,
  33. kbase_mem_pool_debugfs_size_set,
  34. "%llu\n");
  35. static int kbase_mem_pool_debugfs_max_size_get(void *data, u64 *val)
  36. {
  37. struct kbase_mem_pool *pool = (struct kbase_mem_pool *)data;
  38. *val = kbase_mem_pool_max_size(pool);
  39. return 0;
  40. }
  41. static int kbase_mem_pool_debugfs_max_size_set(void *data, u64 val)
  42. {
  43. struct kbase_mem_pool *pool = (struct kbase_mem_pool *)data;
  44. kbase_mem_pool_set_max_size(pool, val);
  45. return 0;
  46. }
  47. DEFINE_SIMPLE_ATTRIBUTE(kbase_mem_pool_debugfs_max_size_fops,
  48. kbase_mem_pool_debugfs_max_size_get,
  49. kbase_mem_pool_debugfs_max_size_set,
  50. "%llu\n");
  51. void kbase_mem_pool_debugfs_add(struct dentry *parent,
  52. struct kbase_mem_pool *pool)
  53. {
  54. debugfs_create_file("mem_pool_size", S_IRUGO | S_IWUSR, parent,
  55. pool, &kbase_mem_pool_debugfs_size_fops);
  56. debugfs_create_file("mem_pool_max_size", S_IRUGO | S_IWUSR, parent,
  57. pool, &kbase_mem_pool_debugfs_max_size_fops);
  58. }
  59. #endif /* CONFIG_DEBUG_FS */