linux/include/linux/pci-ats.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef LINUX_PCI_ATS_H
   3#define LINUX_PCI_ATS_H
   4
   5#include <linux/pci.h>
   6
   7#ifdef CONFIG_PCI_ATS
   8/* Address Translation Service */
   9int pci_enable_ats(struct pci_dev *dev, int ps);
  10void pci_disable_ats(struct pci_dev *dev);
  11int pci_ats_queue_depth(struct pci_dev *dev);
  12int pci_ats_page_aligned(struct pci_dev *dev);
  13#else /* CONFIG_PCI_ATS */
  14static inline int pci_enable_ats(struct pci_dev *d, int ps)
  15{ return -ENODEV; }
  16static inline void pci_disable_ats(struct pci_dev *d) { }
  17static inline int pci_ats_queue_depth(struct pci_dev *d)
  18{ return -ENODEV; }
  19static inline int pci_ats_page_aligned(struct pci_dev *dev)
  20{ return 0; }
  21#endif /* CONFIG_PCI_ATS */
  22
  23#ifdef CONFIG_PCI_PRI
  24int pci_enable_pri(struct pci_dev *pdev, u32 reqs);
  25void pci_disable_pri(struct pci_dev *pdev);
  26int pci_reset_pri(struct pci_dev *pdev);
  27int pci_prg_resp_pasid_required(struct pci_dev *pdev);
  28#endif /* CONFIG_PCI_PRI */
  29
  30#ifdef CONFIG_PCI_PASID
  31int pci_enable_pasid(struct pci_dev *pdev, int features);
  32void pci_disable_pasid(struct pci_dev *pdev);
  33int pci_pasid_features(struct pci_dev *pdev);
  34int pci_max_pasids(struct pci_dev *pdev);
  35#else /* CONFIG_PCI_PASID */
  36static inline int pci_enable_pasid(struct pci_dev *pdev, int features)
  37{ return -EINVAL; }
  38static inline void pci_disable_pasid(struct pci_dev *pdev) { }
  39static inline int pci_pasid_features(struct pci_dev *pdev)
  40{ return -EINVAL; }
  41static inline int pci_max_pasids(struct pci_dev *pdev)
  42{ return -EINVAL; }
  43#endif /* CONFIG_PCI_PASID */
  44
  45#endif /* LINUX_PCI_ATS_H */
  46