drivers/vfio/pci/pds/dirty.h

Source file repositories/reference/linux-study-clean/drivers/vfio/pci/pds/dirty.h

File Facts

System
Linux kernel
Corpus path
drivers/vfio/pci/pds/dirty.h
Extension
.h
Size
1145 bytes
Lines
42
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 pds_vfio_region {
	unsigned long *host_seq;
	unsigned long *host_ack;
	u64 bmp_bytes;
	u64 size;
	u64 start;
	u64 page_size;
	struct pds_lm_sg_elem *sgl;
	dma_addr_t sgl_addr;
	u32 dev_bmp_offset_start_byte;
	u16 num_sge;
};

struct pds_vfio_dirty {
	struct pds_vfio_region *regions;
	u8 num_regions;
	bool is_enabled;
};

struct pds_vfio_pci_device;

bool pds_vfio_dirty_is_enabled(struct pds_vfio_pci_device *pds_vfio);
void pds_vfio_dirty_set_enabled(struct pds_vfio_pci_device *pds_vfio);
void pds_vfio_dirty_set_disabled(struct pds_vfio_pci_device *pds_vfio);
void pds_vfio_dirty_disable(struct pds_vfio_pci_device *pds_vfio,
			    bool send_cmd);

int pds_vfio_dma_logging_report(struct vfio_device *vdev, unsigned long iova,
				unsigned long length,
				struct iova_bitmap *dirty);
int pds_vfio_dma_logging_start(struct vfio_device *vdev,
			       struct rb_root_cached *ranges, u32 nnodes,
			       u64 *page_size);
int pds_vfio_dma_logging_stop(struct vfio_device *vdev);
#endif /* _DIRTY_H_ */

Annotation

Implementation Notes