firmware/br-ext-chip-xiongmai/package/xiongmai-osdrv-xm530/files/include/mpi_sys.h

73 lines
2.3 KiB
C

/******************************************************************************
Copyright (C), 2015-2025, XM Tech. Co., Ltd.
******************************************************************************
File Name : mpi_sys.h
Version : Initial Draft
Author : XM multimedia software group
Created : 2015/9/17
Description :
******************************************************************************/
#ifndef __MPI_SYS_H__
#define __MPI_SYS_H__
/******************************************/
#ifdef __cplusplus
#if __cplusplus
extern "C"
{
#endif
#endif /* __cplusplus */
#include "xm_common.h"
#include "xm_comm_sys.h"
XM_S32 XM_MPI_SYS_Init(XM_VOID);
/*
** u64Base is the global PTS of the system.
** ADVICE:
** 1. Bester to call XM_MPI_SYS_GetCurPts on the host board to get the u64Base.
** 2. When the linux start up, call XM_MPI_SYS_InitPtsBase to set the init pts.
** 3. When media bussines is running, synchronize the PTS one time per minute.
** And should call XM_MPI_SYS_SyncPts.
*/
/* alloc mmz memory in user context */
XM_S32 XM_MPI_SYS_MmzAlloc(XM_U32 *pu32PhyAddr, XM_VOID **ppVirtAddr,
const XM_CHAR *strMmb, const XM_CHAR *strZone, XM_U32 u32Len);
XM_S32 XM_MPI_SYS_MmzAlloc_Cached(XM_U32 *pu32PhyAddr, void **ppVitAddr,
const XM_CHAR *pstrMmb, const XM_CHAR *pstrZone, XM_U32 u32Len);
/* free mmz memory in user context */
XM_S32 XM_MPI_SYS_MmzFree(XM_U32 u32PhyAddr, XM_VOID *pVirtAddr);
XM_S32 XM_MPI_SYS_MmzFlushCache(XM_U32 u32PhyAddr, XM_VOID *pVirAddr,
XM_U32 u32Size);
/* fulsh cache */
XM_S32 XM_MPI_SYS_MmzFlushCache(XM_U32 u32PhyAddr, XM_VOID *pVirAddr,
XM_U32 u32Size);
/*
** Call the mmap function to map physical address to virtual address
** The system function mmap is too complicated, so we packge it.
*/
XM_VOID * XM_MPI_SYS_Mmap(XM_U32 u32PhyAddr, XM_U32 u32Size);
XM_S32 XM_MPI_SYS_Munmap(XM_VOID* pVirAddr, XM_U32 u32Size);
XM_S32 XM_MPI_SYS_MmzReset(void);
XM_S32 XM_MPI_SYS_Bind(MPP_CHN_S *pstSrcChn, MPP_CHN_S *pstDestChn);
XM_S32 XM_MPI_SYS_UnBind(MPP_CHN_S *pstSrcChn, MPP_CHN_S *pstDestChn);
/******************************************/
#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif /* __cplusplus */
/******************************************/
#endif /*__MPI_SYS_H__ */