mem_slabs.h 727 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. /*
  2. * Copyright (c) 2018 Actions Semiconductor Co., Ltd
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. /**
  7. * @file mem slabes interface
  8. */
  9. #ifndef __MEM_SLABS_H__
  10. #define __MEM_SLABS_H__
  11. #ifdef CONFIG_MEMORY_SLABS
  12. struct slab_info
  13. {
  14. struct k_mem_slab *slab;
  15. char * slab_base;
  16. uint16_t block_num;
  17. uint32_t block_size;
  18. };
  19. struct slabs_info
  20. {
  21. uint16_t slab_num;
  22. uint16_t slab_flag;
  23. uint8_t * max_used;
  24. uint32_t * max_size;
  25. const struct slab_info *slabs;
  26. };
  27. void mem_slabs_init(struct slabs_info * slabs);
  28. void mem_slabs_free(struct slabs_info * slabs, void *ptr);
  29. void *mem_slabs_malloc(struct slabs_info * slabs, unsigned int num_bytes);
  30. void mem_slabs_dump(struct slabs_info * slabs, int index);
  31. #endif
  32. #endif