#include <linux/eventfd.h>
#include <linux/interrupt.h>
#include <linux/slab.h>
#include <linux/types.h>
#include <linux/vfio.h>
#include <linux/irq.h>
#include "vfio_platform_private.h"
static void vfio_platform_mask(struct vfio_platform_irq *irq_ctx)
{ … }
static int vfio_platform_mask_handler(void *opaque, void *unused)
{ … }
static int vfio_platform_set_irq_mask(struct vfio_platform_device *vdev,
unsigned index, unsigned start,
unsigned count, uint32_t flags,
void *data)
{ … }
static void vfio_platform_unmask(struct vfio_platform_irq *irq_ctx)
{ … }
static int vfio_platform_unmask_handler(void *opaque, void *unused)
{ … }
static int vfio_platform_set_irq_unmask(struct vfio_platform_device *vdev,
unsigned index, unsigned start,
unsigned count, uint32_t flags,
void *data)
{ … }
static void vfio_send_eventfd(struct vfio_platform_irq *irq_ctx)
{ … }
static irqreturn_t vfio_automasked_irq_handler(int irq, void *dev_id)
{ … }
static irqreturn_t vfio_irq_handler(int irq, void *dev_id)
{ … }
static int vfio_set_trigger(struct vfio_platform_device *vdev, int index,
int fd)
{ … }
static int vfio_platform_set_irq_trigger(struct vfio_platform_device *vdev,
unsigned index, unsigned start,
unsigned count, uint32_t flags,
void *data)
{ … }
int vfio_platform_set_irqs_ioctl(struct vfio_platform_device *vdev,
uint32_t flags, unsigned index, unsigned start,
unsigned count, void *data)
{ … }
int vfio_platform_irq_init(struct vfio_platform_device *vdev)
{ … }
void vfio_platform_irq_cleanup(struct vfio_platform_device *vdev)
{ … }