mem_alloc.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /*
  2. * Copyright (C) 2019 Intel Corporation. All rights reserved.
  3. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  4. */
  5. #ifndef __MEM_ALLOC_H
  6. #define __MEM_ALLOC_H
  7. #include "bh_platform.h"
  8. #ifdef __cplusplus
  9. extern "C" {
  10. #endif
  11. typedef void *mem_allocator_t;
  12. mem_allocator_t
  13. mem_allocator_create(void *mem, uint32_t size);
  14. mem_allocator_t
  15. mem_allocator_create_with_struct_and_pool(void *struct_buf,
  16. uint32_t struct_buf_size,
  17. void *pool_buf,
  18. uint32_t pool_buf_size);
  19. void
  20. mem_allocator_destroy(mem_allocator_t allocator);
  21. uint32
  22. mem_allocator_get_heap_struct_size(void);
  23. void *
  24. mem_allocator_malloc(mem_allocator_t allocator, uint32_t size);
  25. void *
  26. mem_allocator_realloc(mem_allocator_t allocator, void *ptr, uint32_t size);
  27. void
  28. mem_allocator_free(mem_allocator_t allocator, void *ptr);
  29. int
  30. mem_allocator_migrate(mem_allocator_t allocator, char *pool_buf_new,
  31. uint32 pool_buf_size);
  32. bool
  33. mem_allocator_is_heap_corrupted(mem_allocator_t allocator);
  34. #ifdef __cplusplus
  35. }
  36. #endif
  37. #endif /* #ifndef __MEM_ALLOC_H */