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