d_sync_mem 内核服务
用途
允许设备驱动程序指示可能需要刷新先前已映射的缓冲区。
语法
int d_sync_mem(d_handle_t handle, dio_t blist)描述
同步内存 服务允许设备驱动程序指示可能需要刷新先前映射的缓冲区,因为新的 DMA 即将启动,或者先前的 DMA 现已完成。 同步内存 不是已导出的内核服务,而是由 映射初始化 根据平台特征确定并通过 句柄 结构提供给调用者的特定于总线的实用程序。 同步内存 允许驱动程序识别超出初始映射 (映射列表) 和映射终止 (未映射列表) 的一致性点的其他一致性点。 因此, 同步内存 提供了一种长期映射缓冲区并仍处理潜在数据一致性问题的方法。
卜列尔 参数是一个指向 迪奥 结构的指针,该结构描述 映射列表所返回的初始映射。 请注意,对于退信缓冲,数据方向也由该初始映射隐式定义。
- 如果 映射列表 调用描述从系统内存到设备的传输,那么使用相应 卜列尔 的后续 同步内存 调用将使内存视图同步。 这假定原始系统内存页面包含正确的数据。
- 如果 映射列表 调用描述从设备到系统内存的传输,那么后续 同步内存 调用将对内存视图进行同步。 这假定设备直接访问的退信页面包含正确的数据。
注: 您可以使用 /usr/include/sys/dma.h 文件中提供的 D_SYNC_MEM 宏来编码对 d_sync_mem 内核服务的调用。
参数
| 项 | 描述 |
|---|---|
| 已处理 | 指示 映射初始化返回的唯一 dma 句柄。 |
| 迪奥特卜列斯特 | 原始 映射列表返回的向量列表。 |
返回值
| 项 | 描述 |
|---|---|
| DMA_SUCC | 卜列尔 所描述的缓冲区已同步。 |
| DMA_FAIL | 无法对缓冲区进行同步。 |