pci_64.h
来自「linux 内核源代码」· C头文件 代码 · 共 71 行
H
71 行
#ifndef __x8664_PCI_H#define __x8664_PCI_H#ifdef __KERNEL__#ifdef CONFIG_CALGARY_IOMMUstatic inline void* pci_iommu(struct pci_bus *bus){ struct pci_sysdata *sd = bus->sysdata; return sd->iommu;}static inline void set_pci_iommu(struct pci_bus *bus, void *val){ struct pci_sysdata *sd = bus->sysdata; sd->iommu = val;}#endif /* CONFIG_CALGARY_IOMMU */extern int (*pci_config_read)(int seg, int bus, int dev, int fn, int reg, int len, u32 *value);extern int (*pci_config_write)(int seg, int bus, int dev, int fn, int reg, int len, u32 value);extern void pci_iommu_alloc(void);extern int iommu_setup(char *opt);/* The PCI address space does equal the physical memory * address space. The networking and block device layers use * this boolean for bounce buffer decisions * * On AMD64 it mostly equals, but we set it to zero if a hardware * IOMMU (gart) of sotware IOMMU (swiotlb) is available. */#define PCI_DMA_BUS_IS_PHYS (dma_ops->is_phys)#if defined(CONFIG_GART_IOMMU) || defined(CONFIG_CALGARY_IOMMU)#define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) \ dma_addr_t ADDR_NAME;#define DECLARE_PCI_UNMAP_LEN(LEN_NAME) \ __u32 LEN_NAME;#define pci_unmap_addr(PTR, ADDR_NAME) \ ((PTR)->ADDR_NAME)#define pci_unmap_addr_set(PTR, ADDR_NAME, VAL) \ (((PTR)->ADDR_NAME) = (VAL))#define pci_unmap_len(PTR, LEN_NAME) \ ((PTR)->LEN_NAME)#define pci_unmap_len_set(PTR, LEN_NAME, VAL) \ (((PTR)->LEN_NAME) = (VAL))#else/* No IOMMU */#define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME)#define DECLARE_PCI_UNMAP_LEN(LEN_NAME)#define pci_unmap_addr(PTR, ADDR_NAME) (0)#define pci_unmap_addr_set(PTR, ADDR_NAME, VAL) do { } while (0)#define pci_unmap_len(PTR, LEN_NAME) (0)#define pci_unmap_len_set(PTR, LEN_NAME, VAL) do { } while (0)#endif#endif /* __KERNEL__ */#endif /* __x8664_PCI_H */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?