Lines Matching +full:pci +full:- +full:domain
1 /* SPDX-License-Identifier: GPL-2.0 */
3 * PCI Backend Common Data Structures & Function Declarations
10 #include <linux/pci.h>
20 #define DRV_NAME "xen-pciback"
54 unsigned int ack_intr:1; /* .. and ACK-ing */
56 unsigned int irq; /* Saved in case device transitions to MSI/MSI-X */
57 char irq_name[0]; /* xen-pcibk[000:04:00.0] */
65 /* Get/Put PCI Devices that are hidden from the PCI Backend Domain */
67 int domain, int bus,
76 /* Access a virtual configuration space for a PCI device */
89 unsigned int domain, unsigned int bus,
92 unsigned int domain, unsigned int bus);
95 * vpci - BDFs start at 00
96 * passthrough - BDFs are exactly like in the host.
103 unsigned int *domain, unsigned int *bus,
111 unsigned int domain, unsigned int bus,
124 if (xen_pcibk_backend && xen_pcibk_backend->add) in xen_pcibk_add_pci_dev()
125 return xen_pcibk_backend->add(pdev, dev, devid, publish_cb); in xen_pcibk_add_pci_dev()
126 return -1; in xen_pcibk_add_pci_dev()
132 if (xen_pcibk_backend && xen_pcibk_backend->release) in xen_pcibk_release_pci_dev()
133 return xen_pcibk_backend->release(pdev, dev, lock); in xen_pcibk_release_pci_dev()
137 xen_pcibk_get_pci_dev(struct xen_pcibk_device *pdev, unsigned int domain, in xen_pcibk_get_pci_dev() argument
140 if (xen_pcibk_backend && xen_pcibk_backend->get) in xen_pcibk_get_pci_dev()
141 return xen_pcibk_backend->get(pdev, domain, bus, devfn); in xen_pcibk_get_pci_dev()
146 * Add for domain0 PCIE-AER handling. Get guest domain/bus/devfn in xen_pcibk
153 unsigned int *domain, in xen_pcibk_get_pcifront_dev() argument
157 if (xen_pcibk_backend && xen_pcibk_backend->find) in xen_pcibk_get_pcifront_dev()
158 return xen_pcibk_backend->find(pcidev, pdev, domain, bus, in xen_pcibk_get_pcifront_dev()
160 return -1; in xen_pcibk_get_pcifront_dev()
165 if (xen_pcibk_backend && xen_pcibk_backend->init) in xen_pcibk_init_devices()
166 return xen_pcibk_backend->init(pdev); in xen_pcibk_init_devices()
167 return -1; in xen_pcibk_init_devices()
173 if (xen_pcibk_backend && xen_pcibk_backend->publish) in xen_pcibk_publish_pci_roots()
174 return xen_pcibk_backend->publish(pdev, cb); in xen_pcibk_publish_pci_roots()
175 return -1; in xen_pcibk_publish_pci_roots()
180 if (xen_pcibk_backend && xen_pcibk_backend->free) in xen_pcibk_release_devices()
181 return xen_pcibk_backend->free(pdev); in xen_pcibk_release_devices()
184 /* Handles events from front-end */
191 if (test_and_clear_bit(_EOI_pending, &pdev->flags)) in xen_pcibk_lateeoi()
192 xen_irq_lateeoi(pdev->evtchn_irq, eoi_flag); in xen_pcibk_lateeoi()
201 /* Handles shared IRQs that can to device domain and control domain. */