36 #elif defined(__linux__) || defined(__APPLE__)
37 #if defined(__linux__)
38 #include <linux/types.h>
62 #define NI_LOGAN_XCODER_REVISION "351R2019"
63 #define NI_LOGAN_XCODER_FW_VER_SUPPORTED_MIN "300"
64 #define NI_LOGAN_XCODER_FW_API_FLAVORS_SUPPORTED "20"
65 #define NI_LOGAN_XCODER_FW_API_VER_SUPPORTED_MIN 13
67 #define NI_LOGAN_XCODER_VER_SZ 3
68 #define NI_LOGAN_XCODER_API_FLAVOR_SZ 2
69 #define NI_LOGAN_XCODER_API_VER_SZ 2
73 #define NI_LITTLE_ENDIAN_PLATFORM 0
74 #define NI_BIG_ENDIAN_PLATFORM 1
76 #ifndef PLATFORM_ENDIANESS
77 #define PLATFORM_ENDIANESS NI_LITTLE_ENDIAN_PLATFORM
80 #define NETINT_PCI_VENDOR_ID 0x1D82
83 typedef struct _ni_pthread_t
86 void *(*start_routine)(
void *arg);
90 typedef CRITICAL_SECTION ni_pthread_mutex_t;
91 typedef CONDITION_VARIABLE ni_pthread_cond_t;
92 typedef void ni_pthread_attr_t;
93 typedef void ni_pthread_condattr_t;
94 typedef void ni_pthread_mutexattr_t;
95 typedef void ni_sigset_t;
96 typedef HANDLE ni_device_handle_t;
97 typedef HANDLE ni_event_handle_t;
98 typedef HANDLE ni_lock_handle_t;
100 #define NI_INVALID_DEVICE_HANDLE (INVALID_HANDLE_VALUE)
101 #define NI_INVALID_EVENT_HANDLE (NULL)
102 #define NI_INVALID_LOCK_HANDLE (NULL)
105 #define LIB_API __declspec(dllexport)
107 #define LIB_API __declspec(dllimport)
112 #elif defined(__linux__)
113 typedef pthread_t ni_pthread_t;
114 typedef pthread_mutex_t ni_pthread_mutex_t;
115 typedef pthread_cond_t ni_pthread_cond_t;
116 typedef pthread_attr_t ni_pthread_attr_t;
117 typedef pthread_condattr_t ni_pthread_condattr_t;
118 typedef pthread_mutexattr_t ni_pthread_mutexattr_t;
119 typedef sigset_t ni_sigset_t;
120 typedef int32_t ni_device_handle_t;
121 typedef int32_t ni_event_handle_t;
122 typedef int32_t ni_lock_handle_t;
123 #define NI_INVALID_DEVICE_HANDLE (-1)
124 #define NI_INVALID_EVENT_HANDLE (-1)
125 #define NI_INVALID_LOCK_HANDLE (-1)
127 #define SYS_PARAMS_PREFIX_PATH "/sys/block/"
128 #define SYS_PREFIX_SZ strlen(SYS_PARAMS_PREFIX_PATH)
129 #define KERNEL_NVME_MAX_SEG_PATH "/queue/max_segments"
130 #define KERNEL_NVME_MAX_SEG_SZ_PATH "/queue/max_segment_size"
131 #define KERNEL_NVME_MIN_IO_SZ_PATH "/queue/minimum_io_size"
132 #define KERNEL_NVME_MAX_HW_SEC_KB_PATH "/queue/max_hw_sectors_kb"
133 #define MIN_NVME_BLK_NAME_LEN 7
134 #define KERNEL_NVME_FILE_NAME_MAX_SZ (SYS_PREFIX_SZ + strlen(KERNEL_NVME_MAX_SEG_SZ_PATH) + \
135 MIN_NVME_BLK_NAME_LEN + 10)
136 #define DEFAULT_IO_TRANSFER_SIZE 520192
137 #define MAX_IO_TRANSFER_SIZE 3133440
139 #elif defined(__APPLE__)
140 typedef pthread_t ni_pthread_t;
141 typedef pthread_mutex_t ni_pthread_mutex_t;
142 typedef pthread_cond_t ni_pthread_cond_t;
143 typedef pthread_attr_t ni_pthread_attr_t;
144 typedef pthread_condattr_t ni_pthread_condattr_t;
145 typedef pthread_mutexattr_t ni_pthread_mutexattr_t;
146 typedef sigset_t ni_sigset_t;
147 typedef int32_t ni_device_handle_t;
148 typedef int32_t ni_event_handle_t;
149 typedef int32_t ni_lock_handle_t;
150 #define NI_INVALID_DEVICE_HANDLE (-1)
151 #define NI_INVALID_EVENT_HANDLE (-1)
152 #define NI_INVALID_LOCK_HANDLE (-1)
154 #define MAX_IO_TRANSFER_SIZE 3133440
159 #define NI_ERRNO (GetLastError())
161 #define NI_ERRNO (errno)
164 #define NI_INVALID_IO_SIZE (0)
168 #define LOGAN_MAX_DEVICE_CNT 256
169 #define NI_LOGAN_MAX_DEVICE_NAME_LEN 32
171 #define NI_LOGAN_MAX_PACKET_SZ 0x20000
172 #define NI_LOGAN_POLL_INTERVAL (2 * 1000)
174 #define NI_LOGAN_MAX_NUM_DATA_POINTERS 4
176 #define NI_LOGAN_MAX_CONTEXTS_PER_HW_INSTANCE 32
177 #define NI_LOGAN_MAX_1080P_FPS 240
178 #define NI_LOGAN_MAX_CONTEXTS_PER_DECODER_INSTANCE 4
180 #define NI_LOGAN_MAX_DEVICES_PER_HW_INSTANCE 4
182 #define NI_LOGAN_MAX_TX_SZ 0x4B00000
184 #define NI_LOGAN_MEM_PAGE_ALIGNMENT 0x200
188 #define COMMAND_QUEUE_DEPTH 4
189 #define ONE_TASKBUF_SIZE_FOR_W511DEC_CQ (72 * 1024 * 1024)
190 #define ONE_TASKBUF_SIZE_FOR_CQ ONE_TASKBUF_SIZE_FOR_W511DEC_CQ
191 #define SIZE_COMMON ((2*1024*1024) + (COMMAND_QUEUE_DEPTH*ONE_TASKBUF_SIZE_FOR_CQ))
192 #define MAX_NUM_VPU_CORE 2
193 #define MAX_VPU_CORE_NUM MAX_NUM_VPU_CORE
194 #define WAVE5_DRAM_PHY_SIZE 0xDBF00000
195 #define VPU_DRAM_SIZE WAVE5_DRAM_PHY_SIZE
196 #define VDI_INIT_VMEM_SIZE ((VPU_DRAM_SIZE) - SIZE_COMMON * MAX_VPU_CORE_NUM)
200 #define NI_LOGAN_MAX_DEC_REJECT 1024
202 #define NI_LOGAN_FIFO_SZ 1024
205 #define NI_LOGAN_MAX_PTS_GAP 32
208 #define NI_LOGAN_MAX_I_P_DIST 8
211 #define NI_LOGAN_INVALID_SEI_TYPE (-1)
213 #define NI_LOGAN_MAX_CUSTOM_SEI_SZ 8192
215 #define NI_LOGAN_MAX_CUSTOM_SEI_CNT 10
217 #define NI_LOGAN_MAX_FORCE_FRAME_TABLE_SIZE 10
220 #define NI_LOGAN_FW_META_DATA_SZ 64
222 #define NI_LOGAN_APP_ENC_FRAME_META_DATA_SIZE 64
224 #define NI_LOGAN_FW_ENC_BITSTREAM_META_DATA_SIZE 40
227 #define NI_LOGAN_XCODER_FW_API_VER_SZ (NI_LOGAN_XCODER_API_VER_SZ + 1)
229 #define NI_LOGAN_LIGHT_LEVEL_DATA_SZ 5
231 #define NI_LOGAN_MDCV_LUM_DATA_SZ 9
248 #define NI_LOGAN_MAX_NAMESPACE 16
249 #define NI_LOGAN_MAX_PROFILE_NAME_LEN 128
250 #define NI_LOGAN_MAX_LEVEL_NAME_LEN 64
251 #define NI_LOGAN_MAX_ADDITIONAL_INFO_LEN 64
255 #define LRETURN goto END
259 #define LRETURN goto END
263 #define ni_logan_assert(expression) assert(expression)
265 #define K_TO_C(temperature) ((temperature)-273)
276 #define NI_LOGAN_RETCODE_INIT_ALREADY (INT32_MAX)
struct _ni_logan_lat_meas_q_t ni_logan_lat_meas_q_t
@ NI_LOGAN_RETCODE_PARAM_ERROR_MN_QP
@ NI_LOGAN_RETCODE_ERROR_INVALID_HANDLE
@ NI_LOGAN_RETCODE_NVME_SC_VPU_GENERAL_ERROR
@ NI_LOGAN_RETCODE_PARAM_ERROR_CONF_WIN_R
@ NI_LOGAN_RETCODE_PARAM_ERROR_HEIGHT_TOO_SMALL
@ NI_LOGAN_RETCODE_ERROR_INVALID_SESSION
@ NI_LOGAN_RETCODE_PARAM_ERROR_ZERO
@ NI_LOGAN_RETCODE_PARAM_ERROR_FRATE
@ NI_LOGAN_RETCODE_PARAM_INVALID_VALUE
@ NI_LOGAN_RETCODE_PARAM_ERROR_TOO_SMALL
@ NI_LOGAN_RETCODE_PARAM_ERROR_OOR
@ NI_LOGAN_RETCODE_PARAM_ERROR_CONF_WIN_TOP
@ NI_LOGAN_RETCODE_PARAM_ERROR_USR_RMD_ENC_PARAM
@ NI_LOGAN_RETCODE_PARAM_ERROR_CU_SIZE_MODE
@ NI_LOGAN_RETCODE_PARAM_ERROR_TRATE
@ NI_LOGAN_RETCODE_PARAM_ERROR_GOP_PRESET
@ NI_LOGAN_RETCODE_PARAM_ERROR_AREA_TOO_BIG
@ NI_LOGAN_RETCODE_PARAM_ERROR_RCENABLE
@ NI_LOGAN_RETCODE_PARAM_ERROR_WIDTH_TOO_SMALL
@ NI_LOGAN_RETCODE_NVME_SC_RESOURCE_IS_EMPTY
@ NI_LOGAN_RETCODE_ERROR_UNLOCK_DEVICE
@ NI_LOGAN_RETCODE_DEFAULT_SESSION_ERR_NO
@ NI_LOGAN_RETCODE_PARAM_GOP_INTRA_INCOMPATIBLE
@ NI_LOGAN_RETCODE_PARAM_ERROR_CONF_WIN_L
@ NI_LOGAN_RETCODE_NVME_SC_REQUEST_IN_PROGRESS
@ NI_LOGAN_RETCODE_PARAM_ERROR_TOO_BIG
@ NI_LOGAN_RETCODE_ERROR_RESOURCE_UNAVAILABLE
@ NI_LOGAN_RETCODE_PARAM_ERROR_MX_QP
@ NI_LOGAN_RETCODE_PARAM_ERROR_BRATE_LT_TRATE
@ NI_LOGAN_RETCODE_PARAM_ERROR_CUSIZE_MODE_8X8_EN
@ NI_LOGAN_RETCODE_PARAM_ERROR_DY_MERGE_16X16_EN
@ NI_LOGAN_RETCODE_PARAM_ERROR_CUSIZE_MODE_16X16_EN
@ NI_LOGAN_RETCODE_ERROR_NVME_CMD_FAILED
@ NI_LOGAN_RETCODE_INVALID_PARAM
@ NI_LOGAN_RETCODE_ERROR_MEM_ALOC
@ NI_LOGAN_RETCODE_PARAM_ERROR_DY_MERGE_8X8_EN
@ NI_LOGAN_RETCODE_ERROR_VERSION_INCOMPATIBLE
@ NI_LOGAN_RETCODE_PARAM_ERROR_PIC_HEIGHT
@ NI_LOGAN_RETCODE_PARAM_ERROR_INTRA_PERIOD
@ NI_LOGAN_RETCODE_ERROR_VPU_RECOVERY
@ NI_LOGAN_RETCODE_PARAM_INVALID_NAME
@ NI_LOGAN_RETCODE_ERROR_GET_DEVICE_POOL
@ NI_LOGAN_RETCODE_PARAM_ERROR_BRATE
@ NI_LOGAN_RETCODE_PARAM_ERROR_HEIGHT_TOO_BIG
@ NI_LOGAN_RETCODE_PARAM_ERROR_RCINITDELAY
@ NI_LOGAN_RETCODE_PARAM_ERROR_MAXNUMMERGE
@ NI_LOGAN_RETCODE_PARAM_ERROR_CONF_WIN_BOT
@ NI_LOGAN_RETCODE_PARAM_ERROR_HVS_QP_EN
@ NI_LOGAN_RETCODE_PARAM_ERROR_CUSTOM_GOP
@ NI_LOGAN_RETCODE_SUCCESS
@ NI_LOGAN_RETCODE_NVME_SC_WRITE_BUFFER_FULL
@ NI_LOGAN_RETCODE_FAILURE
@ NI_LOGAN_RETCODE_NVME_SC_VPU_RECOVERY
@ NI_LOGAN_RETCODE_PARAM_ERROR_PIC_WIDTH
@ NI_LOGAN_RETCODE_PARAM_ERROR_DY_MERGE_32X32_EN
@ NI_LOGAN_RETCODE_PARAM_ERROR_MX_DELTA_QP
@ NI_LOGAN_RETCODE_NVME_SC_RESOURCE_UNAVAILABLE
@ NI_LOGAN_RETCODE_PARAM_ERROR_CUSIZE_MODE_32X32_EN
@ NI_LOGAN_RETCODE_PARAM_ERROR_HVS_QP_SCL
@ NI_LOGAN_RETCODE_PARAM_ERROR_INTRA_QP
@ NI_LOGAN_RETCODE_PARAM_ERROR_DECODING_REFRESH_TYPE
@ NI_LOGAN_RETCODE_PARAM_ERROR_CU_LVL_RC_EN
@ NI_LOGAN_RETCODE_ERROR_LOCK_DOWN_DEVICE
@ NI_LOGAN_RETCODE_PARAM_ERROR_WIDTH_TOO_BIG
@ NI_LOGAN_RETCODE_ERROR_INVALID_ALLOCATION_METHOD
@ NI_LOGAN_RETCODE_ERROR_OPEN_DEVICE
@ NI_LOGAN_RETCODE_ERROR_EXCEED_MAX_NUM_SESSIONS
@ NI_LOGAN_RETCODE_PARAM_ERROR_RC_INIT_DELAY
@ NI_LOGAN_RETCODE_NVME_SC_VPU_RSRC_INSUFFICIENT
@ NI_LOGAN_RETCODE_PARAM_ERROR_MX_NUM_MERGE
@ NI_LOGAN_RETCODE_NVME_SC_INVALID_PARAMETER
@ NI_LOGAN_RETCODE_NVME_SC_REQUEST_NOT_COMPLETED
@ NI_LOGAN_RETCODE_NVME_SC_RESOURCE_NOT_FOUND
struct _ni_logan_instance_status_info ni_logan_instance_status_info_t
struct _ni_logan_nvme_command_t ni_logan_nvme_command_t
@ NI_LOGAN_DEVICE_TYPE_UPLOAD
@ NI_LOGAN_DEVICE_TYPE_ENCODER
@ NI_LOGAN_DEVICE_TYPE_DECODER
struct _ni_logan_lat_meas_q_entry_t ni_logan_lat_meas_q_entry_t
ni_logan_decode_buffer_flush_status
@ NI_LOGAN_DECODE_BUFFERS_FLUSHING
@ NI_LOGAN_DECODE_FLUSH_BUFFER_OFF
enum _ni_nvme_opcode ni_nvme_opcode_t
ni_logan_device_element_index
uint32_t rd_buf_avail_size
uint32_t wr_buf_avail_size
uint32_t frames_completed
ni_logan_lat_meas_q_entry_t * array