pci_iomap.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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. struct pci_dev;
  10. #ifdef CONFIG_PCI
  11. /* Create a virtual mapping cookie for a PCI BAR (memory or IO) */
  12. extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
  13. extern void __iomem *pci_iomap_wc(struct pci_dev *dev, int bar, unsigned long max);
  14. extern void __iomem *pci_iomap_range(struct pci_dev *dev, int bar,
  15. unsigned long offset,
  16. unsigned long maxlen);
  17. extern void __iomem *pci_iomap_wc_range(struct pci_dev *dev, int bar,
  18. unsigned long offset,
  19. unsigned long maxlen);
  20. /* Create a virtual mapping cookie for a port on a given PCI device.
  21. * Do not call this directly, it exists to make it easier for architectures
  22. * to override */
  23. #ifdef CONFIG_NO_GENERIC_PCI_IOPORT_MAP
  24. extern void __iomem *__pci_ioport_map(struct pci_dev *dev, unsigned long port,
  25. unsigned int nr);
  26. #else
  27. #define __pci_ioport_map(dev, port, nr) ioport_map((port), (nr))
  28. #endif
  29. #elif defined(CONFIG_GENERIC_PCI_IOMAP)
  30. static inline void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max)
  31. {
  32. return NULL;
  33. }
  34. static inline void __iomem *pci_iomap_wc(struct pci_dev *dev, int bar, unsigned long max)
  35. {
  36. return NULL;
  37. }
  38. static inline void __iomem *pci_iomap_range(struct pci_dev *dev, int bar,
  39. unsigned long offset,
  40. unsigned long maxlen)
  41. {
  42. return NULL;
  43. }
  44. static inline void __iomem *pci_iomap_wc_range(struct pci_dev *dev, int bar,
  45. unsigned long offset,
  46. unsigned long maxlen)
  47. {
  48. return NULL;
  49. }
  50. #endif
  51. #endif /* __ASM_GENERIC_IO_H */