18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * PCI Backend - Data structures for special overlays for broken devices. 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Ryan Wilson <hap9@epoch.ncsc.mil> 68c2ecf20Sopenharmony_ci * Chris Bookholt <hap10@epoch.ncsc.mil> 78c2ecf20Sopenharmony_ci */ 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci#ifndef __XEN_PCIBACK_CONF_SPACE_QUIRKS_H__ 108c2ecf20Sopenharmony_ci#define __XEN_PCIBACK_CONF_SPACE_QUIRKS_H__ 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci#include <linux/pci.h> 138c2ecf20Sopenharmony_ci#include <linux/list.h> 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_cistruct xen_pcibk_config_quirk { 168c2ecf20Sopenharmony_ci struct list_head quirks_list; 178c2ecf20Sopenharmony_ci struct pci_device_id devid; 188c2ecf20Sopenharmony_ci struct pci_dev *pdev; 198c2ecf20Sopenharmony_ci}; 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ciint xen_pcibk_config_quirks_add_field(struct pci_dev *dev, struct config_field 228c2ecf20Sopenharmony_ci *field); 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ciint xen_pcibk_config_quirks_remove_field(struct pci_dev *dev, int reg); 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ciint xen_pcibk_config_quirks_init(struct pci_dev *dev); 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_civoid xen_pcibk_config_field_free(struct config_field *field); 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ciint xen_pcibk_config_quirk_release(struct pci_dev *dev); 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ciint xen_pcibk_field_is_dup(struct pci_dev *dev, unsigned int reg); 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ci#endif 35