16 #ifndef NVMEDIA_TENSOR_H
17 #define NVMEDIA_TENSOR_H
45 #define NVMEDIA_TENSOR_VERSION_MAJOR (1u)
47 #define NVMEDIA_TENSOR_VERSION_MINOR (3u)
53 #define NVMEDIA_TENSOR_TIMEOUT_INFINITE (0xFFFFFFFFu)
108 #define NVM_TENSOR_ATTR_CPU_ACCESS_UNCACHED (0x00000001u)
112 #define NVM_TENSOR_ATTR_CPU_ACCESS_CACHED (0x00000002u)
117 #define NVM_TENSOR_ATTR_CPU_ACCESS_UNMAPPED (0x00000003u)
122 #define NVM_TENSOR_ATTR_ALLOC_RESERVED (0x00000010u)
126 #define NVM_TENSOR_ATTR_ALLOC_NONE (0x00000000u)
143 #define NVM_TENSOR_INIT_ATTR(x) \
146 x[0].type = NVM_TENSOR_ATTR_DATA_TYPE; \
149 x[1].type = NVM_TENSOR_ATTR_4D_N; \
152 x[2].type = NVM_TENSOR_ATTR_4D_C; \
155 x[3].type = NVM_TENSOR_ATTR_4D_H; \
158 x[4].type = NVM_TENSOR_ATTR_4D_W; \
161 x[5].type = NVM_TENSOR_ATTR_4D_X; \
164 x[6].type = NVM_TENSOR_ATTR_BITS_PER_ELEMENT; \
167 x[7].type = NVM_TENSOR_ATTR_DIMENSION_ORDER; \
170 x[8].type = NVM_TENSOR_ATTR_CPU_ACCESS; \
173 x[9].type = NVM_TENSOR_ATTR_ALLOC_TYPE; \
180 #define NVM_TENSOR_DEFINE_ATTR(x) \
181 NvMediaTensorAttr x[NVM_TENSOR_ATTR_MAX]; \
182 NVM_TENSOR_INIT_ATTR(x); \
205 #define NVM_TENSOR_SET_ATTR_4D(attr, N, C, H, W, order, datatype, bpe, accesstype, alloctype, X)\
208 attr[0].type = NVM_TENSOR_ATTR_DATA_TYPE; \
209 attr[0].value = NVM_TENSOR_ATTR_DATA_TYPE_##datatype; \
211 attr[1].type = NVM_TENSOR_ATTR_4D_N; \
214 attr[2].type = NVM_TENSOR_ATTR_4D_C; \
217 attr[3].type = NVM_TENSOR_ATTR_4D_H; \
220 attr[4].type = NVM_TENSOR_ATTR_4D_W; \
223 attr[5].type = NVM_TENSOR_ATTR_4D_X; \
226 attr[6].type = NVM_TENSOR_ATTR_BITS_PER_ELEMENT; \
227 attr[6].value = NVM_TENSOR_ATTR_BITS_PER_ELEMENT_##bpe; \
229 attr[7].type = NVM_TENSOR_ATTR_DIMENSION_ORDER; \
230 attr[7].value = NVM_TENSOR_ATTR_DIMENSION_ORDER_##order; \
232 attr[8].type = NVM_TENSOR_ATTR_CPU_ACCESS; \
233 attr[8].value = NVM_TENSOR_ATTR_CPU_ACCESS_##accesstype; \
235 attr[9].type = NVM_TENSOR_ATTR_ALLOC_TYPE; \
236 attr[9].value = NVM_TENSOR_ATTR_ALLOC_##alloctype; \
306 uint32_t lockAccessType,
341 uint32_t millisecondWait,
NvMediaStatus NvMediaTensorLock(NvMediaTensor *tensor, uint32_t lockAccessType, NvMediaTensorSurfaceMap *surfaceMap)
Locks a tensor and returns the associated mapped pointers pointing to the tensor surface data...
NvMediaStatus
Defines all possible error codes.
void NvMediaTensorUnlock(NvMediaTensor *tensor)
Unlocks a tensor.
NvMediaTensorLockAccess
Defines tensor lock access types.