欢迎光临
我们一直在努力

第六章 BO 的共享:6.4 dma-buf 中静态导入方实现

导入方(另一块 GPU、一张网卡、一个 V4L2 摄像头)拿到 fd 后,要把它变成一张本设备 DMA 引擎能够直接寻址的地址表。导入的调用顺序以及拆成 attach、map 两步的原因,6.2 节已经说明。本节沿 dma_buf_get() → attach → map → unmap → detach → dma_buf_put() 这条主线展开导入方一侧,依次介绍从 fd 取回 dma_buf、attach 与 map 在 core 内部的处理、sg_table 的使用约定,以及用完后按相反顺序的拆除。这条主线由静态与动态导入方共用,本节以静态导入方为准,动态导入方在其上的差异由 6.5 节讨论。

1. dma_buf_get:从 fd 取回 dma_buf

导入方从用户态拿到的是一个 fd,第一步是把它换回内核对象,方向与导出方的 dma_buf_fd() 正好相反:

struct dma_buf *dma_buf_get(int fd

赞(0)
未经允许不得转载:171主机测评 » 第六章 BO 的共享:6.4 dma-buf 中静态导入方实现
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址