Linux kernel Linux驱动程序:DMA/PCIe散射列表使用示例

Linux kernel Linux驱动程序:DMA/PCIe散射列表使用示例,linux-kernel,linux-device-driver,dma,pci-e,Linux Kernel,Linux Device Driver,Dma,Pci E,有没有人找到使用新的ish散点列表API的示例驱动程序(dma\u map\u sg等,适用于2.6.26+) 我有很多不相交的文档,但没有示例代码。我不想下载整个内核树并搜索可能正确使用或不正确使用API的驱动程序 搜索PCIe驱动程序几个小时后,我得到了Altera Avalon代码,它不会做任何复杂的事情,这是一个通过不注释来保持代码正确性的好例子,还有Opencores pexdrv,它不使用散点列表。我在Xilinx找不到任何有用的东西。谢谢 编辑 在我得到更接近的选票之前,“如何使用

有没有人找到使用新的ish散点列表API的示例驱动程序(
dma\u map\u sg
等,适用于2.6.26+)

我有很多不相交的文档,但没有示例代码。我不想下载整个内核树并搜索可能正确使用或不正确使用API的驱动程序

搜索PCIe驱动程序几个小时后,我得到了Altera Avalon代码,它不会做任何复杂的事情,这是一个通过不注释来保持代码正确性的好例子,还有Opencores pexdrv,它不使用散点列表。我在Xilinx找不到任何有用的东西。谢谢

编辑
在我得到更接近的选票之前,“如何使用API”是一个完全合法的编程问题,如果唯一的具体例子是在某个地方的代码,那么肯定“那个示例代码在哪里”也是一个合理的问题。然后最好从内核源代码树中的文档文件夹开始。它应该类似于旧的、特定于PCI的DMA散点列表API(
PCI\u map\u sg
,等等),只是新的API采用了一个
struct device*
而不是特定于PCI的
struct PCI\u dev*
。因此,您可以寻找使用该旧API的示例。实际上,我已经编写了一个scatterlist实现,但它是在2.6.10上,未经测试。2.6.24从
散点列表
中删除
页面
成员,并更改API。树上的一些现有驱动程序当时已修补。标准的
文档
文档(dmamapping/DMA-API/DMA-API-HOWTO)基本上只是讨论文档,有一些小的未连接的代码片段,没有针对单个调用的明确文档。基本上缺少的是一个完整的工作示例。如果您考虑2.626+,那么最好开始的地方是内核源树中的文档文件夹。它应该类似于旧的、PCI特定的、DMA散列列表API(<代码> PCIIMAPXSG < /代码>等)。除了新的API采用了一个
struct设备*
,而不是特定于PCI的
struct PCI\u dev*
。因此,您可以寻找使用该旧API的示例。实际上,我已经编写了一个scatterlist实现,但它是在2.6.10上,未经测试。2.6.24从
散点列表
中删除
页面
成员,并更改API。树上的一些现有驱动程序当时已修补。标准的
文档
文档(dmamapping/DMA-API/DMA-API-HOWTO)基本上只是讨论文档,有一些小的未连接的代码片段,没有针对单个调用的明确文档。基本上缺少的是一个完整的工作示例。