drivers/vfio/cdx/private.h

Source file repositories/reference/linux-study-clean/drivers/vfio/cdx/private.h

File Facts

System
Linux kernel
Corpus path
drivers/vfio/cdx/private.h
Extension
.h
Size
1304 bytes
Lines
65
Domain
Driver Families
Bucket
drivers/vfio
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct vfio_cdx_irq {
	u32			flags;
	u32			count;
	int			irq_no;
	struct eventfd_ctx	*trigger;
	char			*name;
};

struct vfio_cdx_region {
	u32			flags;
	u32			type;
	u64			addr;
	resource_size_t		size;
};

struct vfio_cdx_device {
	struct vfio_device	vdev;
	struct vfio_cdx_region	*regions;
	struct mutex		cdx_irqs_lock;
	struct vfio_cdx_irq	*cdx_irqs;
	u32			flags;
#define BME_SUPPORT BIT(0)
	u32			msi_count;
};

#ifdef CONFIG_GENERIC_MSI_IRQ
int vfio_cdx_set_irqs_ioctl(struct vfio_cdx_device *vdev,
			    u32 flags, unsigned int index,
			    unsigned int start, unsigned int count,
			    void *data);

void vfio_cdx_irqs_cleanup(struct vfio_cdx_device *vdev);
#else
static int vfio_cdx_set_irqs_ioctl(struct vfio_cdx_device *vdev,
				   u32 flags, unsigned int index,
				   unsigned int start, unsigned int count,
				   void *data)
{
	return -EINVAL;
}

static void vfio_cdx_irqs_cleanup(struct vfio_cdx_device *vdev)
{
}
#endif

#endif /* VFIO_CDX_PRIVATE_H */

Annotation

Implementation Notes