0001
0002
0003
0004
0005
0006
0007 #ifndef __ASM_GENERIC_PCI_IOMAP_H
0008 #define __ASM_GENERIC_PCI_IOMAP_H
0009
0010 struct pci_dev;
0011 #ifdef CONFIG_PCI
0012
0013 extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
0014 extern void __iomem *pci_iomap_wc(struct pci_dev *dev, int bar, unsigned long max);
0015 extern void __iomem *pci_iomap_range(struct pci_dev *dev, int bar,
0016 unsigned long offset,
0017 unsigned long maxlen);
0018 extern void __iomem *pci_iomap_wc_range(struct pci_dev *dev, int bar,
0019 unsigned long offset,
0020 unsigned long maxlen);
0021 extern void pci_iounmap(struct pci_dev *dev, void __iomem *);
0022
0023
0024
0025 #ifdef CONFIG_NO_GENERIC_PCI_IOPORT_MAP
0026 extern void __iomem *__pci_ioport_map(struct pci_dev *dev, unsigned long port,
0027 unsigned int nr);
0028 #elif !defined(CONFIG_HAS_IOPORT_MAP)
0029 #define __pci_ioport_map(dev, port, nr) NULL
0030 #else
0031 #define __pci_ioport_map(dev, port, nr) ioport_map((port), (nr))
0032 #endif
0033
0034 #elif defined(CONFIG_GENERIC_PCI_IOMAP)
0035 static inline void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max)
0036 {
0037 return NULL;
0038 }
0039
0040 static inline void __iomem *pci_iomap_wc(struct pci_dev *dev, int bar, unsigned long max)
0041 {
0042 return NULL;
0043 }
0044 static inline void __iomem *pci_iomap_range(struct pci_dev *dev, int bar,
0045 unsigned long offset,
0046 unsigned long maxlen)
0047 {
0048 return NULL;
0049 }
0050 static inline void __iomem *pci_iomap_wc_range(struct pci_dev *dev, int bar,
0051 unsigned long offset,
0052 unsigned long maxlen)
0053 {
0054 return NULL;
0055 }
0056 static inline void pci_iounmap(struct pci_dev *dev, void __iomem *addr)
0057 { }
0058 #endif
0059
0060 #endif