blob: cfcc517e4570dad6b047dff4c2b69de669c73e0c [file] [log] [blame]
Konrad Rzeszutek Wilk30edc142009-10-13 17:22:20 -04001/*
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
Konrad Rzeszutek Wilka92336a2011-07-19 19:40:51 -040014struct xen_pcibk_config_quirk {
Konrad Rzeszutek Wilk30edc142009-10-13 17:22:20 -040015 struct list_head quirks_list;
16 struct pci_device_id devid;
17 struct pci_dev *pdev;
18};
19
Konrad Rzeszutek Wilka92336a2011-07-19 19:40:51 -040020int xen_pcibk_config_quirks_add_field(struct pci_dev *dev, struct config_field
Konrad Rzeszutek Wilk30edc142009-10-13 17:22:20 -040021 *field);
22
Konrad Rzeszutek Wilka92336a2011-07-19 19:40:51 -040023int xen_pcibk_config_quirks_remove_field(struct pci_dev *dev, int reg);
Konrad Rzeszutek Wilk30edc142009-10-13 17:22:20 -040024
Konrad Rzeszutek Wilka92336a2011-07-19 19:40:51 -040025int xen_pcibk_config_quirks_init(struct pci_dev *dev);
Konrad Rzeszutek Wilk30edc142009-10-13 17:22:20 -040026
Konrad Rzeszutek Wilka92336a2011-07-19 19:40:51 -040027void xen_pcibk_config_field_free(struct config_field *field);
Konrad Rzeszutek Wilk30edc142009-10-13 17:22:20 -040028
Konrad Rzeszutek Wilka92336a2011-07-19 19:40:51 -040029int xen_pcibk_config_quirk_release(struct pci_dev *dev);
Konrad Rzeszutek Wilk30edc142009-10-13 17:22:20 -040030
Konrad Rzeszutek Wilka92336a2011-07-19 19:40:51 -040031int xen_pcibk_field_is_dup(struct pci_dev *dev, unsigned int reg);
Konrad Rzeszutek Wilk30edc142009-10-13 17:22:20 -040032
33#endif