下载
中文
注册

drvHdcMallocEx

函数功能

申请快速通道大页内存。

快速通道内存分“发送数据内存”“接收数据内存”“发送控制消息内存” “接收控制消息内存”四种,使用快速通道收发数据之前,根据使用场景需要提前申请内存。

函数原型

void *drvHdcMallocEx(enum drvHdcMemType mem_type, void *addr, unsigned int align, unsigned int len, int devid,unsigned int flag)

参数说明

参数名

输入/输出

说明

mem_type

输入

申请的内存类型

类型:drvHdcMemType

addr

输出

申请快速通道内存成功后返回的虚拟地址

指定起始申请地址,从该地址后面找到一个可用页申请。

若传入默认值“NULL”,表示由系统指定。

类型:void *。

align

输入

对齐长度,仅支持4k(host+device)和2M(device侧),当前该参数预留,为后续扩展使用,保持默认值“0”即可。

类型:int。

len

输入

申请内存大小,取值范围:0~512M。

类型:int。

devid

输入

设备的Device ID,取值范围:[0,64)。

类型:int。

flag

输入

内存申请标志,有以下取值:

  • HDC_FLAG_MAP_VA32BIT:DVPP 4G限制内存空间的地址。
  • HDC_FLAG_MAP_HUGE:大页内存
  • 其他:普通内存

类型:int。

返回值说明

返回申请到的内存地址。

约束说明

  • 调用内核函数申请物理内存,连续物理内存不足时会返回失败,如果是指定了DVPP用的4G限制内存范围内的空间申请,超出可能会申请失败,非DVPP请不要指定在该范围。