📄 pci.h
字号:
#ifndef __PPC_PCI_H#define __PPC_PCI_H#ifdef __KERNEL__/* Values for the `which' argument to sys_pciconfig_iobase syscall. */#define IOBASE_BRIDGE_NUMBER 0#define IOBASE_MEMORY 1#define IOBASE_IO 2/* Can be used to override the logic in pci_scan_bus for skipping * already-configured bus numbers - to be used for buggy BIOSes * or architectures with incomplete PCI setup by the loader. */#define pcibios_assign_all_busses() 0#define PCIBIOS_MIN_IO 0x1000#define PCIBIOS_MIN_MEM 0x10000000extern inline void pcibios_set_master(struct pci_dev *dev){ /* No special bus mastering setup handling */}extern inline void pcibios_penalize_isa_irq(int irq){ /* We don't do dynamic PCI IRQ allocation */}/* Dynamic DMA Mapping stuff * ++ajoshi */#include <linux/types.h>#include <linux/slab.h>#include <linux/string.h>#include <asm/scatterlist.h>#include <asm/io.h>struct pci_dev;extern void *pci_alloc_consistent(struct pci_dev *hwdev, size_t size, dma_addr_t *dma_handle);extern void pci_free_consistent(struct pci_dev *hwdev, size_t size, void *vaddr, dma_addr_t dma_handle);extern inline dma_addr_t pci_map_single(struct pci_dev *hwdev, void *ptr, size_t size, int direction){ if (direction == PCI_DMA_NONE) BUG(); return virt_to_bus(ptr);}extern inline void pci_unmap_single(struct pci_dev *hwdev, dma_addr_t dma_addr, size_t size, int direction){ if (direction == PCI_DMA_NONE) BUG(); /* nothing to do */}extern inline int pci_map_sg(struct pci_dev *hwdev, struct scatterlist *sg, int nents, int direction){ if (direction == PCI_DMA_NONE) BUG(); return nents;}extern inline void pci_unmap_sg(struct pci_dev *hwdev, struct scatterlist *sg, int nents, int direction){ if (direction == PCI_DMA_NONE) BUG(); /* nothing to do */}extern inline void pci_dma_sync_single(struct pci_dev *hwdev, dma_addr_t dma_handle, size_t size, int direction){ if (direction == PCI_DMA_NONE) BUG(); /* nothing to do */}extern inline void pci_dma_sync_sg(struct pci_dev *hwdev, struct scatterlist *sg, int nelems, int direction){ if (direction == PCI_DMA_NONE) BUG(); /* nothing to do */}/* Return whether the given PCI device DMA address mask can * be supported properly. For example, if your device can * only drive the low 24-bits during PCI bus mastering, then * you would pass 0x00ffffff as the mask to this function. */extern inline int pci_dma_supported(struct pci_dev *hwdev, dma_addr_t mask){ return 1;}#define sg_dma_address(sg) (virt_to_bus((sg)->address))#define sg_dma_len(sg) ((sg)->length)#endif /* __KERNEL__ */#endif /* __PPC_PCI_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -