xref: /OK3568_Linux_fs/external/rockit/mpi/sdk/include/rk_mpi_mb.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* GPL-2.0 WITH Linux-syscall-note OR Apache 2.0 */
2*4882a593Smuzhiyun /* Copyright (c) 2021 Fuzhou Rockchip Electronics Co., Ltd */
3*4882a593Smuzhiyun 
4*4882a593Smuzhiyun #ifndef INCLUDE_RT_MPI_RK_MPI_MB_H__
5*4882a593Smuzhiyun #define INCLUDE_RT_MPI_RK_MPI_MB_H__
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun #include "rk_comm_mb.h"
8*4882a593Smuzhiyun 
9*4882a593Smuzhiyun #ifdef __cplusplus
10*4882a593Smuzhiyun #if __cplusplus
11*4882a593Smuzhiyun extern "C" {
12*4882a593Smuzhiyun #endif
13*4882a593Smuzhiyun #endif /* __cplusplus */
14*4882a593Smuzhiyun 
15*4882a593Smuzhiyun MB_POOL  RK_MPI_MB_CreatePool(MB_POOL_CONFIG_S *pstMbPoolCfg);
16*4882a593Smuzhiyun RK_S32   RK_MPI_MB_DestroyPool(MB_POOL pool);
17*4882a593Smuzhiyun 
18*4882a593Smuzhiyun MB_BLK   RK_MPI_MB_GetMB(MB_POOL pool, RK_U64 u64Size, RK_BOOL block);
19*4882a593Smuzhiyun RK_S32   RK_MPI_MB_ReleaseMB(MB_BLK mb);
20*4882a593Smuzhiyun 
21*4882a593Smuzhiyun RK_U64   RK_MPI_MB_Handle2PhysAddr(MB_BLK mb);
22*4882a593Smuzhiyun RK_VOID *RK_MPI_MB_Handle2VirAddr(MB_BLK mb);
23*4882a593Smuzhiyun RK_S32   RK_MPI_MB_Handle2Fd(MB_BLK mb);
24*4882a593Smuzhiyun MB_POOL  RK_MPI_MB_Handle2PoolId(MB_BLK mb);
25*4882a593Smuzhiyun RK_S32   RK_MPI_MB_Handle2UniqueId(MB_BLK mb);
26*4882a593Smuzhiyun RK_U64   RK_MPI_MB_GetSize(MB_BLK mb);
27*4882a593Smuzhiyun RK_U64   RK_MPI_MB_GetLength(MB_BLK mb);
28*4882a593Smuzhiyun RK_U32   RK_MPI_MB_GetOffset(MB_BLK mb);
29*4882a593Smuzhiyun RK_S32   RK_MPI_MB_SetOffset(MB_BLK mb, RK_U32 u32Offset);
30*4882a593Smuzhiyun 
31*4882a593Smuzhiyun MB_BLK   RK_MPI_MB_VirAddr2Handle(RK_VOID *pstVirAddr);
32*4882a593Smuzhiyun RK_S32   RK_MPI_MB_UniqueId2Fd(RK_S32 s32UniqueId);
33*4882a593Smuzhiyun 
34*4882a593Smuzhiyun RK_S32   RK_MPI_MB_InquireUserCnt(MB_BLK mb);
35*4882a593Smuzhiyun RK_S32   RK_MPI_MB_AddUserCnt(MB_BLK mb);
36*4882a593Smuzhiyun 
37*4882a593Smuzhiyun RK_S32   RK_MPI_MB_SetModPoolConfig(MB_UID_E enMbUid, const MB_CONFIG_S *pstMbConfig);
38*4882a593Smuzhiyun RK_S32   RK_MPI_MB_GetModPoolConfig(MB_UID_E enMbUid, MB_CONFIG_S *pstMbConfig);
39*4882a593Smuzhiyun 
40*4882a593Smuzhiyun RK_S32   RK_MPI_MB_Init();
41*4882a593Smuzhiyun RK_S32   RK_MPI_MB_Exit();
42*4882a593Smuzhiyun RK_S32   RK_MPI_MB_SetConfig(const MB_CONFIG_S *pstMbConfig);
43*4882a593Smuzhiyun RK_S32   RK_MPI_MB_GetConfig(MB_CONFIG_S *pstMbConfig);
44*4882a593Smuzhiyun 
45*4882a593Smuzhiyun RK_S32   RK_MPI_MB_SetBufferStride(MB_BLK mb, RK_U32 u32HorStride, RK_U32 u32VerStride);
46*4882a593Smuzhiyun 
47*4882a593Smuzhiyun #ifdef __cplusplus
48*4882a593Smuzhiyun #if __cplusplus
49*4882a593Smuzhiyun }
50*4882a593Smuzhiyun #endif
51*4882a593Smuzhiyun #endif /* __cplusplus */
52*4882a593Smuzhiyun 
53*4882a593Smuzhiyun #endif /* INCLUDE_RT_MPI_RK_MPI_MB_H__ */
54