aboutsummaryrefslogtreecommitdiff
path: root/kernel-headers/val_api_public.h
diff options
context:
space:
mode:
authorMister Oyster <oysterized@gmail.com>2017-01-02 12:44:35 +0100
committerMister Oyster <oysterized@gmail.com>2017-01-02 12:44:35 +0100
commita184d985bf43d3fe6eeba971bc6b32f79ea38b37 (patch)
tree6f6e56e090777cc149bc1ab39e5987cc2b03e867 /kernel-headers/val_api_public.h
initial releasecm-13.0
Diffstat (limited to 'kernel-headers/val_api_public.h')
-rw-r--r--kernel-headers/val_api_public.h402
1 files changed, 402 insertions, 0 deletions
diff --git a/kernel-headers/val_api_public.h b/kernel-headers/val_api_public.h
new file mode 100644
index 0000000..9af8887
--- /dev/null
+++ b/kernel-headers/val_api_public.h
@@ -0,0 +1,402 @@
+#ifndef _VAL_API_PUBLIC_H_
+#define _VAL_API_PUBLIC_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "val_types_public.h"
+
+
+/**
+ * @par Function
+ * eVideoInitMVA
+ * @par Description
+ * Alloc the handle for MVA usage
+ * @param
+ * a_pvHandle [IN] The handle for MVA usage
+ * @par Returns
+ * VAL_UINT32_T [OUT] Non-Used
+ */
+VAL_UINT32_T eVideoInitMVA(VAL_VOID_T **a_pvHandle);
+
+
+/**
+ * @par Function
+ * eVideoAllocMVA
+ * @par Description
+ * Use the given va and size, to get the MVA
+ * @param
+ * a_pvHandle [IN] The handle for MVA usage
+ * @param
+ * a_u4Va [IN] The given va used to get MVA
+ * @param
+ * ap_u4Pa [OUT] The MVA
+ * @param
+ * a_u4Size [IN] The given size used to get MVA
+ * @param
+ * a_pvM4uConfig [IN] The MVA config info
+ * @par Returns
+ * VAL_UINT32_T [OUT] Non-Used
+ */
+VAL_UINT32_T eVideoAllocMVA(
+ VAL_VOID_T *a_pvHandle,
+ VAL_UINT32_T a_u4Va,
+ VAL_UINT32_T *ap_u4Pa,
+ VAL_UINT32_T a_u4Size,
+ VAL_VCODEC_M4U_BUFFER_CONFIG_T * a_pvM4uConfig
+);
+
+/**
+ * @par Function
+ * eVideoFreeMVA
+ * @par Description
+ * Use the given va, MVA and size, to free the MVA
+ * @param
+ * a_pvHandle [IN] The handle for MVA usage
+ * @param
+ * a_u4Va [IN] The given va used to free MVA
+ * @param
+ * a_u4Pa [IN] The given MVA used to free MVA
+ * @param
+ * a_u4Size [IN] The given size used to get MVA
+ * @param
+ * a_pvM4uConfig [IN] The MVA config info
+ * @par Returns
+ * VAL_UINT32_T [OUT] Non-Used
+ */
+VAL_UINT32_T eVideoFreeMVA(
+ VAL_VOID_T *a_pvHandle,
+ VAL_UINT32_T a_u4Va,
+ VAL_UINT32_T a_u4Pa,
+ VAL_UINT32_T a_u4Size,
+ VAL_VCODEC_M4U_BUFFER_CONFIG_T * a_pvM4uConfig
+);
+
+
+/**
+ * @par Function
+ * eVideoDeInitMVA
+ * @par Description
+ * Free the handle for MVA usage
+ * @param
+ * a_pvHandle [IN] The handle for MVA usage
+ * @par Returns
+ * VAL_UINT32_T [OUT] Non-Used
+ */
+VAL_UINT32_T eVideoDeInitMVA(VAL_VOID_T *a_pvHandle);
+
+
+/**
+ * @par Function
+ * eVideoGetM4UModuleID
+ * @par Description
+ * Get the M4U module port ID
+ * @param
+ * u4MemType [IN] The memory usage for VENC or VDEC
+ * @par Returns
+ * VAL_UINT32_T [OUT] The M4U module port ID for VENC or VDEC
+ */
+VAL_INT32_T eVideoGetM4UModuleID(VAL_UINT32_T u4MemType);
+
+
+/**
+ * @par Function
+ * eVideoAtoi
+ * @par Description
+ * The abstraction layer for atoi() function
+ * @param
+ * a_prParam [IN] The structure contains used info for atoi()
+ * @param
+ * a_u4ParamSize [IN] The size of a_prParam structure
+ * @par Returns
+ * VAL_RESULT_T [OUT] VAL_RESULT_NO_ERROR for success, VAL_RESULT_INVALID_PARAMETER for fail
+ */
+VAL_RESULT_T eVideoAtoi(VAL_ATOI_T *a_prParam, VAL_UINT32_T a_u4ParamSize);
+
+
+/**
+ * @par Function
+ * eVideoStrStr
+ * @par Description
+ * The abstraction layer for strstr() function
+ * @param
+ * a_prParam [IN] The structure contains used info for strstr()
+ * @param
+ * a_u4ParamSize [IN] The size of a_prParam structure
+ * @par Returns
+ * VAL_RESULT_T [OUT] VAL_RESULT_NO_ERROR for success, VAL_RESULT_INVALID_PARAMETER for fail
+ */
+VAL_RESULT_T eVideoStrStr(VAL_STRSTR_T *a_prParam, VAL_UINT32_T a_u4ParamSize);
+
+
+/**
+ * @par Function
+ * eVideoFlushCache
+ * @par Description
+ * The flush cache usage function
+ * @param
+ * a_prParam [IN] The structure contains used info for flush cache
+ * @param
+ * a_u4ParamSize [IN] The size of a_prParam structure
+ * @param
+ * optype [IN] 0 for flush all, 1 for flush by page
+ * @par Returns
+ * VAL_RESULT_T [OUT] VAL_RESULT_NO_ERROR for success, VAL_RESULT_INVALID_MEMORY for fail
+ */
+VAL_RESULT_T eVideoFlushCache(VAL_MEMORY_T *a_prParam, VAL_UINT32_T a_u4ParamSize, VAL_UINT32_T optype);
+
+
+/**
+ * @par Function
+ * eVideoInvalidateCache
+ * @par Description
+ * The invalidate cache usage function
+ * @param
+ * a_prParam [IN] The structure contains used info for invalidate cache
+ * @param
+ * a_u4ParamSize [IN] The size of a_prParam structure
+ * @param
+ * optype [IN] 0 for flush all, 1 for invalidate by page
+ * @par Returns
+ * VAL_RESULT_T [OUT] VAL_RESULT_NO_ERROR for success, VAL_RESULT_INVALID_MEMORY for fail
+ */
+VAL_RESULT_T eVideoInvalidateCache(VAL_MEMORY_T *a_prParam, VAL_UINT32_T a_u4ParamSize, VAL_UINT32_T optype);
+
+
+/**
+ * @par Function
+ * eVideoMemAlloc
+ * @par Description
+ * The memory allocate usage function
+ * @param
+ * a_prParam [IN] The structure contains used info for allocate memory
+ * @param
+ * a_u4ParamSize [IN] The size of a_prParam structure
+ * @par Returns
+ * VAL_RESULT_T [OUT]
+ * VAL_RESULT_NO_ERROR for success,
+ * VAL_RESULT_INVALID_MEMORY or VAL_RESULT_INVALID_PARAMETER for fail
+ */
+VAL_RESULT_T eVideoMemAlloc(VAL_MEMORY_T *a_prParam, VAL_UINT32_T a_u4ParamSize);
+
+
+/**
+ * @par Function
+ * eVideoMemFree
+ * @par Description
+ * The memory free usage function
+ * @param
+ * a_prParam [IN] The structure contains used info for free memory
+ * @param
+ * a_u4ParamSize [IN] The size of a_prParam structure
+ * @par Returns
+ * VAL_RESULT_T [OUT] VAL_RESULT_NO_ERROR for success, VAL_RESULT_INVALID_PARAMETER for fail
+ */
+VAL_RESULT_T eVideoMemFree(VAL_MEMORY_T *a_prParam, VAL_UINT32_T a_u4ParamSize);
+
+
+/**
+ * @par Function
+ * eVideoMemSet
+ * @par Description
+ * The memory set usage function
+ * @param
+ * a_prParam [IN] The structure contains used info for set memory
+ * @param
+ * a_u4ParamSize [IN] The size of a_prParam structure
+ * @param
+ * a_u4Value [IN] The value for set to memory
+ * @param
+ * a_u4Size [IN] The size of "memory" want to be set
+ * @par Returns
+ * VAL_RESULT_T [OUT] VAL_RESULT_NO_ERROR for success, VAL_RESULT_INVALID_PARAMETER for fail
+ */
+VAL_RESULT_T eVideoMemSet(
+ VAL_MEMORY_T *a_prParam,
+ VAL_UINT32_T a_u4ParamSize,
+ VAL_INT32_T a_u4Value,
+ VAL_UINT32_T a_u4Size
+);
+
+
+/**
+ * @par Function
+ * eVideoMemCpy
+ * @par Description
+ * The memory copy usage function
+ * @param
+ * a_prParamDst [IN] The structure contains destination memory info for copy memory
+ * @param
+ * a_u4ParamDstSize [IN] The size of a_prParamDst structure
+ * @param
+ * a_prParamSrc [IN] The structure contains source memory info for copy memory
+ * @param
+ * a_u4ParamSrcSize [IN] The size of a_prParamSrc structure
+ * @param
+ * a_u4Size [IN] The size of "source memory" and "destination memory" want to be copied
+ * @par Returns
+ * VAL_RESULT_T [OUT] VAL_RESULT_NO_ERROR for success, VAL_RESULT_INVALID_PARAMETER for fail
+ */
+VAL_RESULT_T eVideoMemCpy(
+ VAL_MEMORY_T *a_prParamDst,
+ VAL_UINT32_T a_u4ParamDstSize,
+ VAL_MEMORY_T *a_prParamSrc,
+ VAL_UINT32_T a_u4ParamSrcSize,
+ VAL_UINT32_T a_u4Size
+);
+
+
+/**
+ * @par Function
+ * eVideoMemCmp
+ * @par Description
+ * The memory compare usage function
+ * @param
+ * a_prParamSrc1 [IN] The structure contains memory 1 info for compare memory
+ * @param
+ * a_u4ParamSrc1Size [IN] The size of a_prParamSrc1 structure
+ * @param
+ * a_prParamSrc2 [IN] The structure contains memory 2 info for compare memory
+ * @param
+ * a_u4ParamSrc2Size [IN] The size of a_prParamSrc2 structure
+ * @param
+ * a_u4Size [IN] The size of "memory 1" and "memory 2" want to be compared
+ * @par Returns
+ * VAL_RESULT_T [OUT] VAL_RESULT_NO_ERROR for success, VAL_RESULT_INVALID_PARAMETER for fail
+ */
+VAL_RESULT_T eVideoMemCmp(
+ VAL_MEMORY_T *a_prParamSrc1,
+ VAL_UINT32_T a_u4ParamSrc1Size,
+ VAL_MEMORY_T *a_prParamSrc2,
+ VAL_UINT32_T a_u4ParamSrc2Size,
+ VAL_UINT32_T a_u4Size
+);
+
+
+/**
+ * @par Function
+ * WaitISR
+ * @par Description
+ * The ISR usage related function, whene trigger HW, we will use to wait HW complete
+ * @param
+ * a_prParam [IN] The structure contains used info for ISR usage
+ * @param
+ * a_u4ParamSize [IN] The size of a_prParam structure
+ * @par Returns
+ * VAL_RESULT_T [OUT] VAL_RESULT_NO_ERROR for success, VAL_RESULT_ISR_TIMEOUT for fail
+ */
+VAL_RESULT_T WaitISR(VAL_ISR_T *a_prParam, VAL_UINT32_T a_u4ParamSize);
+
+
+/**
+ * @par Function
+ * eVideoLockHW
+ * @par Description
+ * The single/multiple instance usage function, to allow using HW
+ * @param
+ * a_prParam [IN] The structure contains used info for Lock HW
+ * @param
+ * a_u4ParamSize [IN] The size of a_prParam structure
+ * @par Returns
+ * VAL_RESULT_T [OUT] VAL_RESULT_NO_ERROR for success, VAL_RESULT_UNKNOWN_ERROR for fail
+ */
+VAL_RESULT_T eVideoLockHW(VAL_HW_LOCK_T *a_prParam, VAL_UINT32_T a_u4ParamSize);
+
+
+/**
+ * @par Function
+ * eVideoLockHW
+ * @par Description
+ * The single/multiple instance usage function, to release HW for another instance
+ * @param
+ * a_prParam [IN] The structure contains used info for unLock HW
+ * @param
+ * a_u4ParamSize [IN] The size of a_prParam structure
+ * @par Returns
+ * VAL_RESULT_T [OUT] VAL_RESULT_NO_ERROR for success, VAL_RESULT_UNKNOWN_ERROR for fail
+ */
+VAL_RESULT_T eVideoUnLockHW(VAL_HW_LOCK_T *a_prParam, VAL_UINT32_T a_u4ParamSize);
+
+
+/**
+ * @par Function
+ * eVideoGetTimeOfDay
+ * @par Description
+ * The timing usage function, used to performance profiling
+ * @param
+ * a_prParam [IN] The structure contains used info for timing usage
+ * @param
+ * a_u4ParamSize [IN] The size of a_prParam structure
+ * @par Returns
+ * VAL_RESULT_T [OUT] VAL_RESULT_NO_ERROR for success
+ */
+VAL_RESULT_T eVideoGetTimeOfDay(VAL_TIME_T *a_prParam, VAL_UINT32_T a_u4ParamSize);
+
+
+/**
+ * @par Function
+ * eHalEMICtrlForRecordSize
+ * @par Description
+ * The recording info function, to get the record size for setting to EMI controller
+ * @param
+ * a_prDrvRecordSize [IN] The structure contains used info for recording size
+ * @par Returns
+ * VAL_RESULT_T [OUT] VAL_RESULT_NO_ERROR for success
+ */
+VAL_RESULT_T eHalEMICtrlForRecordSize(VAL_RECORD_SIZE_T *a_prDrvRecordSize);
+
+
+/**
+ * @par Function
+ * eVideoVcodecSetThreadID
+ * @par Description
+ * The thread info function, to set thread ID for used to lock/unlock HW and priority adjustment
+ * @param
+ * a_prThreadID [IN] The structure contains used info for thread info
+ * @par Returns
+ * VAL_RESULT_T [OUT] VAL_RESULT_NO_ERROR for success
+ */
+VAL_RESULT_T eVideoVcodecSetThreadID(VAL_VCODEC_THREAD_ID_T *a_prThreadID);
+
+
+/**
+ * @par Function
+ * eVideoGetParam
+ * @par Description
+ * The parameter info function, to get val parameter
+ * @param
+ * a_eType [IN] The VAL_GET_TYPE_T enum
+ * @param
+ * a_pvInParam [IN] The input parameter
+ * @param
+ * a_pvOutParam [OUT] The output parameter
+ * @par Returns
+ * VAL_RESULT_T [OUT] VAL_RESULT_NO_ERROR for success
+ */
+VAL_RESULT_T eVideoGetParam(VAL_GET_TYPE_T a_eType, VAL_VOID_T *a_pvInParam, VAL_VOID_T *a_pvOutParam);
+
+/**
+ * @par Function
+ * eVideoSetParam
+ * @par Description
+ * The parameter info function, to set val parameter
+ * @param
+ * a_eType [IN] The VAL_SET_TYPE_T enum
+ * @param
+ * a_pvInParam [IN] The input parameter
+ * @param
+ * a_pvOutParam [OUT] The output parameter
+ * @par Returns
+ * VAL_RESULT_T [OUT] VAL_RESULT_NO_ERROR for success
+ */
+VAL_RESULT_T eVideoSetParam(VAL_SET_TYPE_T a_eType, VAL_VOID_T *a_pvInParam, VAL_VOID_T *a_pvOutParam);
+
+VAL_RESULT_T eVideoE3TCMPowerON(VAL_UINT32_T a_u4E3TCMClk);
+VAL_RESULT_T eVideoE3TCMPowerOFF(VAL_UINT32_T a_u4E3TCMClk);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* #ifndef _VAL_API_PUBLIC_H_ */