mem_page.c 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /*
  2. * Copyright (c) 2019 Actions Semi Co., Inc.
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. /**
  7. * @file
  8. * @brief mem page manager.
  9. */
  10. #include <os_common_api.h>
  11. #include <mem_manager.h>
  12. #include <kernel.h>
  13. #include <kernel_structs.h>
  14. #include <sys/atomic.h>
  15. #include <init.h>
  16. #include <toolchain.h>
  17. #include <linker/sections.h>
  18. #include <string.h>
  19. #include <mem_buddy.h>
  20. #ifdef CONFIG_APP_USED_MEM_PAGE
  21. #include "page_buddy/include/page_inner.h"
  22. #include "page_buddy/include/buddy_inner.h"
  23. #endif
  24. struct mem_info sys_meminfo;
  25. void *mem_page_malloc(unsigned int num_bytes, void *caller)
  26. {
  27. return mem_buddy_malloc(num_bytes, num_bytes, &sys_meminfo, caller);
  28. }
  29. void check_mem_debug(void *where, struct mem_info *mem_info, void *caller, struct buddy_debug_info *buddy_debug, uint32_t size)
  30. {
  31. }
  32. void mem_page_free(void *ptr, void *caller)
  33. {
  34. return mem_buddy_free(ptr, &sys_meminfo, caller);
  35. }
  36. void mem_page_init(void)
  37. {
  38. #ifdef CONFIG_APP_USED_MEM_PAGE
  39. pagepool_init();
  40. buddy_rom_data_init();
  41. #endif
  42. memset(&sys_meminfo, 0, sizeof(sys_meminfo));
  43. memset(sys_meminfo.buddys, -1, sizeof(sys_meminfo.buddys));
  44. }
  45. void mem_page_dump(uint32_t dump_detail, const char* match_str)
  46. {
  47. mem_buddy_dump_info(dump_detail, match_str);
  48. }