memmgr.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /**
  2. * @file memmgr.h
  3. * Furi: memory managment API and glue
  4. */
  5. #pragma once
  6. #include <stddef.h>
  7. #include <stdlib.h>
  8. #include <string.h>
  9. #include "check.h"
  10. #ifdef __cplusplus
  11. extern "C" {
  12. #endif
  13. // define for test case "link against furi memmgr"
  14. #define FURI_MEMMGR_GUARD 1
  15. /** Get free heap size
  16. *
  17. * @return free heap size in bytes
  18. */
  19. size_t memmgr_get_free_heap(void);
  20. /** Get total heap size
  21. *
  22. * @return total heap size in bytes
  23. */
  24. size_t memmgr_get_total_heap(void);
  25. /** Get heap watermark
  26. *
  27. * @return minimum heap in bytes
  28. */
  29. size_t memmgr_get_minimum_free_heap(void);
  30. /**
  31. * @brief Allocate memory from separate memory pool. That memory can't be freed.
  32. *
  33. * @param size
  34. * @return void*
  35. */
  36. void* memmgr_alloc_from_pool(size_t size);
  37. /**
  38. * @brief Get free memory pool size
  39. *
  40. * @return size_t
  41. */
  42. size_t memmgr_pool_get_free(void);
  43. /**
  44. * @brief Get max free block size from memory pool
  45. *
  46. * @return size_t
  47. */
  48. size_t memmgr_pool_get_max_block(void);
  49. #ifdef __cplusplus
  50. }
  51. #endif