#include <linux/io.h>
#include <linux/pci.h>
#include <linux/uaccess.h>
#include <linux/vfio.h>
#include "vfio_pci_priv.h"
#define OPREGION_SIGNATURE …
#define OPREGION_SIZE …
#define OPREGION_PCI_ADDR …
#define OPREGION_RVDA …
#define OPREGION_RVDS …
#define OPREGION_VERSION …
struct igd_opregion_vbt { … };
static inline unsigned long igd_opregion_shift_copy(char __user *dst,
loff_t *off,
void *src,
loff_t *pos,
size_t *remaining,
size_t bytes)
{ … }
static ssize_t vfio_pci_igd_rw(struct vfio_pci_core_device *vdev,
char __user *buf, size_t count, loff_t *ppos,
bool iswrite)
{ … }
static void vfio_pci_igd_release(struct vfio_pci_core_device *vdev,
struct vfio_pci_region *region)
{ … }
static const struct vfio_pci_regops vfio_pci_igd_regops = …;
static int vfio_pci_igd_opregion_init(struct vfio_pci_core_device *vdev)
{ … }
static ssize_t vfio_pci_igd_cfg_rw(struct vfio_pci_core_device *vdev,
char __user *buf, size_t count, loff_t *ppos,
bool iswrite)
{ … }
static void vfio_pci_igd_cfg_release(struct vfio_pci_core_device *vdev,
struct vfio_pci_region *region)
{ … }
static const struct vfio_pci_regops vfio_pci_igd_cfg_regops = …;
static int vfio_pci_igd_cfg_init(struct vfio_pci_core_device *vdev)
{ … }
int vfio_pci_igd_init(struct vfio_pci_core_device *vdev)
{ … }