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