linux/drivers/xen/xen-pciback/conf_space_capability.c

// SPDX-License-Identifier: GPL-2.0
/*
 * PCI Backend - Handles the virtual fields found on the capability lists
 *               in the configuration space.
 *
 * Author: Ryan Wilson <[email protected]>
 */

#include <linux/kernel.h>
#include <linux/pci.h>
#include "pciback.h"
#include "conf_space.h"

static LIST_HEAD(capabilities);
struct xen_pcibk_config_capability {};

static const struct config_field caplist_header[] =;

static inline void register_capability(struct xen_pcibk_config_capability *cap)
{}

int xen_pcibk_config_capability_add_fields(struct pci_dev *dev)
{}

static int vpd_address_write(struct pci_dev *dev, int offset, u16 value,
			     void *data)
{}

static const struct config_field caplist_vpd[] =;

static int pm_caps_read(struct pci_dev *dev, int offset, u16 *value,
			void *data)
{}

/* PM_OK_BITS specifies the bits that the driver domain is allowed to change.
 * Can't allow driver domain to enable PMEs - they're shared */
#define PM_OK_BITS

static int pm_ctrl_write(struct pci_dev *dev, int offset, u16 new_value,
			 void *data)
{}

/* Ensure PMEs are disabled */
static void *pm_ctrl_init(struct pci_dev *dev, int offset)
{}

static const struct config_field caplist_pm[] =;

static struct msi_msix_field_config {} msi_field_config =, msix_field_config =;

static void *msi_field_init(struct pci_dev *dev, int offset)
{}

static void *msix_field_init(struct pci_dev *dev, int offset)
{}

static int msi_msix_flags_write(struct pci_dev *dev, int offset, u16 new_value,
				void *data)
{}

static const struct config_field caplist_msix[] =;

static const struct config_field caplist_msi[] =;

static struct xen_pcibk_config_capability xen_pcibk_config_capability_pm =;
static struct xen_pcibk_config_capability xen_pcibk_config_capability_vpd =;
static struct xen_pcibk_config_capability xen_pcibk_config_capability_msi =;
static struct xen_pcibk_config_capability xen_pcibk_config_capability_msix =;

int xen_pcibk_config_capability_init(void)
{}