ZBLOG

struct rte_pci_device数据结构

struct rte_pci_device {

TAILQ_ENTRY(rte_pci_device) next;  // 链表结构,表示下一个 PCI 设备
struct rte_devargs *devargs;        // 描述PCI设备的参数
struct rte_pci_addr addr;           // PCI 设备地址信息
uint16_t id;                        // PCI 设备 ID
uint16_t subsystem_vendor_id;       // PCI 子系统厂商 ID
uint16_t subsystem_device_id;       // PCI 子系统设备 ID
struct rte_pci_driver *driver;      // 对应的 PCI 驱动程序
void *mem_resource[PCI_MAX_RESOURCE]; // 内存资源,PCI_MAX_RESOURCE = 6
int numa_node;                      // NUMA 节点
uint8_t max_vfs;                    // 最大虚拟功能数
uint8_t vfio_container_fd;          // VFIO 容器文件描述符
uint32_t kdrv;
union {
    int uio_cfg_fd;                 // UIO 配置文件描述符
    uint32_t vf_token;              // VF Token
};
uint32_t intr_handle.fd;            // 中断处理句柄
enum rte_intr_handle_type intr_handle.type;  // 中断类型

}; 其中,rte_pci_driver数据结构用于描述PCI驱动程序。rte_pci_addr数据结构用于保存PCI设备的物理地址信息。rte_devargs数据结构用于描述PCI设备的参数。tailq_entry是指向下一个PCI设备的指针。uint16_t和uint32_t是无符号短整型和整型,分别占2个字节和4个字节,用于存储特定的设备ID、厂商ID等信息。void *mem_resource[PCI_MAX_RESOURCE]用于存储PCI设备内存资源的首地址,numa_node表示NUMA节点编号。uint8_t max_vfs表示最大虚拟功能数,vfio_container_fd是VFIO容器文件描述符。kdrv是内核驱动类型,使用宏RTE_PCI_KDRV_UNKNOWN、RTE_PCI_KDRV_IGB_UIO等表示不同类型,uio_cfg_fd表示UIO配置文件描述符,vf_token是VF Token。intr_handle.fd表示中断处理句柄,intr_handle.type表示中断类型,包括RTE_INTR_HANDLE_UNKNOWN、RTE_INTR_HANDLE_UIO等。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://sdn.0voice.com/?id=402

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?