linux - resourceX linux pci内存mmap接口(interface)是什么字节序?

标签 linux linux-kernel pci

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

在 sys pseudofs 中可以看到该设备,我有:

/sys/bus/pci/devices/0001:03:00.0/resource0

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

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

最佳答案

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

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

关于linux - resourceX linux pci内存mmap接口(interface)是什么字节序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41935233/

相关文章:

c - 如何在没有段错误的情况下打印给定内存地址中的值?

linux - 使用 Linux 审计系统追踪 Web shell 攻击

通过树莓派切换套接字状态的Java函数

linux - 如何理解目录的 rwx 权限?

Linux 总可用内存

c - 如何在 linux 内核中隐藏/取消隐藏 'ls -a' 的文件?

linux - 在 probe() 函数中访问/设置 filp->private_data 成员

linux - 如何将网络数据包发送到特定的 pci 地址?

c - uboot函数pci_hose_read_config_word()定义?

c - 检查地址范围是否在进程地址空间中的石蕊测试?