101 lines
3.2 KiB
C
101 lines
3.2 KiB
C
/*
|
|
* Copyright (c) XMEDIA. All rights reserved.
|
|
*/
|
|
|
|
#ifndef XMEDIA_MMZ_H
|
|
#define XMEDIA_MMZ_H
|
|
|
|
#include "xmedia_type.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*
|
|
* 函数功能:申请 MMZ 内存
|
|
* 函数参数:
|
|
* mmz_name - 输入参数,申请的内存内存池名
|
|
* buf_name - 输入参数,申请的内存命名
|
|
* size - 输入参数,申请的内存大小
|
|
* 返回值:
|
|
* 0 - 函数执行失败,返回空
|
|
* others - 函数执行成功,返回申请内存的物理地址
|
|
*/
|
|
xmedia_u64 xmedia_mmz_alloc(const xmedia_char *mmz_name, const xmedia_char *buf_name, xmedia_u32 size);
|
|
|
|
/*
|
|
* 函数功能:释放 MMZ 内存
|
|
* 函数参数:
|
|
* phy_addr - 输入参数,待释放的MMZ内存物理地址
|
|
* 返回值:
|
|
* XMEDIA_SUCCESS - 函数执行成功
|
|
* others - 函数执行失败,返回错误码
|
|
*/
|
|
xmedia_s32 xmedia_mmz_free(xmedia_u64 phy_addr);
|
|
|
|
/*
|
|
* 函数功能:映射内存
|
|
* 函数参数:
|
|
* phy_addr - 输入参数,待映射内存对应的物理地址
|
|
* size - 输入参数,待映射内存的大小
|
|
* cached - 输入参数,映射时是否带cache
|
|
* 返回值:
|
|
* XMEDIA_NULL - 函数执行失败,返回空指针
|
|
* others - 函数执行成功过,返回映射后的虚拟地址
|
|
*/
|
|
xmedia_void* xmedia_mmz_map(xmedia_u64 phy_addr, xmedia_u32 size, xmedia_bool cached);
|
|
|
|
/*
|
|
* 函数功能:解除映射
|
|
* 函数参数:
|
|
* virt_addr - 输入参数,待解除映射内存对应的虚拟地址
|
|
* 返回值:
|
|
* XMEDIA_SUCCESS - 函数执行成功
|
|
* others - 函数执行失败,返回错误码
|
|
*/
|
|
xmedia_s32 xmedia_mmz_unmap(void *virt_addr);
|
|
|
|
/*
|
|
* 函数功能:刷新 cache 里的内容到MMZ内存并且使 cache 里的内容无效
|
|
* 函数参数:
|
|
* phy_addr - 输入参数,待刷新cache对应的内存物理地址
|
|
* virt_addr - 输入参数,待刷新cache对应的内存虚拟地址
|
|
* size - 输入参数,待刷新cache区域大小
|
|
* 返回值:
|
|
* XMEDIA_SUCCESS - 函数执行成功
|
|
* others - 函数执行失败,返回错误码
|
|
*/
|
|
xmedia_s32 xmedia_mmz_flush_cache(xmedia_u64 phy_addr, xmedia_void *virt_addr, xmedia_u32 size);
|
|
|
|
/*
|
|
* 函数功能:将用户空间mmz的虚拟地址转换成对应的物理地址
|
|
* 函数参数:
|
|
* pphy_addr - 输入参数,输出的mmz内存物理地址保存在此指针中
|
|
* virt_addr - 输入参数,mmz的内存虚拟地址
|
|
* 返回值:
|
|
* XMEDIA_SUCCESS - 函数执行成功
|
|
* others - 函数执行失败,返回错误码
|
|
*/
|
|
xmedia_s32 xmedia_mmz_virt_to_phy(xmedia_void *virt_addr, xmedia_u64 *pphy_addr);
|
|
|
|
/*
|
|
* 函数功能:获取用户空间mmz map时是否cached
|
|
* 函数参数:
|
|
* pcached - 输入参数,输出的mmz内存是否cached保存在此指针中
|
|
* virt_addr - 输入参数,mmz的内存虚拟地址
|
|
* 返回值:
|
|
* XMEDIA_SUCCESS - 函数执行成功
|
|
* others - 函数执行失败,返回错误码
|
|
*/
|
|
xmedia_s32 xmedia_mmz_is_cached(xmedia_void *virt_addr, xmedia_bool *pcached);
|
|
|
|
xmedia_void xmedia_mmz_init(xmedia_void);
|
|
|
|
xmedia_void xmedia_mmz_exit(xmedia_void);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|