什么endiannes是resourceX linux pci内存mmap接口?

时间:2017-01-30 11:51:11

标签: linux linux-kernel pci

我们假设我已将PCI设备插入Linux主机。

在系统中,在sys pseudofs中看到设备,我有:

good

文件用于用户空间访问设备的pci内存bar0。

我的问题是这个内存的字节endiannes(小/大)是什么?

1 个答案:

答案 0 :(得分:0)

根据这个答案[1],mmap-ing资源文件最终在pci_mmap_page_range,这将使资源以设备的字节顺序可见,通常是PCI的小端。因此,如果您的架构字节顺序不同,则需要交换字节。内核ioread*iowrite*分别ioread*beiowrite*be分别在所有体系结构上以小端和大端进行读写,例如ioread32字节交换在一个大端架构上,并没有在一个小端。在用户空间中,您必须自己处理。

[1] https://stackoverflow.com/a/20299743/213180