halHdcFastSend

函数功能

HDC免拷贝快速发送消息接口。

函数原型

hdcError_t halHdcFastSend(HDC_SESSION session, struct drvHdcFastSendMsg msg, UINT64 flag, UINT32 timeout)

参数说明

参数名

说明

session

指定发送消息的session。

类型:HDC_SESSION

msg

发送的消息。

类型:drvHdcFastSendMsg

flag

阻塞标志。

  • 0:阻塞死等,如果发送通道阻塞则会等待通道空闲,死等。
  • 1:不阻塞,如果发送通道阻塞则不发送数据,立马返回。
  • 2:阻塞直到超时,如果发送通道阻塞则会等待通道空闲,直到超时。

类型:UINT64。

timeout

当flag取值为“2"时,设置阻塞超时时间,单位毫秒。

类型:UINT32。

返回值说明

halHdcFastSend接口是异步发送接口,在发送数据时,底层通过DMA快速搬运,源地址一直都是使用的用户申请的内存地址。

因此,使用此接口时,建议用户对消息收发做二次管理,当对端接收到数据后,需要返回响应消息给发送端。在发送端收到响应消息后,用户就可以对内存进行释放或者复用。

约束说明

使用此接口时,需要提前通过HDC申请好内存。

halHdcFastSend、halHdcFastRecv接口,接收、发送数据buffer或控制消息buffer需同时给定。例如发送数据,则需要给定源数据大页内存地址和接收侧的目的大页内存地址。