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"
55 unsigned int ack_intr:1; /* .. and ACK-ing */
57 unsigned int irq; /* Saved in case device transitions to MSI/MSI-X */
58 char irq_name[]; /* xen-pcibk[000:04:00.0] */
66 /* Get/Put PCI Devices that are hidden from the PCI Backend Domain */
68 int domain, int bus,
77 /* Access a virtual configuration space for a PCI device */
90 unsigned int domain, unsigned int bus,
93 unsigned int domain, unsigned int bus);
96 * vpci - BDFs start at 00
97 * passthrough - BDFs are exactly like in the host.
104 unsigned int *domain, unsigned int *bus,
112 unsigned int domain, unsigned int bus,
125 if (xen_pcibk_backend && xen_pcibk_backend->add) in xen_pcibk_add_pci_dev()
126 return xen_pcibk_backend->add(pdev, dev, devid, publish_cb); in xen_pcibk_add_pci_dev()
127 return -1; in xen_pcibk_add_pci_dev()
133 if (xen_pcibk_backend && xen_pcibk_backend->release) in xen_pcibk_release_pci_dev()
134 return xen_pcibk_backend->release(pdev, dev, lock); in xen_pcibk_release_pci_dev()
138 xen_pcibk_get_pci_dev(struct xen_pcibk_device *pdev, unsigned int domain, in xen_pcibk_get_pci_dev() argument
141 if (xen_pcibk_backend && xen_pcibk_backend->get) in xen_pcibk_get_pci_dev()
142 return xen_pcibk_backend->get(pdev, domain, bus, devfn); in xen_pcibk_get_pci_dev()
147 * Add for domain0 PCIE-AER handling. Get guest domain/bus/devfn in xen_pcibk
154 unsigned int *domain, in xen_pcibk_get_pcifront_dev() argument
158 if (xen_pcibk_backend && xen_pcibk_backend->find) in xen_pcibk_get_pcifront_dev()
159 return xen_pcibk_backend->find(pcidev, pdev, domain, bus, in xen_pcibk_get_pcifront_dev()
161 return -1; in xen_pcibk_get_pcifront_dev()
166 if (xen_pcibk_backend && xen_pcibk_backend->init) in xen_pcibk_init_devices()
167 return xen_pcibk_backend->init(pdev); in xen_pcibk_init_devices()
168 return -1; in xen_pcibk_init_devices()
174 if (xen_pcibk_backend && xen_pcibk_backend->publish) in xen_pcibk_publish_pci_roots()
175 return xen_pcibk_backend->publish(pdev, cb); in xen_pcibk_publish_pci_roots()
176 return -1; in xen_pcibk_publish_pci_roots()
181 if (xen_pcibk_backend && xen_pcibk_backend->free) in xen_pcibk_release_devices()
182 return xen_pcibk_backend->free(pdev); in xen_pcibk_release_devices()
185 /* Handles events from front-end */
192 if (test_and_clear_bit(_EOI_pending, &pdev->flags)) in xen_pcibk_lateeoi()
193 xen_irq_lateeoi(pdev->evtchn_irq, eoi_flag); in xen_pcibk_lateeoi()
200 /* Handles shared IRQs that can to device domain and control domain. */