1 /* SPDX-License-Identifier: GPL-2.0-only */ !! 1 #ifndef __i386_PCI_H >> 2 #define __i386_PCI_H 2 3 3 #ifndef __ASM_GENERIC_PCI_H !! 4 #include <linux/config.h> 4 #define __ASM_GENERIC_PCI_H << 5 5 6 #ifndef PCIBIOS_MIN_IO !! 6 #ifdef __KERNEL__ 7 #define PCIBIOS_MIN_IO 0 !! 7 #include <linux/mm.h> /* for struct page */ 8 #endif << 9 8 10 #ifndef PCIBIOS_MIN_MEM !! 9 /* Can be used to override the logic in pci_scan_bus for skipping 11 #define PCIBIOS_MIN_MEM 0 !! 10 already-configured bus numbers - to be used for buggy BIOSes >> 11 or architectures with incomplete PCI setup by the loader */ >> 12 >> 13 #ifdef CONFIG_PCI >> 14 extern unsigned int pcibios_assign_all_busses(void); >> 15 #else >> 16 #define pcibios_assign_all_busses() 0 12 #endif 17 #endif 13 18 14 #ifndef pcibios_assign_all_busses !! 19 extern unsigned long pci_mem_start; 15 /* For bootloaders that do not initialize the !! 20 #define PCIBIOS_MIN_IO 0x1000 16 #define pcibios_assign_all_busses() 1 !! 21 #define PCIBIOS_MIN_MEM (pci_mem_start) 17 #endif !! 22 >> 23 #define PCIBIOS_MIN_CARDBUS_IO 0x4000 >> 24 >> 25 void pcibios_config_init(void); >> 26 struct pci_bus * pcibios_scan_root(int bus); >> 27 >> 28 void pcibios_set_master(struct pci_dev *dev); >> 29 void pcibios_penalize_isa_irq(int irq); >> 30 struct irq_routing_table *pcibios_get_irq_routing_table(void); >> 31 int pcibios_set_irq_routing(struct pci_dev *dev, int pin, int irq); >> 32 >> 33 /* Dynamic DMA mapping stuff. >> 34 * i386 has everything mapped statically. >> 35 */ >> 36 >> 37 #include <linux/types.h> >> 38 #include <linux/slab.h> >> 39 #include <asm/scatterlist.h> >> 40 #include <linux/string.h> >> 41 #include <asm/io.h> >> 42 >> 43 struct pci_dev; >> 44 >> 45 /* The PCI address space does equal the physical memory >> 46 * address space. The networking and block device layers use >> 47 * this boolean for bounce buffer decisions. >> 48 */ >> 49 #define PCI_DMA_BUS_IS_PHYS (1) >> 50 >> 51 /* pci_unmap_{page,single} is a nop so... */ >> 52 #define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) >> 53 #define DECLARE_PCI_UNMAP_LEN(LEN_NAME) >> 54 #define pci_unmap_addr(PTR, ADDR_NAME) (0) >> 55 #define pci_unmap_addr_set(PTR, ADDR_NAME, VAL) do { } while (0) >> 56 #define pci_unmap_len(PTR, LEN_NAME) (0) >> 57 #define pci_unmap_len_set(PTR, LEN_NAME, VAL) do { } while (0) >> 58 >> 59 /* This is always fine. */ >> 60 #define pci_dac_dma_supported(pci_dev, mask) (1) >> 61 >> 62 static __inline__ dma64_addr_t >> 63 pci_dac_page_to_dma(struct pci_dev *pdev, struct page *page, unsigned long offset, int direction) >> 64 { >> 65 return ((dma64_addr_t) page_to_phys(page) + >> 66 (dma64_addr_t) offset); >> 67 } 18 68 19 /* Enable generic resource mapping code in dri !! 69 static __inline__ struct page * 20 #define ARCH_GENERIC_PCI_MMAP_RESOURCE !! 70 pci_dac_dma_to_page(struct pci_dev *pdev, dma64_addr_t dma_addr) >> 71 { >> 72 return pfn_to_page(dma_addr >> PAGE_SHIFT); >> 73 } 21 74 22 #ifdef CONFIG_PCI_DOMAINS !! 75 static __inline__ unsigned long 23 static inline int pci_proc_domain(struct pci_b !! 76 pci_dac_dma_to_offset(struct pci_dev *pdev, dma64_addr_t dma_addr) 24 { 77 { 25 /* always show the domain in /proc */ !! 78 return (dma_addr & ~PAGE_MASK); 26 return 1; << 27 } 79 } 28 #endif /* CONFIG_PCI_DOMAINS */ << 29 80 30 #endif /* __ASM_GENERIC_PCI_H */ !! 81 static __inline__ void >> 82 pci_dac_dma_sync_single(struct pci_dev *pdev, dma64_addr_t dma_addr, size_t len, int direction) >> 83 { >> 84 flush_write_buffers(); >> 85 } >> 86 >> 87 #define HAVE_PCI_MMAP >> 88 extern int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, >> 89 enum pci_mmap_state mmap_state, int write_combine); >> 90 >> 91 #endif /* __KERNEL__ */ >> 92 >> 93 /* implement the pci_ DMA API in terms of the generic device dma_ one */ >> 94 #include <asm-generic/pci-dma-compat.h> >> 95 >> 96 /* generic pci stuff */ >> 97 #include <asm-generic/pci.h> >> 98 >> 99 #endif /* __i386_PCI_H */ 31 100
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.