| Greg Kroah-Hartman | f3e6f16 | 2007-10-12 14:07:23 -0700 | [diff] [blame] | 1 | #ifndef __x86_PCI_H | 
|  | 2 | #define __x86_PCI_H | 
|  | 3 |  | 
|  | 4 | #include <linux/mm.h> /* for struct page */ | 
|  | 5 | #include <linux/types.h> | 
|  | 6 | #include <linux/slab.h> | 
|  | 7 | #include <linux/string.h> | 
|  | 8 | #include <asm/scatterlist.h> | 
|  | 9 | #include <asm/io.h> | 
|  | 10 |  | 
|  | 11 |  | 
|  | 12 | #ifdef __KERNEL__ | 
|  | 13 |  | 
|  | 14 | struct pci_sysdata { | 
|  | 15 | int		domain;		/* PCI domain */ | 
|  | 16 | int		node;		/* NUMA node */ | 
|  | 17 | #ifdef CONFIG_X86_64 | 
|  | 18 | void*		iommu;		/* IOMMU private data */ | 
|  | 19 | #endif | 
|  | 20 | }; | 
|  | 21 |  | 
|  | 22 | /* scan a bus after allocating a pci_sysdata for it */ | 
|  | 23 | extern struct pci_bus *pci_scan_bus_with_sysdata(int busno); | 
|  | 24 |  | 
|  | 25 | static inline int pci_domain_nr(struct pci_bus *bus) | 
|  | 26 | { | 
|  | 27 | struct pci_sysdata *sd = bus->sysdata; | 
|  | 28 | return sd->domain; | 
|  | 29 | } | 
|  | 30 |  | 
|  | 31 | static inline int pci_proc_domain(struct pci_bus *bus) | 
|  | 32 | { | 
|  | 33 | return pci_domain_nr(bus); | 
|  | 34 | } | 
|  | 35 |  | 
|  | 36 |  | 
|  | 37 | /* Can be used to override the logic in pci_scan_bus for skipping | 
|  | 38 | already-configured bus numbers - to be used for buggy BIOSes | 
|  | 39 | or architectures with incomplete PCI setup by the loader */ | 
|  | 40 |  | 
|  | 41 | #ifdef CONFIG_PCI | 
|  | 42 | extern unsigned int pcibios_assign_all_busses(void); | 
|  | 43 | #else | 
|  | 44 | #define pcibios_assign_all_busses()	0 | 
|  | 45 | #endif | 
|  | 46 | #define pcibios_scan_all_fns(a, b)	0 | 
|  | 47 |  | 
|  | 48 | extern unsigned long pci_mem_start; | 
|  | 49 | #define PCIBIOS_MIN_IO		0x1000 | 
|  | 50 | #define PCIBIOS_MIN_MEM		(pci_mem_start) | 
|  | 51 |  | 
|  | 52 | #define PCIBIOS_MIN_CARDBUS_IO	0x4000 | 
|  | 53 |  | 
|  | 54 | void pcibios_config_init(void); | 
|  | 55 | struct pci_bus * pcibios_scan_root(int bus); | 
|  | 56 |  | 
|  | 57 | void pcibios_set_master(struct pci_dev *dev); | 
|  | 58 | void pcibios_penalize_isa_irq(int irq, int active); | 
|  | 59 | struct irq_routing_table *pcibios_get_irq_routing_table(void); | 
|  | 60 | int pcibios_set_irq_routing(struct pci_dev *dev, int pin, int irq); | 
|  | 61 |  | 
|  | 62 |  | 
|  | 63 | #define HAVE_PCI_MMAP | 
|  | 64 | extern int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, | 
|  | 65 | enum pci_mmap_state mmap_state, int write_combine); | 
|  | 66 |  | 
|  | 67 |  | 
|  | 68 | #ifdef CONFIG_PCI | 
|  | 69 | static inline void pci_dma_burst_advice(struct pci_dev *pdev, | 
|  | 70 | enum pci_dma_burst_strategy *strat, | 
|  | 71 | unsigned long *strategy_parameter) | 
|  | 72 | { | 
|  | 73 | *strat = PCI_DMA_BURST_INFINITY; | 
|  | 74 | *strategy_parameter = ~0UL; | 
|  | 75 | } | 
|  | 76 | #endif | 
|  | 77 |  | 
|  | 78 |  | 
|  | 79 | #endif  /* __KERNEL__ */ | 
|  | 80 |  | 
| Thomas Gleixner | 96a388d | 2007-10-11 11:20:03 +0200 | [diff] [blame] | 81 | #ifdef CONFIG_X86_32 | 
|  | 82 | # include "pci_32.h" | 
|  | 83 | #else | 
|  | 84 | # include "pci_64.h" | 
|  | 85 | #endif | 
| Greg Kroah-Hartman | f3e6f16 | 2007-10-12 14:07:23 -0700 | [diff] [blame] | 86 |  | 
|  | 87 | /* implement the pci_ DMA API in terms of the generic device dma_ one */ | 
|  | 88 | #include <asm-generic/pci-dma-compat.h> | 
|  | 89 |  | 
|  | 90 | /* generic pci stuff */ | 
|  | 91 | #include <asm-generic/pci.h> | 
|  | 92 |  | 
|  | 93 |  | 
|  | 94 |  | 
|  | 95 | #endif |