TIOVX User Guide
tivx_mem.h File Reference

Interface to Memory allocation and deallocation APIs. More...

#include <VX/vx.h>

Go to the source code of this file.

Data Structures

struct  tivx_shared_mem_ptr_t
 Structure describing a shared memory pointer. More...
 
struct  tivx_mem_stats
 Structure describing a memory stats pointer. More...
 

Enumerations

enum  tivx_mem_heap_region_e {
  TIVX_MEM_EXTERNAL,
  TIVX_MEM_INTERNAL_L3,
  TIVX_MEM_INTERNAL_L2,
  TIVX_MEM_INTERNAL_L1,
  TIVX_MEM_EXTERNAL_SCRATCH,
  TIVX_MEM_EXTERNAL_PERSISTENT_NON_CACHEABLE,
  TIVX_MEM_EXTERNAL_SCRATCH_NON_CACHEABLE,
  TIVX_MEM_EXTERNAL_CACHEABLE_WT
}
 Enum that list all possible memory regions from which allocations are possible. More...
 
enum  tivx_memory_type_e { TIVX_MEMORY_TYPE_DMA = VX_ENUM_BASE(VX_ID_TI, VX_ENUM_MEMORY_TYPE) + 0x0 }
 An enumeration of TI extension memory import types. More...
 

Functions

vx_status tivxMemBufferAlloc (tivx_shared_mem_ptr_t *mem_ptr, uint32_t size, vx_enum mem_heap_region)
 Allocates memory of given size in the shared memory carveout region used by OpenVX data buffers. More...
 
vx_status tivxMemBufferFree (tivx_shared_mem_ptr_t *mem_ptr, uint32_t size)
 Free buffer from shared memory. More...
 
vx_status tivxMemBufferMap (void *host_ptr, uint32_t size, vx_enum mem_type, vx_enum maptype)
 Map an allocated buffer address. More...
 
vx_status tivxMemBufferUnmap (void *host_ptr, uint32_t size, vx_enum mem_type, vx_enum maptype)
 UnMap a buffer address. More...
 
uint64_t tivxMemHost2SharedPtr (uint64_t host_ptr, vx_enum mem_heap_region)
 Convert Host pointer to shared pointer. More...
 
void * tivxMemShared2TargetPtr (const tivx_shared_mem_ptr_t *shared_ptr)
 Convert shared pointer to target pointer. More...
 
uint64_t tivxMemShared2PhysPtr (uint64_t shared_ptr, vx_enum mem_heap_region)
 Convert shared pointer to system physical memory location This is mainly used for configuring physical address to HW. More...
 
void * tivxMemAlloc (vx_uint32 size, vx_enum mem_heap_region)
 Allocates memory of given size in the shared memory carveout region used by OpenVX data buffers. More...
 
vx_status tivxMemFree (void *ptr, vx_uint32 size, vx_enum mem_heap_region)
 Frees already allocated memory. More...
 
void tivxMemStats (tivx_mem_stats *stats, vx_enum mem_type)
 Get memory segment information. More...
 
int32_t tivxMemResetScratchHeap (vx_enum mem_heap_region)
 Reset scratch memory. More...
 
vx_status tivxMemTranslateVirtAddr (const void *virtAddr, uint64_t *fd, void **phyAddr)
 Translates a given virtual address to a file descriptor and a physical address. The following conditions regarding 'virt_addr' must be TRUE: More...
 
vx_bool tivxMemCompareFd (uint64_t dmaBufFd1, uint64_t dmaBufFd2, uint32_t size1, uint32_t size2)
 Compares two given FD's and returns a boolean based on whether they are the same or not. More...
 
vx_status tivxMemTranslateFd (uint64_t dmaBufFd, uint32_t size, void **virtAddr, void **phyAddr)
 Translates a given file descriptor to a virtual and physical address. The following conditions regarding 'fd' must be TRUE: More...
 
void tivxEnableL1DandL2CacheWb (void)
 For J784S4, the C7X cache coherency model is different than other Jacinto SoC's. While other SoC's C7X cache was coherent, the J784S4 C7X requires cache operations to be performed on the buffers when using them within the OpenVX shared region. This API allows the entire L1D and L2 cache to be written back for J784S4.
 

Detailed Description

Interface to Memory allocation and deallocation APIs.

Definition in file tivx_mem.h.