1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * PCI Backend - Data structures for special overlays for broken devices.
4  *
5  * Ryan Wilson <hap9@epoch.ncsc.mil>
6  * Chris Bookholt <hap10@epoch.ncsc.mil>
7  */
8 
9 #ifndef __XEN_PCIBACK_CONF_SPACE_QUIRKS_H__
10 #define __XEN_PCIBACK_CONF_SPACE_QUIRKS_H__
11 
12 #include <linux/pci.h>
13 #include <linux/list.h>
14 
15 struct xen_pcibk_config_quirk {
16 	struct list_head quirks_list;
17 	struct pci_device_id devid;
18 	struct pci_dev *pdev;
19 };
20 
21 int xen_pcibk_config_quirks_add_field(struct pci_dev *dev, struct config_field
22 				    *field);
23 
24 int xen_pcibk_config_quirks_remove_field(struct pci_dev *dev, int reg);
25 
26 int xen_pcibk_config_quirks_init(struct pci_dev *dev);
27 
28 void xen_pcibk_config_field_free(struct config_field *field);
29 
30 int xen_pcibk_config_quirk_release(struct pci_dev *dev);
31 
32 int xen_pcibk_field_is_dup(struct pci_dev *dev, unsigned int reg);
33 
34 #endif
35