cb_mempool.h 639 B

123456789101112131415161718192021222324252627282930313233343536
  1. /*
  2. * SPDX-License-Identifier: Apache-2.0
  3. *
  4. * Change Logs:
  5. * Date Author Notes
  6. * 2023-09-13 tyx first implementation
  7. */
  8. #ifndef CB_MEMPOOL_H_
  9. #define CB_MEMPOOL_H_
  10. #include "cb_def.h"
  11. #ifdef __cplusplus
  12. extern "C" {
  13. #endif
  14. struct cb_mempool_item
  15. {
  16. struct cb_mempool_item *next;
  17. };
  18. typedef struct cb_mempool
  19. {
  20. struct cb_mempool_item *next_free;
  21. }cb_memp_t;
  22. cb_memp_t *cb_mempool_init(cb_memp_t *memp, void *addr, unsigned long blk_size, unsigned long total_size);
  23. void *cb_mempool_alloc(cb_memp_t *memp);
  24. void cb_mempool_free(cb_memp_t *memp, void *ptr);
  25. #ifdef __cplusplus
  26. }
  27. #endif
  28. #endif