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_bus.h (1089B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/*
      3 * Copyright IBM Corp. 2020
      4 *
      5 * Author(s):
      6 *   Pierre Morel <pmorel@linux.ibm.com>
      7 *
      8 */
      9
     10int zpci_bus_device_register(struct zpci_dev *zdev, struct pci_ops *ops);
     11void zpci_bus_device_unregister(struct zpci_dev *zdev);
     12
     13int zpci_bus_scan_bus(struct zpci_bus *zbus);
     14void zpci_bus_scan_busses(void);
     15
     16int zpci_bus_scan_device(struct zpci_dev *zdev);
     17void zpci_bus_remove_device(struct zpci_dev *zdev, bool set_error);
     18
     19void zpci_release_device(struct kref *kref);
     20static inline void zpci_zdev_put(struct zpci_dev *zdev)
     21{
     22	if (zdev)
     23		kref_put(&zdev->kref, zpci_release_device);
     24}
     25
     26static inline void zpci_zdev_get(struct zpci_dev *zdev)
     27{
     28	kref_get(&zdev->kref);
     29}
     30
     31int zpci_alloc_domain(int domain);
     32void zpci_free_domain(int domain);
     33int zpci_setup_bus_resources(struct zpci_dev *zdev,
     34			     struct list_head *resources);
     35
     36static inline struct zpci_dev *zdev_from_bus(struct pci_bus *bus,
     37					     unsigned int devfn)
     38{
     39	struct zpci_bus *zbus = bus->sysdata;
     40
     41	return (devfn >= ZPCI_FUNCTIONS_PER_BUS) ? NULL : zbus->function[devfn];
     42}
     43