Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.16-rc2 120 lines 3.2 kB view raw
1#ifndef __i386_PCI_H 2#define __i386_PCI_H 3 4#include <linux/config.h> 5 6#ifdef __KERNEL__ 7#include <linux/mm.h> /* for struct page */ 8 9/* Can be used to override the logic in pci_scan_bus for skipping 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 14extern unsigned int pcibios_assign_all_busses(void); 15#else 16#define pcibios_assign_all_busses() 0 17#endif 18#define pcibios_scan_all_fns(a, b) 0 19 20extern unsigned long pci_mem_start; 21#define PCIBIOS_MIN_IO 0x1000 22#define PCIBIOS_MIN_MEM (pci_mem_start) 23 24#define PCIBIOS_MIN_CARDBUS_IO 0x4000 25 26void pcibios_config_init(void); 27struct pci_bus * pcibios_scan_root(int bus); 28 29void pcibios_set_master(struct pci_dev *dev); 30void pcibios_penalize_isa_irq(int irq, int active); 31struct irq_routing_table *pcibios_get_irq_routing_table(void); 32int pcibios_set_irq_routing(struct pci_dev *dev, int pin, int irq); 33 34/* Dynamic DMA mapping stuff. 35 * i386 has everything mapped statically. 36 */ 37 38#include <linux/types.h> 39#include <linux/slab.h> 40#include <asm/scatterlist.h> 41#include <linux/string.h> 42#include <asm/io.h> 43 44struct pci_dev; 45 46/* The PCI address space does equal the physical memory 47 * address space. The networking and block device layers use 48 * this boolean for bounce buffer decisions. 49 */ 50#define PCI_DMA_BUS_IS_PHYS (1) 51 52/* pci_unmap_{page,single} is a nop so... */ 53#define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) 54#define DECLARE_PCI_UNMAP_LEN(LEN_NAME) 55#define pci_unmap_addr(PTR, ADDR_NAME) (0) 56#define pci_unmap_addr_set(PTR, ADDR_NAME, VAL) do { } while (0) 57#define pci_unmap_len(PTR, LEN_NAME) (0) 58#define pci_unmap_len_set(PTR, LEN_NAME, VAL) do { } while (0) 59 60/* This is always fine. */ 61#define pci_dac_dma_supported(pci_dev, mask) (1) 62 63static inline dma64_addr_t 64pci_dac_page_to_dma(struct pci_dev *pdev, struct page *page, unsigned long offset, int direction) 65{ 66 return ((dma64_addr_t) page_to_phys(page) + 67 (dma64_addr_t) offset); 68} 69 70static inline struct page * 71pci_dac_dma_to_page(struct pci_dev *pdev, dma64_addr_t dma_addr) 72{ 73 return pfn_to_page(dma_addr >> PAGE_SHIFT); 74} 75 76static inline unsigned long 77pci_dac_dma_to_offset(struct pci_dev *pdev, dma64_addr_t dma_addr) 78{ 79 return (dma_addr & ~PAGE_MASK); 80} 81 82static inline void 83pci_dac_dma_sync_single_for_cpu(struct pci_dev *pdev, dma64_addr_t dma_addr, size_t len, int direction) 84{ 85} 86 87static inline void 88pci_dac_dma_sync_single_for_device(struct pci_dev *pdev, dma64_addr_t dma_addr, size_t len, int direction) 89{ 90 flush_write_buffers(); 91} 92 93#define HAVE_PCI_MMAP 94extern int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, 95 enum pci_mmap_state mmap_state, int write_combine); 96 97 98static inline void pcibios_add_platform_entries(struct pci_dev *dev) 99{ 100} 101 102#ifdef CONFIG_PCI 103static inline void pci_dma_burst_advice(struct pci_dev *pdev, 104 enum pci_dma_burst_strategy *strat, 105 unsigned long *strategy_parameter) 106{ 107 *strat = PCI_DMA_BURST_INFINITY; 108 *strategy_parameter = ~0UL; 109} 110#endif 111 112#endif /* __KERNEL__ */ 113 114/* implement the pci_ DMA API in terms of the generic device dma_ one */ 115#include <asm-generic/pci-dma-compat.h> 116 117/* generic pci stuff */ 118#include <asm-generic/pci.h> 119 120#endif /* __i386_PCI_H */