drivers/iommu/iommufd/iommufd_test.h

Source file repositories/reference/linux-study-clean/drivers/iommu/iommufd/iommufd_test.h

File Facts

System
Linux kernel
Corpus path
drivers/iommu/iommufd/iommufd_test.h
Extension
.h
Size
6710 bytes
Lines
294
Domain
Driver Families
Bucket
drivers/iommu
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 iommu_test_cmd {
	__u32 size;
	__u32 op;
	__u32 id;
	__u32 __reserved;
	union {
		struct {
			__aligned_u64 start;
			__aligned_u64 length;
		} add_reserved;
		struct {
			__u32 out_stdev_id;
			__u32 out_hwpt_id;
			/* out_idev_id is the standard iommufd_bind object */
			__u32 out_idev_id;
		} mock_domain;
		struct {
			__u32 out_stdev_id;
			__u32 out_hwpt_id;
			__u32 out_idev_id;
			/* Expand mock_domain to set mock device flags */
			__u32 dev_flags;
		} mock_domain_flags;
		struct {
			__u32 pt_id;
		} mock_domain_replace;
		struct {
			__aligned_u64 iova;
			__aligned_u64 length;
			__aligned_u64 uptr;
		} check_map;
		struct {
			__aligned_u64 length;
			__aligned_u64 uptr;
			__u32 refs;
		} check_refs;
		struct {
			__u32 out_access_fd;
			__u32 flags;
		} create_access;
		struct {
			__u32 access_pages_id;
		} destroy_access_pages;
		struct {
			__u32 flags;
			__u32 out_access_pages_id;
			__aligned_u64 iova;
			__aligned_u64 length;
			__aligned_u64 uptr;
		} access_pages;
		struct {
			__aligned_u64 iova;
			__aligned_u64 length;
			__aligned_u64 uptr;
			__u32 flags;
		} access_rw;
		struct {
			__u32 limit;
		} memory_limit;
		struct {
			__u32 ioas_id;
		} access_replace_ioas;
		struct {
			__u32 flags;
			__aligned_u64 iova;
			__aligned_u64 length;
			__aligned_u64 page_size;
			__aligned_u64 uptr;
			__aligned_u64 out_nr_dirty;
		} dirty;
		struct {
			__u32 id;
			__u32 iotlb;
		} check_iotlb;
		struct {
			__u32 dev_id;
			__u32 pasid;
			__u32 grpid;
			__u32 perm;
			__u64 addr;
		} trigger_iopf;
		struct {
			__u32 id;
			__u32 cache;
		} check_dev_cache;
		struct {
			__u32 dev_id;
		} trigger_vevent;
		struct {
			__u32 pasid;

Annotation

Implementation Notes