linux/include/asm-generic/pci_iomap.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0+ */
   2/* Generic I/O port emulation.
   3 *
   4 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
   5 * Written by David Howells (dhowells@redhat.com)
   6 */
   7#ifndef __ASM_GENERIC_PCI_IOMAP_H
   8#define __ASM_GENERIC_PCI_IOMAP_H
   9
  10struct pci_dev;
  11#ifdef CONFIG_PCI
  12/* Create a virtual mapping cookie for a PCI BAR (memory or IO) */
  13extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
  14extern void __iomem *pci_iomap_wc(struct pci_dev *dev, int bar, unsigned long max);
  15extern void __iomem *pci_iomap_range(struct pci_dev *dev, int bar,
  16                                     unsigned long offset,
  17                                     unsigned long maxlen);
  18extern void __iomem *pci_iomap_wc_range(struct pci_dev *dev, int bar,
  19                                        unsigned long offset,
  20                                        unsigned long maxlen);
  21/* Create a virtual mapping cookie for a port on a given PCI device.
  22 * Do not call this directly, it exists to make it easier for architectures
  23 * to override */
  24#ifdef CONFIG_NO_GENERIC_PCI_IOPORT_MAP
  25extern void __iomem *__pci_ioport_map(struct pci_dev *dev, unsigned long port,
  26                                      unsigned int nr);
  27#else
  28#define __pci_ioport_map(dev, port, nr) ioport_map((port), (nr))
  29#endif
  30
  31#elif defined(CONFIG_GENERIC_PCI_IOMAP)
  32static inline void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max)
  33{
  34        return NULL;
  35}
  36
  37static inline void __iomem *pci_iomap_wc(struct pci_dev *dev, int bar, unsigned long max)
  38{
  39        return NULL;
  40}
  41static inline void __iomem *pci_iomap_range(struct pci_dev *dev, int bar,
  42                                            unsigned long offset,
  43                                            unsigned long maxlen)
  44{
  45        return NULL;
  46}
  47static inline void __iomem *pci_iomap_wc_range(struct pci_dev *dev, int bar,
  48                                               unsigned long offset,
  49                                               unsigned long maxlen)
  50{
  51        return NULL;
  52}
  53#endif
  54
  55#endif /* __ASM_GENERIC_IO_H */
  56