cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

pci-ats.h (1802B)


      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 */
      9bool pci_ats_supported(struct pci_dev *dev);
     10int pci_enable_ats(struct pci_dev *dev, int ps);
     11void pci_disable_ats(struct pci_dev *dev);
     12int pci_ats_queue_depth(struct pci_dev *dev);
     13int pci_ats_page_aligned(struct pci_dev *dev);
     14#else /* CONFIG_PCI_ATS */
     15static inline bool pci_ats_supported(struct pci_dev *d)
     16{ return false; }
     17static inline int pci_enable_ats(struct pci_dev *d, int ps)
     18{ return -ENODEV; }
     19static inline void pci_disable_ats(struct pci_dev *d) { }
     20static inline int pci_ats_queue_depth(struct pci_dev *d)
     21{ return -ENODEV; }
     22static inline int pci_ats_page_aligned(struct pci_dev *dev)
     23{ return 0; }
     24#endif /* CONFIG_PCI_ATS */
     25
     26#ifdef CONFIG_PCI_PRI
     27int pci_enable_pri(struct pci_dev *pdev, u32 reqs);
     28void pci_disable_pri(struct pci_dev *pdev);
     29int pci_reset_pri(struct pci_dev *pdev);
     30int pci_prg_resp_pasid_required(struct pci_dev *pdev);
     31bool pci_pri_supported(struct pci_dev *pdev);
     32#else
     33static inline bool pci_pri_supported(struct pci_dev *pdev)
     34{ return false; }
     35#endif /* CONFIG_PCI_PRI */
     36
     37#ifdef CONFIG_PCI_PASID
     38int pci_enable_pasid(struct pci_dev *pdev, int features);
     39void pci_disable_pasid(struct pci_dev *pdev);
     40int pci_pasid_features(struct pci_dev *pdev);
     41int pci_max_pasids(struct pci_dev *pdev);
     42#else /* CONFIG_PCI_PASID */
     43static inline int pci_enable_pasid(struct pci_dev *pdev, int features)
     44{ return -EINVAL; }
     45static inline void pci_disable_pasid(struct pci_dev *pdev) { }
     46static inline int pci_pasid_features(struct pci_dev *pdev)
     47{ return -EINVAL; }
     48static inline int pci_max_pasids(struct pci_dev *pdev)
     49{ return -EINVAL; }
     50#endif /* CONFIG_PCI_PASID */
     51
     52#endif /* LINUX_PCI_ATS_H */