dma_buf_opsRegular
4.4: ✅struct dma_buf_ops {
int (*attach)(struct dma_buf *, struct device *, struct dma_buf_attachment *);
void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
void (*release)(struct dma_buf *);
int (*begin_cpu_access)(struct dma_buf *, size_t, size_t, enum dma_data_direction);
void (*end_cpu_access)(struct dma_buf *, size_t, size_t, enum dma_data_direction);
void * (*kmap_atomic)(struct dma_buf *, long unsigned int);
void (*kunmap_atomic)(struct dma_buf *, long unsigned int, void *);
void * (*kmap)(struct dma_buf *, long unsigned int);
void (*kunmap)(struct dma_buf *, long unsigned int, void *);
int (*mmap)(struct dma_buf *, struct vm_area_struct *);
void * (*vmap)(struct dma_buf *);
void (*vunmap)(struct dma_buf *, void *);
};
4.8: ✅struct dma_buf_ops {
int (*attach)(struct dma_buf *, struct device *, struct dma_buf_attachment *);
void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
void (*release)(struct dma_buf *);
int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
void * (*kmap_atomic)(struct dma_buf *, long unsigned int);
void (*kunmap_atomic)(struct dma_buf *, long unsigned int, void *);
void * (*kmap)(struct dma_buf *, long unsigned int);
void (*kunmap)(struct dma_buf *, long unsigned int, void *);
int (*mmap)(struct dma_buf *, struct vm_area_struct *);
void * (*vmap)(struct dma_buf *);
void (*vunmap)(struct dma_buf *, void *);
};
4.10: ✅struct dma_buf_ops {
int (*attach)(struct dma_buf *, struct device *, struct dma_buf_attachment *);
void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
void (*release)(struct dma_buf *);
int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
void * (*kmap_atomic)(struct dma_buf *, long unsigned int);
void (*kunmap_atomic)(struct dma_buf *, long unsigned int, void *);
void * (*kmap)(struct dma_buf *, long unsigned int);
void (*kunmap)(struct dma_buf *, long unsigned int, void *);
int (*mmap)(struct dma_buf *, struct vm_area_struct *);
void * (*vmap)(struct dma_buf *);
void (*vunmap)(struct dma_buf *, void *);
};
4.13: ✅struct dma_buf_ops {
int (*attach)(struct dma_buf *, struct device *, struct dma_buf_attachment *);
void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
void (*release)(struct dma_buf *);
int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
void * (*map_atomic)(struct dma_buf *, long unsigned int);
void (*unmap_atomic)(struct dma_buf *, long unsigned int, void *);
void * (*map)(struct dma_buf *, long unsigned int);
void (*unmap)(struct dma_buf *, long unsigned int, void *);
int (*mmap)(struct dma_buf *, struct vm_area_struct *);
void * (*vmap)(struct dma_buf *);
void (*vunmap)(struct dma_buf *, void *);
};
4.15: ✅struct dma_buf_ops {
int (*attach)(struct dma_buf *, struct device *, struct dma_buf_attachment *);
void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
void (*release)(struct dma_buf *);
int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
void * (*map_atomic)(struct dma_buf *, long unsigned int);
void (*unmap_atomic)(struct dma_buf *, long unsigned int, void *);
void * (*map)(struct dma_buf *, long unsigned int);
void (*unmap)(struct dma_buf *, long unsigned int, void *);
int (*mmap)(struct dma_buf *, struct vm_area_struct *);
void * (*vmap)(struct dma_buf *);
void (*vunmap)(struct dma_buf *, void *);
};
4.18: ✅struct dma_buf_ops {
int (*attach)(struct dma_buf *, struct device *, struct dma_buf_attachment *);
void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
void (*release)(struct dma_buf *);
int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
void * (*map_atomic)(struct dma_buf *, long unsigned int);
void (*unmap_atomic)(struct dma_buf *, long unsigned int, void *);
void * (*map)(struct dma_buf *, long unsigned int);
void (*unmap)(struct dma_buf *, long unsigned int, void *);
int (*mmap)(struct dma_buf *, struct vm_area_struct *);
void * (*vmap)(struct dma_buf *);
void (*vunmap)(struct dma_buf *, void *);
};
5.0: ✅struct dma_buf_ops {
int (*attach)(struct dma_buf *, struct dma_buf_attachment *);
void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
void (*release)(struct dma_buf *);
int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
void * (*map)(struct dma_buf *, long unsigned int);
void (*unmap)(struct dma_buf *, long unsigned int, void *);
int (*mmap)(struct dma_buf *, struct vm_area_struct *);
void * (*vmap)(struct dma_buf *);
void (*vunmap)(struct dma_buf *, void *);
};
5.3: ✅struct dma_buf_ops {
bool cache_sgt_mapping;
int (*attach)(struct dma_buf *, struct dma_buf_attachment *);
void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
void (*release)(struct dma_buf *);
int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*mmap)(struct dma_buf *, struct vm_area_struct *);
void * (*map)(struct dma_buf *, long unsigned int);
void (*unmap)(struct dma_buf *, long unsigned int, void *);
void * (*vmap)(struct dma_buf *);
void (*vunmap)(struct dma_buf *, void *);
};
5.4: ✅struct dma_buf_ops {
bool cache_sgt_mapping;
int (*attach)(struct dma_buf *, struct dma_buf_attachment *);
void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
void (*release)(struct dma_buf *);
int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*mmap)(struct dma_buf *, struct vm_area_struct *);
void * (*map)(struct dma_buf *, long unsigned int);
void (*unmap)(struct dma_buf *, long unsigned int, void *);
void * (*vmap)(struct dma_buf *);
void (*vunmap)(struct dma_buf *, void *);
};
5.8: ✅struct dma_buf_ops {
bool cache_sgt_mapping;
int (*attach)(struct dma_buf *, struct dma_buf_attachment *);
void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
int (*pin)(struct dma_buf_attachment *);
void (*unpin)(struct dma_buf_attachment *);
struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
void (*release)(struct dma_buf *);
int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*mmap)(struct dma_buf *, struct vm_area_struct *);
void * (*vmap)(struct dma_buf *);
void (*vunmap)(struct dma_buf *, void *);
};
5.11: ✅struct dma_buf_ops {
bool cache_sgt_mapping;
int (*attach)(struct dma_buf *, struct dma_buf_attachment *);
void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
int (*pin)(struct dma_buf_attachment *);
void (*unpin)(struct dma_buf_attachment *);
struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
void (*release)(struct dma_buf *);
int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*mmap)(struct dma_buf *, struct vm_area_struct *);
int (*vmap)(struct dma_buf *, struct dma_buf_map *);
void (*vunmap)(struct dma_buf *, struct dma_buf_map *);
};
5.13: ✅struct dma_buf_ops {
bool cache_sgt_mapping;
int (*attach)(struct dma_buf *, struct dma_buf_attachment *);
void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
int (*pin)(struct dma_buf_attachment *);
void (*unpin)(struct dma_buf_attachment *);
struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
void (*release)(struct dma_buf *);
int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*mmap)(struct dma_buf *, struct vm_area_struct *);
int (*vmap)(struct dma_buf *, struct dma_buf_map *);
void (*vunmap)(struct dma_buf *, struct dma_buf_map *);
};
5.15: ✅struct dma_buf_ops {
bool cache_sgt_mapping;
int (*attach)(struct dma_buf *, struct dma_buf_attachment *);
void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
int (*pin)(struct dma_buf_attachment *);
void (*unpin)(struct dma_buf_attachment *);
struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
void (*release)(struct dma_buf *);
int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*mmap)(struct dma_buf *, struct vm_area_struct *);
int (*vmap)(struct dma_buf *, struct dma_buf_map *);
void (*vunmap)(struct dma_buf *, struct dma_buf_map *);
};
5.19: ✅struct dma_buf_ops {
bool cache_sgt_mapping;
int (*attach)(struct dma_buf *, struct dma_buf_attachment *);
void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
int (*pin)(struct dma_buf_attachment *);
void (*unpin)(struct dma_buf_attachment *);
struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
void (*release)(struct dma_buf *);
int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*mmap)(struct dma_buf *, struct vm_area_struct *);
int (*vmap)(struct dma_buf *, struct iosys_map *);
void (*vunmap)(struct dma_buf *, struct iosys_map *);
};
6.2: ✅struct dma_buf_ops {
bool cache_sgt_mapping;
int (*attach)(struct dma_buf *, struct dma_buf_attachment *);
void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
int (*pin)(struct dma_buf_attachment *);
void (*unpin)(struct dma_buf_attachment *);
struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
void (*release)(struct dma_buf *);
int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*mmap)(struct dma_buf *, struct vm_area_struct *);
int (*vmap)(struct dma_buf *, struct iosys_map *);
void (*vunmap)(struct dma_buf *, struct iosys_map *);
};
6.5: ✅struct dma_buf_ops {
bool cache_sgt_mapping;
int (*attach)(struct dma_buf *, struct dma_buf_attachment *);
void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
int (*pin)(struct dma_buf_attachment *);
void (*unpin)(struct dma_buf_attachment *);
struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
void (*release)(struct dma_buf *);
int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*mmap)(struct dma_buf *, struct vm_area_struct *);
int (*vmap)(struct dma_buf *, struct iosys_map *);
void (*vunmap)(struct dma_buf *, struct iosys_map *);
};
6.8: ✅struct dma_buf_ops {
bool cache_sgt_mapping;
int (*attach)(struct dma_buf *, struct dma_buf_attachment *);
void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
int (*pin)(struct dma_buf_attachment *);
void (*unpin)(struct dma_buf_attachment *);
struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
void (*release)(struct dma_buf *);
int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*mmap)(struct dma_buf *, struct vm_area_struct *);
int (*vmap)(struct dma_buf *, struct iosys_map *);
void (*vunmap)(struct dma_buf *, struct iosys_map *);
};
arm64: ✅struct dma_buf_ops {
bool cache_sgt_mapping;
int (*attach)(struct dma_buf *, struct dma_buf_attachment *);
void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
void (*release)(struct dma_buf *);
int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*mmap)(struct dma_buf *, struct vm_area_struct *);
void * (*map)(struct dma_buf *, long unsigned int);
void (*unmap)(struct dma_buf *, long unsigned int, void *);
void * (*vmap)(struct dma_buf *);
void (*vunmap)(struct dma_buf *, void *);
};
armhf: ✅struct dma_buf_ops {
bool cache_sgt_mapping;
int (*attach)(struct dma_buf *, struct dma_buf_attachment *);
void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
void (*release)(struct dma_buf *);
int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*mmap)(struct dma_buf *, struct vm_area_struct *);
void * (*map)(struct dma_buf *, long unsigned int);
void (*unmap)(struct dma_buf *, long unsigned int, void *);
void * (*vmap)(struct dma_buf *);
void (*vunmap)(struct dma_buf *, void *);
};
ppc64el: ✅struct dma_buf_ops {
bool cache_sgt_mapping;
int (*attach)(struct dma_buf *, struct dma_buf_attachment *);
void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
void (*release)(struct dma_buf *);
int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*mmap)(struct dma_buf *, struct vm_area_struct *);
void * (*map)(struct dma_buf *, long unsigned int);
void (*unmap)(struct dma_buf *, long unsigned int, void *);
void * (*vmap)(struct dma_buf *);
void (*vunmap)(struct dma_buf *, void *);
};
riscv64: ✅struct dma_buf_ops {
bool cache_sgt_mapping;
int (*attach)(struct dma_buf *, struct dma_buf_attachment *);
void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
void (*release)(struct dma_buf *);
int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*mmap)(struct dma_buf *, struct vm_area_struct *);
void * (*map)(struct dma_buf *, long unsigned int);
void (*unmap)(struct dma_buf *, long unsigned int, void *);
void * (*vmap)(struct dma_buf *);
void (*vunmap)(struct dma_buf *, void *);
};
aws: ✅struct dma_buf_ops {
bool cache_sgt_mapping;
int (*attach)(struct dma_buf *, struct dma_buf_attachment *);
void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
void (*release)(struct dma_buf *);
int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*mmap)(struct dma_buf *, struct vm_area_struct *);
void * (*map)(struct dma_buf *, long unsigned int);
void (*unmap)(struct dma_buf *, long unsigned int, void *);
void * (*vmap)(struct dma_buf *);
void (*vunmap)(struct dma_buf *, void *);
};
azure: ✅struct dma_buf_ops {
bool cache_sgt_mapping;
int (*attach)(struct dma_buf *, struct dma_buf_attachment *);
void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
void (*release)(struct dma_buf *);
int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*mmap)(struct dma_buf *, struct vm_area_struct *);
void * (*map)(struct dma_buf *, long unsigned int);
void (*unmap)(struct dma_buf *, long unsigned int, void *);
void * (*vmap)(struct dma_buf *);
void (*vunmap)(struct dma_buf *, void *);
};
gcp: ✅struct dma_buf_ops {
bool cache_sgt_mapping;
int (*attach)(struct dma_buf *, struct dma_buf_attachment *);
void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
void (*release)(struct dma_buf *);
int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*mmap)(struct dma_buf *, struct vm_area_struct *);
void * (*map)(struct dma_buf *, long unsigned int);
void (*unmap)(struct dma_buf *, long unsigned int, void *);
void * (*vmap)(struct dma_buf *);
void (*vunmap)(struct dma_buf *, void *);
};
lowlatency: ✅struct dma_buf_ops {
bool cache_sgt_mapping;
int (*attach)(struct dma_buf *, struct dma_buf_attachment *);
void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
void (*release)(struct dma_buf *);
int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*mmap)(struct dma_buf *, struct vm_area_struct *);
void * (*map)(struct dma_buf *, long unsigned int);
void (*unmap)(struct dma_buf *, long unsigned int, void *);
void * (*vmap)(struct dma_buf *);
void (*vunmap)(struct dma_buf *, void *);
};
Regular
4.4 and 4.8 ⚠️int (*begin_cpu_access)(struct dma_buf *, size_t, size_t, enum dma_data_direction) ➡️ int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction)
void (*end_cpu_access)(struct dma_buf *, size_t, size_t, enum dma_data_direction) ➡️ int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction)
4.8 and 4.10 ✅
4.10 and 4.13 ⚠️void * (*map_atomic)(struct dma_buf *, long unsigned int)
void (*unmap_atomic)(struct dma_buf *, long unsigned int, void *)
void * (*map)(struct dma_buf *, long unsigned int)
void (*unmap)(struct dma_buf *, long unsigned int, void *)
void * (*kmap_atomic)(struct dma_buf *, long unsigned int)
void (*kunmap_atomic)(struct dma_buf *, long unsigned int, void *)
void * (*kmap)(struct dma_buf *, long unsigned int)
void (*kunmap)(struct dma_buf *, long unsigned int, void *)
4.13 and 4.15 ✅
4.15 and 4.18 ✅
4.18 and 5.0 ⚠️void * (*map_atomic)(struct dma_buf *, long unsigned int)
void (*unmap_atomic)(struct dma_buf *, long unsigned int, void *)
int (*attach)(struct dma_buf *, struct device *, struct dma_buf_attachment *) ➡️ int (*attach)(struct dma_buf *, struct dma_buf_attachment *)
5.0 and 5.3 ⚠️bool cache_sgt_mapping
5.3 and 5.4 ✅
5.4 and 5.8 ⚠️int (*pin)(struct dma_buf_attachment *)
void (*unpin)(struct dma_buf_attachment *)
void * (*map)(struct dma_buf *, long unsigned int)
void (*unmap)(struct dma_buf *, long unsigned int, void *)
5.8 and 5.11 ⚠️void * (*vmap)(struct dma_buf *) ➡️ int (*vmap)(struct dma_buf *, struct dma_buf_map *)
void (*vunmap)(struct dma_buf *, void *) ➡️ void (*vunmap)(struct dma_buf *, struct dma_buf_map *)
5.11 and 5.13 ✅
5.13 and 5.15 ✅
5.15 and 5.19 ⚠️int (*vmap)(struct dma_buf *, struct dma_buf_map *) ➡️ int (*vmap)(struct dma_buf *, struct iosys_map *)
void (*vunmap)(struct dma_buf *, struct dma_buf_map *) ➡️ void (*vunmap)(struct dma_buf *, struct iosys_map *)
5.19 and 6.2 ✅
6.2 and 6.5 ✅
6.5 and 6.8 ✅
amd64 and arm64 ✅
amd64 and armhf ✅
amd64 and ppc64el ✅
amd64 and riscv64 ✅
generic and aws ✅
generic and azure ✅
generic and gcp ✅
generic and lowlatency ✅