如何读取变量类型dma_addr_t的值

时间:2015-04-02 13:48:15

标签: linux-kernel dma

dma_alloc_coherent()返回一个存储任何数据的指针。此函数采用类型dma_addr_t的变量,并用于DMA操作。所以我想在DMA操作开始之前读取这个值。

1 个答案:

答案 0 :(得分:1)

根据DMA-API.txt dma_alloc_coherent()返回CPU虚拟空间中的地址。同时dma_handle是同一区域的地址,可由实际DMA 的设备使用。如果您想获得该值,只需将其用作可包含此值的整数,或者将其打印如下所示:

  dma_addr_t handle;
  void *cpu_addr;

  cpu_addr = dma_alloc_coherent(…, &handle, …);
  pr_info("%s: got DMA address: %pad\n", __func__, &handle);