79 #define APP_MEM_HEAP_NAME_MAX (16u) 89 #define APP_MEM_HEAP_DDR (0u) 92 #define APP_MEM_HEAP_L3 (1u) 95 #define APP_MEM_HEAP_L2 (2u) 98 #define APP_MEM_HEAP_L1 (3u) 101 #define APP_MEM_HEAP_DDR_SCRATCH (4u) 104 #define APP_MEM_HEAP_DDR_NON_CACHE (5u) 107 #define APP_MEM_HEAP_MAX (6u) 126 #define APP_MEM_HEAP_FLAGS_TYPE_LINEAR_ALLOCATE (0x00000001u) 130 #define APP_MEM_HEAP_FLAGS_IS_SHARED (0x00000004u) 134 #define APP_MEM_HEAP_FLAGS_DO_CLEAR_ON_ALLOC (0x00000008u) 176 return (
void*)((((uintptr_t)val+align-1) / align) * align);
184 return (uint64_t)( (uint64_t)(val+align-1) / align) * align;
192 return (uint32_t)( (uint32_t)(val+align-1) / align) * align;
233 void *
appMemAlloc(uint32_t heap_id, uint32_t size, uint32_t align);
256 int32_t
appMemFree(uint32_t heap_id,
void *ptr, uint32_t size);
266 #if defined(x86_64) || defined(QNX) 282 #if defined(x86_64) || defined(QNX) 293 #if defined(x86_64) || defined(QNX) Heap initialization parameters.
Definition: app_mem.h:141
void * base
Definition: app_mem.h:143
void appMemCacheWbInv(void *ptr, uint32_t size)
Write back and invalidate a section of memory from cache.
int32_t appMemDeInit()
De-Init heaps for memory allocation.
int32_t appMemResetScratchHeap(uint32_t heap_id)
Reset scratch memory.
uint32_t heap_id
Definition: app_mem.h:164
Heap statistics and information.
Definition: app_mem.h:162
uint64_t appMemGetVirt2PhyBufPtr(uint64_t virtPtr, uint32_t heap_id)
Return physical ptr corresponds to a CMEM virtual ptr.
#define APP_MEM_HEAP_NAME_MAX
Max characters to use for heap name.
Definition: app_mem.h:79
static void * APP_MEM_ALIGNPTR(void *val, uint32_t align)
Align ptr value to 'align' bytes.
Definition: app_mem.h:174
void appMemCloseDmaBufFd(int32_t dmaBufFd)
Close the dmaBufFd of a CMEM buffer pointer.
int32_t appMemStats(uint32_t heap_id, app_mem_stats_t *stats)
Return heap statistics and information.
static uint32_t APP_MEM_ALIGN32(uint32_t val, uint32_t align)
Align 32b value to 'align' bytes.
Definition: app_mem.h:190
int32_t appMemTranslateDmaBufFd(uint32_t dmaBufFd, uint32_t size, uint64_t *virtPtr, uint64_t *phyPtr)
Translates a given 'dmaBufFd' to virtual and physical addresses.
int32_t appMemInit(app_mem_init_prm_t *prm)
Init heaps for memory allocation.
uint32_t appMemGetDmaBufFd(void *virPtr, volatile uint32_t *dmaBufFdOffset)
Return dmaBufFd of a CMEM buffer pointer.
void appMemCacheWb(void *ptr, uint32_t size)
Write back a section of memory from cache.
uint32_t heap_size
Definition: app_mem.h:166
void appMemCacheInv(void *ptr, uint32_t size)
Invalidate a section of memory from cache.
Memory module initialization parameters.
Definition: app_mem.h:153
uint32_t flags
Definition: app_mem.h:146
uint32_t free_size
Definition: app_mem.h:167
#define APP_MEM_HEAP_MAX
Max heaps in system.
Definition: app_mem.h:107
int32_t appMemFree(uint32_t heap_id, void *ptr, uint32_t size)
Free memory that was previously allocated.
uint32_t size
Definition: app_mem.h:145
void appMemInitPrmSetDefault(app_mem_init_prm_t *prm)
Set defaults to app_mem_init_prm_t.
static uint64_t APP_MEM_ALIGN64(uint64_t val, uint32_t align)
Align 64b value to 'align' bytes.
Definition: app_mem.h:182
void * appMemAlloc(uint32_t heap_id, uint32_t size, uint32_t align)
Alloc memory from specific heap.