XenevaOS
Loading...
Searching...
No Matches
Classes | Macros | Functions | Variables
drm_gem_shmem_helper.h File Reference
#include <linux/fs.h>
#include <linux/mm.h>
#include <linux/mutex.h>
#include <drm/drm_file.h>
#include <drm/drm_gem.h>
#include <drm/drm_ioctl.h>
#include <drm/drm_prime.h>
Include dependency graph for drm_gem_shmem_helper.h:

Go to the source code of this file.

Classes

struct  drm_gem_shmem_object
 

Macros

#define to_drm_gem_shmem_obj(obj)    container_of(obj, struct drm_gem_shmem_object, base)
 
#define DRM_GEM_SHMEM_DRIVER_OPS
 

Functions

int drm_gem_shmem_init (struct drm_device *dev, struct drm_gem_shmem_object *shmem, size_t size)
 
struct drm_gem_shmem_object * drm_gem_shmem_create (struct drm_device *dev, size_t size)
 
void drm_gem_shmem_release (struct drm_gem_shmem_object *shmem)
 
void drm_gem_shmem_free (struct drm_gem_shmem_object *shmem)
 
void __drm_gem_shmem_free_sgt_locked (struct drm_gem_shmem_object *shmem)
 
void drm_gem_shmem_put_pages_locked (struct drm_gem_shmem_object *shmem)
 
int drm_gem_shmem_pin (struct drm_gem_shmem_object *shmem)
 
void drm_gem_shmem_unpin (struct drm_gem_shmem_object *shmem)
 
int drm_gem_shmem_vmap_locked (struct drm_gem_shmem_object *shmem, struct iosys_map *map)
 
void drm_gem_shmem_vunmap_locked (struct drm_gem_shmem_object *shmem, struct iosys_map *map)
 
int drm_gem_shmem_mmap (struct drm_gem_shmem_object *shmem, struct vm_area_struct *vma)
 
int drm_gem_shmem_pin_locked (struct drm_gem_shmem_object *shmem)
 
void drm_gem_shmem_unpin_locked (struct drm_gem_shmem_object *shmem)
 
int drm_gem_shmem_madvise_locked (struct drm_gem_shmem_object *shmem, int madv)
 
void drm_gem_shmem_purge_locked (struct drm_gem_shmem_object *shmem)
 
struct sg_table * drm_gem_shmem_get_sg_table (struct drm_gem_shmem_object *shmem)
 
struct sg_table * drm_gem_shmem_get_pages_sgt (struct drm_gem_shmem_object *shmem)
 
void drm_gem_shmem_print_info (const struct drm_gem_shmem_object *shmem, struct drm_printer *p, unsigned int indent)
 
struct drm_gem_object * drm_gem_shmem_prime_import_sg_table (struct drm_device *dev, struct dma_buf_attachment *attach, struct sg_table *sgt)
 
int drm_gem_shmem_dumb_create (struct drm_file *file, struct drm_device *dev, struct drm_mode_create_dumb *args)
 
struct drm_gem_object * drm_gem_shmem_prime_import_no_map (struct drm_device *dev, struct dma_buf *buf)
 

Variables

const struct vm_operations_struct drm_gem_shmem_vm_ops
 

Macro Definition Documentation

◆ DRM_GEM_SHMEM_DRIVER_OPS

#define DRM_GEM_SHMEM_DRIVER_OPS
Value:
.gem_prime_import = drm_gem_shmem_prime_import_no_map, \
int drm_gem_shmem_dumb_create(struct drm_file *file, struct drm_device *dev, struct drm_mode_create_dumb *args)
struct drm_gem_object * drm_gem_shmem_prime_import_no_map(struct drm_device *dev, struct dma_buf *buf)

DRM_GEM_SHMEM_DRIVER_OPS - Default shmem GEM operations

This macro provides a shortcut for setting the shmem GEM operations in the &drm_driver structure. Drivers that do not require an s/g table for imported buffers should use this.

◆ to_drm_gem_shmem_obj

#define to_drm_gem_shmem_obj (   obj)     container_of(obj, struct drm_gem_shmem_object, base)

Function Documentation

◆ __drm_gem_shmem_free_sgt_locked()

void __drm_gem_shmem_free_sgt_locked ( struct drm_gem_shmem_object *  shmem)

◆ drm_gem_shmem_create()

struct drm_gem_shmem_object * drm_gem_shmem_create ( struct drm_device *  dev,
size_t  size 
)

◆ drm_gem_shmem_dumb_create()

int drm_gem_shmem_dumb_create ( struct drm_file *  file,
struct drm_device *  dev,
struct drm_mode_create_dumb *  args 
)

◆ drm_gem_shmem_free()

void drm_gem_shmem_free ( struct drm_gem_shmem_object *  shmem)

◆ drm_gem_shmem_get_pages_sgt()

struct sg_table * drm_gem_shmem_get_pages_sgt ( struct drm_gem_shmem_object *  shmem)

◆ drm_gem_shmem_get_sg_table()

struct sg_table * drm_gem_shmem_get_sg_table ( struct drm_gem_shmem_object *  shmem)

◆ drm_gem_shmem_init()

int drm_gem_shmem_init ( struct drm_device *  dev,
struct drm_gem_shmem_object *  shmem,
size_t  size 
)

◆ drm_gem_shmem_madvise_locked()

int drm_gem_shmem_madvise_locked ( struct drm_gem_shmem_object *  shmem,
int  madv 
)

◆ drm_gem_shmem_mmap()

int drm_gem_shmem_mmap ( struct drm_gem_shmem_object *  shmem,
struct vm_area_struct *  vma 
)

◆ drm_gem_shmem_pin()

int drm_gem_shmem_pin ( struct drm_gem_shmem_object *  shmem)

◆ drm_gem_shmem_pin_locked()

int drm_gem_shmem_pin_locked ( struct drm_gem_shmem_object *  shmem)

◆ drm_gem_shmem_prime_import_no_map()

struct drm_gem_object * drm_gem_shmem_prime_import_no_map ( struct drm_device *  dev,
struct dma_buf *  buf 
)

◆ drm_gem_shmem_prime_import_sg_table()

struct drm_gem_object * drm_gem_shmem_prime_import_sg_table ( struct drm_device *  dev,
struct dma_buf_attachment *  attach,
struct sg_table *  sgt 
)

◆ drm_gem_shmem_print_info()

void drm_gem_shmem_print_info ( const struct drm_gem_shmem_object *  shmem,
struct drm_printer *  p,
unsigned int  indent 
)

◆ drm_gem_shmem_purge_locked()

void drm_gem_shmem_purge_locked ( struct drm_gem_shmem_object *  shmem)

◆ drm_gem_shmem_put_pages_locked()

void drm_gem_shmem_put_pages_locked ( struct drm_gem_shmem_object *  shmem)

◆ drm_gem_shmem_release()

void drm_gem_shmem_release ( struct drm_gem_shmem_object *  shmem)

◆ drm_gem_shmem_unpin()

void drm_gem_shmem_unpin ( struct drm_gem_shmem_object *  shmem)

◆ drm_gem_shmem_unpin_locked()

void drm_gem_shmem_unpin_locked ( struct drm_gem_shmem_object *  shmem)

◆ drm_gem_shmem_vmap_locked()

int drm_gem_shmem_vmap_locked ( struct drm_gem_shmem_object *  shmem,
struct iosys_map *  map 
)

◆ drm_gem_shmem_vunmap_locked()

void drm_gem_shmem_vunmap_locked ( struct drm_gem_shmem_object *  shmem,
struct iosys_map *  map 
)

Variable Documentation

◆ drm_gem_shmem_vm_ops

const struct vm_operations_struct drm_gem_shmem_vm_ops
extern