mirror of https://github.com/OpenIPC/firmware.git
73 lines
2.3 KiB
C
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__ */
|
|
|
|
|