43#ifdef CONFIG_TRANSPARENT_HUGEPAGE
464#define DRM_GEM_FOPS \
466 .release = drm_release,\
467 .unlocked_ioctl = drm_ioctl,\
468 .compat_ioctl = drm_compat_ioctl,\
471 .llseek = noop_llseek,\
472 .get_unmapped_area = drm_gem_get_unmapped_area,\
473 .mmap = drm_gem_mmap, \
474 .fop_flags = FOP_UNSIGNED_OFFSET
489#define DEFINE_DRM_GEM_FOPS(name) \
490 static const struct file_operations name = {\
491 .owner = THIS_MODULE,\
495#ifdef CONFIG_TRANSPARENT_HUGEPAGE
496int drm_gem_huge_mnt_create(
struct drm_device *
dev,
const char *value);
498static inline int drm_gem_huge_mnt_create(
struct drm_device *
dev,
518#ifdef CONFIG_TRANSPARENT_HUGEPAGE
519 return dev->huge_mnt;
540 unsigned long len,
unsigned long pgoff,
541 unsigned long flags);
543#define drm_gem_get_unmapped_area NULL
575 __drm_gem_object_put(obj);
590 bool dirty,
bool accessed);
602 bool wait_all,
unsigned long timeout);
604 struct ww_acquire_ctx *acquire_ctx);
606 struct ww_acquire_ctx *acquire_ctx);
617 unsigned int nr_to_scan,
618 unsigned long *remaining,
619 bool (*shrink)(
struct drm_gem_object *obj,
struct ww_acquire_ctx *ticket),
620 struct ww_acquire_ctx *ticket);
632static inline bool drm_gem_object_is_shared_for_memory_stats(
struct drm_gem_object *obj)
644static inline bool drm_gem_is_imported(
const struct drm_gem_object *obj)
650#define drm_gem_gpuva_assert_lock_held(gpuvm, obj) \
651 lockdep_assert(drm_gpuvm_immediate_mode(gpuvm) ? \
652 lockdep_is_held(&(obj)->gpuva.lock) : \
653 dma_resv_held((obj)->resv))
655#define drm_gem_gpuva_assert_lock_held(gpuvm, obj) do {} while (0)
682#define drm_gem_for_each_gpuvm_bo(entry__, obj__) \
683 list_for_each_entry(entry__, &(obj__)->gpuva.list, list.entry.gem)
696#define drm_gem_for_each_gpuvm_bo_safe(entry__, next__, obj__) \
697 list_for_each_entry_safe(entry__, next__, &(obj__)->gpuva.list, list.entry.gem)
uint64_t size_t
Definition stdint.h:104
uint8_t flags
Definition virtio.h:0
typedef __attribute__
Definition list_sort.h:12
XEProcessList * list
Definition main.cpp:27
#define NULL
Definition actypes.h:561
size_t pages
Definition audrv.c:83
#define BIT(nr)
Definition bitops.h:112
#define __user
Definition compiler.h:63
int map
Definition d_mode.c:31
size_t size
Definition drm_bridge.h:1299
size_t size_t offset
Definition drm_bridge.h:1299
int drm_gem_object_init(struct drm_device *dev, struct drm_gem_object *obj, size_t size)
void drm_gem_free_mmap_offset(struct drm_gem_object *obj)
int drm_gem_lock_reservations(struct drm_gem_object **objs, int count, struct ww_acquire_ctx *acquire_ctx)
int drm_gem_handle_delete(struct drm_file *filp, u32 handle)
long drm_gem_dma_resv_wait(struct drm_file *filep, u32 handle, bool wait_all, unsigned long timeout)
int drm_gem_objects_lookup(struct drm_file *filp, void __user *bo_handles, int count, struct drm_gem_object ***objs_out)
int drm_gem_vmap(struct drm_gem_object *obj, struct iosys_map *map)
void drm_gem_lru_init(struct drm_gem_lru *lru)
void drm_gem_object_free(struct kref *kref)
int drm_gem_evict_locked(struct drm_gem_object *obj)
int drm_gem_mmap(struct file *filp, struct vm_area_struct *vma)
int drm_gem_handle_create(struct drm_file *file_priv, struct drm_gem_object *obj, u32 *handlep)
void drm_gem_private_object_fini(struct drm_gem_object *obj)
void drm_gem_vm_open(struct vm_area_struct *vma)
void drm_gem_vunmap(struct drm_gem_object *obj, struct iosys_map *map)
int drm_gem_create_mmap_offset_size(struct drm_gem_object *obj, size_t size)
int drm_gem_dumb_map_offset(struct drm_file *file, struct drm_device *dev, u32 handle, u64 *offset)
int drm_gem_mmap_obj(struct drm_gem_object *obj, unsigned long obj_size, struct vm_area_struct *vma)
unsigned long drm_gem_lru_scan(struct drm_device *dev, struct drm_gem_lru *lru, unsigned int nr_to_scan, unsigned long *remaining, bool(*shrink)(struct drm_gem_object *obj, struct ww_acquire_ctx *ticket), struct ww_acquire_ctx *ticket)
void drm_gem_unlock_reservations(struct drm_gem_object **objs, int count, struct ww_acquire_ctx *acquire_ctx)
struct page ** drm_gem_get_pages(struct drm_gem_object *obj)
int drm_gem_create_mmap_offset(struct drm_gem_object *obj)
void drm_gem_lru_move_tail_locked(struct drm_gem_lru *lru, struct drm_gem_object *obj)
void drm_gem_private_object_init(struct drm_device *dev, struct drm_gem_object *obj, size_t size)
void drm_gem_lock(struct drm_gem_object *obj)
void drm_gem_lru_move_tail(struct drm_gem_lru *lru, struct drm_gem_object *obj)
void drm_gem_put_pages(struct drm_gem_object *obj, struct page **pages, bool dirty, bool accessed)
void drm_gem_object_release(struct drm_gem_object *obj)
void drm_gem_unlock(struct drm_gem_object *obj)
#define drm_gem_get_unmapped_area
Definition drm_gem.h:543
void drm_gem_vm_close(struct vm_area_struct *vma)
drm_gem_object_status
Definition drm_gem.h:66
@ DRM_GEM_OBJECT_ACTIVE
Definition drm_gem.h:69
@ DRM_GEM_OBJECT_RESIDENT
Definition drm_gem.h:67
@ DRM_GEM_OBJECT_PURGEABLE
Definition drm_gem.h:68
void drm_gem_lru_remove(struct drm_gem_object *obj)
struct drm_gem_object * drm_gem_object_lookup(struct drm_file *filp, u32 handle)
const struct device * dev
Definition drm_print.h:519
size_t len
Definition initial.c:23
uint64_t u64
Definition kernel.h:17
uint32_t u32
Definition kernel.h:16
Definition dma-resv.h:155
Definition drm_device.h:75
Definition drm_file.h:165
long count
Definition drm_gem.h:259
struct list_head list
Definition drm_gem.h:266
void(* unpin)(struct drm_gem_object *obj)
Definition drm_gem.h:146
int(* mmap)(struct drm_gem_object *obj, struct vm_area_struct *vma)
Definition drm_gem.h:195
int(* open)(struct drm_gem_object *obj, struct drm_file *file)
Definition drm_gem.h:92
int(* pin)(struct drm_gem_object *obj)
Definition drm_gem.h:137
void(* print_info)(struct drm_printer *p, unsigned int indent, const struct drm_gem_object *obj)
Definition drm_gem.h:116
enum drm_gem_object_status(* status)(struct drm_gem_object *obj)
Definition drm_gem.h:219
void(* vunmap)(struct drm_gem_object *obj, struct iosys_map *map)
Definition drm_gem.h:182
void(* free)(struct drm_gem_object *obj)
Definition drm_gem.h:83
int(* evict)(struct drm_gem_object *obj)
Definition drm_gem.h:206
size_t(* rss)(struct drm_gem_object *obj)
Definition drm_gem.h:228
const struct vm_operations_struct * vm_ops
Definition drm_gem.h:237
int(* vmap)(struct drm_gem_object *obj, struct iosys_map *map)
Definition drm_gem.h:171
void(* close)(struct drm_gem_object *obj, struct drm_file *file)
Definition drm_gem.h:101
struct dma_buf_attachment * import_attach
Definition drm_gem.h:377
int name
Definition drm_gem.h:344
struct drm_device * dev
Definition drm_gem.h:305
struct file * filp
Definition drm_gem.h:315
struct list_head lru_node
Definition drm_gem.h:444
struct kref refcount
Definition drm_gem.h:287
struct dma_resv * resv
Definition drm_gem.h:386
struct drm_gem_object::@29 gpuva
size_t size
Definition drm_gem.h:335
const struct drm_gem_object_funcs * funcs
Definition drm_gem.h:437
struct dma_buf * dma_buf
Definition drm_gem.h:357
struct drm_gem_lru * lru
Definition drm_gem.h:454
unsigned handle_count
Definition drm_gem.h:300
struct list_head list
Definition drm_gem.h:414
struct drm_vma_offset_node vma_node
Definition drm_gem.h:327
struct dma_resv _resv
Definition drm_gem.h:395
Definition drm_print.h:181
Definition drm_vma_manager.h:52
Definition iosys-map.h:109
Definition scatterlist.h:135
bool dirty
Definition term.cpp:55