2#ifndef __DRM_GEM_DMA_HELPER_H__
3#define __DRM_GEM_DMA_HELPER_H__
32#define to_drm_gem_dma_obj(gem_obj) \
33 container_of(gem_obj, struct drm_gem_dma_object, base)
58static inline void drm_gem_dma_object_free(
struct drm_gem_object *obj)
74static inline void drm_gem_dma_object_print_info(
struct drm_printer *p,
unsigned int indent,
110static inline int drm_gem_dma_object_vmap(
struct drm_gem_object *obj,
168#define DRM_GEM_DMA_DRIVER_OPS_WITH_DUMB_CREATE(dumb_create_func) \
169 .dumb_create = (dumb_create_func), \
170 .gem_prime_import_sg_table = drm_gem_dma_prime_import_sg_table
184#define DRM_GEM_DMA_DRIVER_OPS \
185 DRM_GEM_DMA_DRIVER_OPS_WITH_DUMB_CREATE(drm_gem_dma_dumb_create)
203#define DRM_GEM_DMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE(dumb_create_func) \
204 .dumb_create = (dumb_create_func), \
205 .gem_prime_import_sg_table = drm_gem_dma_prime_import_sg_table_vmap
222#define DRM_GEM_DMA_DRIVER_OPS_VMAP \
223 DRM_GEM_DMA_DRIVER_OPS_VMAP_WITH_DUMB_CREATE(drm_gem_dma_dumb_create)
239 unsigned long flags);
240#define DRM_GEM_DMA_UNMAPPED_AREA_FOPS \
241 .get_unmapped_area = drm_gem_dma_get_unmapped_area,
243#define DRM_GEM_DMA_UNMAPPED_AREA_FOPS
259#define DEFINE_DRM_GEM_DMA_FOPS(name) \
260 static const struct file_operations name = {\
261 .owner = THIS_MODULE,\
263 .release = drm_release,\
264 .unlocked_ioctl = drm_ioctl,\
265 .compat_ioctl = drm_compat_ioctl,\
268 .llseek = noop_llseek,\
269 .mmap = drm_gem_mmap,\
270 .fop_flags = FOP_UNSIGNED_OFFSET, \
271 DRM_GEM_DMA_UNMAPPED_AREA_FOPS \
uint8_t flags
Definition virtio.h:0
int map
Definition d_mode.c:31
size_t size
Definition drm_bridge.h:1299
void drm_gem_dma_free(struct drm_gem_dma_object *dma_obj)
struct drm_gem_object * drm_gem_dma_prime_import_sg_table(struct drm_device *dev, struct dma_buf_attachment *attach, struct sg_table *sgt)
#define to_drm_gem_dma_obj(gem_obj)
Definition drm_gem_dma_helper.h:32
const struct vm_operations_struct drm_gem_dma_vm_ops
struct drm_gem_object * drm_gem_dma_prime_import_sg_table_vmap(struct drm_device *drm, struct dma_buf_attachment *attach, struct sg_table *sgt)
unsigned long drm_gem_dma_get_unmapped_area(struct file *filp, unsigned long addr, unsigned long len, unsigned long pgoff, unsigned long flags)
int drm_gem_dma_vmap(struct drm_gem_dma_object *dma_obj, struct iosys_map *map)
int drm_gem_dma_mmap(struct drm_gem_dma_object *dma_obj, struct vm_area_struct *vma)
int drm_gem_dma_dumb_create_internal(struct drm_file *file_priv, struct drm_device *drm, struct drm_mode_create_dumb *args)
void drm_gem_dma_print_info(const struct drm_gem_dma_object *dma_obj, struct drm_printer *p, unsigned int indent)
struct drm_gem_dma_object * drm_gem_dma_create(struct drm_device *drm, size_t size)
struct sg_table * drm_gem_dma_get_sg_table(struct drm_gem_dma_object *dma_obj)
int drm_gem_dma_dumb_create(struct drm_file *file_priv, struct drm_device *drm, struct drm_mode_create_dumb *args)
const struct device * dev
Definition drm_print.h:519
size_t len
Definition initial.c:23
uintptr_t dma_addr_t
Definition kernel.h:42
const char const char va_list args
Definition seq_buf.h:182
Definition drm_device.h:75
Definition drm_file.h:165
Definition drm_gem_dma_helper.h:21
dma_addr_t dma_addr
Definition drm_gem_dma_helper.h:23
bool map_noncoherent
Definition drm_gem_dma_helper.h:29
struct sg_table * sgt
Definition drm_gem_dma_helper.h:24
void * vaddr
Definition drm_gem_dma_helper.h:27
struct drm_gem_object base
Definition drm_gem_dma_helper.h:22
struct file * filp
Definition drm_gem.h:315
Definition drm_mode.h:1249
Definition drm_print.h:181
Definition iosys-map.h:109
Definition scatterlist.h:135