⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pt-msi.h

📁 xen虚拟机源代码安装包
💻 H
字号:
#ifndef _PT_MSI_H#define _PT_MSI_H#include "vl.h"#include "pci/pci.h"#include "pass-through.h"#define  PCI_CAP_ID_MSI     0x05    /* Message Signalled Interrupts */#define  PCI_CAP_ID_MSIX    0x11    /* MSI-X *//* Message Signalled Interrupts registers */#define PCI_MSI_FLAGS       2   /* Various flags */#define  PCI_MSI_FLAGS_64BIT    0x80    /* 64-bit addresses allowed */#define  PCI_MSI_FLAGS_QSIZE    0x70    /* Message queue size configured */#define  PCI_MSI_FLAGS_QMASK    0x0e    /* Maximum queue size available */#define  PCI_MSI_FLAGS_ENABLE   0x01    /* MSI feature enabled */#define PCI_MSI_RFU         3   /* Rest of capability flags */#define PCI_MSI_ADDRESS_LO  4   /* Lower 32 bits */#define PCI_MSI_ADDRESS_HI  8   /* Upper 32 bits (if PCI_MSI_FLAGS_64BIT set) */#define PCI_MSI_DATA_32     8   /* 16 bits of data for 32-bit devices */#define PCI_MSI_DATA_64     12  /* 16 bits of data for 64-bit devices *//* MSI-X */#define  PCI_MSIX_ENABLE    0x8000#define  PCI_MSIX_MASK      0x4000#define  PCI_MSIX_TABSIZE   0x03ff#define PCI_MSIX_TABLE      4#define PCI_MSIX_PBA        8#define  PCI_MSIX_BIR       0x7#define MSI_FLAG_UNINIT 0x1000#define PT_MSI_MAPPED   0x2000#define MSI_DATA_VECTOR_SHIFT          0#define     MSI_DATA_VECTOR(v)         (((u8)v) << MSI_DATA_VECTOR_SHIFT)#define MSI_DATA_DELIVERY_SHIFT        8#define     MSI_DATA_DELIVERY_FIXED    (0 << MSI_DATA_DELIVERY_SHIFT)#define     MSI_DATA_DELIVERY_LOWPRI   (1 << MSI_DATA_DELIVERY_SHIFT)#define MSI_DATA_LEVEL_SHIFT           14#define     MSI_DATA_LEVEL_DEASSERT    (0 << MSI_DATA_LEVEL_SHIFT)#define     MSI_DATA_LEVEL_ASSERT      (1 << MSI_DATA_LEVEL_SHIFT)#define MSI_DATA_TRIGGER_SHIFT         15#define     MSI_DATA_TRIGGER_EDGE      (0 << MSI_DATA_TRIGGER_SHIFT)#define     MSI_DATA_TRIGGER_LEVEL     (1 << MSI_DATA_TRIGGER_SHIFT)/*   + * Shift/mask fields for APIC-based bus address   + */#define MSI_ADDR_HEADER                0xfee00000#define MSI_TARGET_CPU_SHIFT           12#define MSI_ADDR_DESTID_MASK           0xfff0000f#define     MSI_ADDR_DESTID_CPU(cpu)   ((cpu) << MSI_TARGET_CPU_SHIFT)#define MSI_ADDR_DESTMODE_SHIFT        2#define     MSI_ADDR_DESTMODE_PHYS     (0 << MSI_ADDR_DESTMODE_SHIFT)#define        MSI_ADDR_DESTMODE_LOGIC (1 << MSI_ADDR_DESTMODE_SHIFT)#define MSI_ADDR_REDIRECTION_SHIFT     3#define     MSI_ADDR_REDIRECTION_CPU   (0 << MSI_ADDR_REDIRECTION_SHIFT)#define     MSI_ADDR_REDIRECTION_LOWPRI (1 << MSI_ADDR_REDIRECTION_SHIFT)#define AUTO_ASSIGN -1/* shift count for gflags */#define GFLAGS_SHIFT_DEST_ID        0#define GFLAGS_SHIFT_RH             8#define GFLAGS_SHIFT_DM             9#define GLFAGS_SHIFT_DELIV_MODE     12#define GLFAGS_SHIFT_TRG_MODE       15intpt_msi_setup(struct pt_dev *dev);uint32_t__get_msi_gflags(uint32_t data, uint64_t addr);intpt_msi_update(struct pt_dev *d);intpt_msix_update(struct pt_dev *dev);intremove_msix_mapping(struct pt_dev *dev, int bar_index);intadd_msix_mapping(struct pt_dev *dev, int bar_index);intpt_msix_init(struct pt_dev *dev, int pos);voidpt_msix_delete(struct pt_dev *dev);#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -