hal_mem.h 906 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #ifndef SUNXI_HAL_MEM_H
  2. #define SUNXI_HAL_MEM_H
  3. #ifdef __cplusplus
  4. extern "C"
  5. {
  6. #endif
  7. #include <stdlib.h>
  8. #include <stddef.h>
  9. #include <stdint.h>
  10. void *hal_malloc(uint32_t size);
  11. void hal_free(void *p);
  12. void *hal_malloc_align(uint32_t size, int align);
  13. void hal_free_align(void *p);
  14. #ifdef CONFIG_KERNEL_FREERTOS
  15. #ifdef CONFIG_CORE_DSP0
  16. extern unsigned long __va_to_pa(unsigned long vaddr);
  17. extern unsigned long __pa_to_va(unsigned long paddr);
  18. #else
  19. #define __va_to_pa(vaddr) ((u32)vaddr)
  20. #define __pa_to_va(vaddr) ((u32)vaddr)
  21. #endif /* CONFIG_CORE_DSP0 */
  22. #else
  23. #include <rtthread.h>
  24. unsigned long awos_arch_virt_to_phys(unsigned long virtaddr);
  25. unsigned long awos_arch_phys_to_virt(unsigned long phyaddr);
  26. #define __va_to_pa(vaddr) awos_arch_virt_to_phys((vaddr))
  27. #define __pa_to_va(paddr) awos_arch_phys_to_virt((paddr))
  28. #endif /* CONFIG_KERNEL_FREERTOS */
  29. #ifdef __cplusplus
  30. }
  31. #endif
  32. #endif