接口设计
用户进程通过 /dev/aic_ve 节点打开 VE 驱动。
IOC_VE_GET_CLIENT
接口语法:
intioctl(intfd,unsignedlongcmd);
函数原型 | int drv_ve_control(struct aic_ve_client *client, int cmd, void *arg) |
---|---|
功能说明 | 获取 VE 设备独占权限 |
参数 |
cmd:IOC_VE_GET_CLIENT |
返回值 | 0:成功;<0:失败 |
注意事项 | 无 |
IOC_VE_PUT_CLIENT
接口语法:
intioctl(intfd,unsignedlongcmd);
函数原型 | int drv_ve_control(struct aic_ve_client *client, int cmd, void *arg) |
---|---|
功能说明 | 释放 VE 设备独占权限 |
参数定义 |
cmd:IOC_VE_PUT_CLIENT |
返回值 | 0:成功;<0:失败 |
注意事项 |
IOC_VE_GET_CLIENT 和 IOC_VE_PUT_CLIENT 的调用必须一一对应 |
IOC_VE_WAIT
接口语法:
intioctl(intfd,unsignedlongcmd,structwait_info*info);
函数原型 | int drv_ve_control(struct aic_ve_client *client, int cmd, void *arg) |
---|---|
功能说明 | 等待 VE 驱动编解码完成,获取 VE 寄存器状态 |
参数 |
CMD:IOC_VE_WAITinfo: 指向 info 指针 |
返回值 | 0:成功;<0:失败 |
注意事项 |
IOC_VE_WAIT 的调用必须在 IOC_VE_GET_CLIENT 和 IOC_VE_PUT_CLIENT 之间 |
IOC_VE_GET_INFO
接口语法:
intioctl(intfd,unsignedlongcmd,structve_info*info);
功能说明 | 获取 struct ve_info 数据 |
---|---|
参数 | CMD:IOC_VE_GET_INFOinfo: 指向 info 指针 |
返回值 | 0:成功;<0:失败 |
注意事项 | 无 |
IOC_VE_SET_INFO
接口语法:
intioctl(intfd,unsignedlongcmd,structve_info*info);
功能说明 | 设置 struct ve_info 数据 |
---|---|
参数 | CMD:IOC_VE_SET_INFOinfo: 指向 info 指针 |
返回值 | 0:成功;<0:失败 |
注意事项 | 无 |
IOC_VE_RESET
接口语法:
intioctl(intfd,unsignedlongcmd);
功能说明 | VE 驱动硬件复位 |
---|---|
参数 |
cmd:IOC_VE_RESET |
返回值 | 0:成功;<0:失败 |
注意事项 | 无 |
IOC_VE_ADD_DMA_BUF
接口语法:
intioctl(intfd,unsignedlongcmd,structdma_buf_info*buf);
功能说明 | 加载 DMA buffer, 获取 DMA buffer 物理地址 |
---|---|
参数 | CMD:IOC_VE_ADD_DMA_BUFbuf: 指向 info 指针 |
返回值 | 0:成功;<0:失败 |
注意事项 | 无 |
IOC_VE_RM_DMA_BUF
接口语法:
intioctl(intfd,unsignedlongcmd,structdma_buf_info*buf);
功能说明 | 移除 DMA buffer |
---|---|
参数 | CMD:IOC_VE_RM_DMA_BUFbuf: 指向 info 指针 |
返回值 | 0:成功;<0:失败 |
注意事项 | 无 |