Home | History | Annotate | Line # | Download | only in xen
      1 /*	$NetBSD: xen_drm_front_gem.h,v 1.2 2021/12/18 23:45:45 riastradh Exp $	*/
      2 
      3 /* SPDX-License-Identifier: GPL-2.0 OR MIT */
      4 
      5 /*
      6  *  Xen para-virtual DRM device
      7  *
      8  * Copyright (C) 2016-2018 EPAM Systems Inc.
      9  *
     10  * Author: Oleksandr Andrushchenko <oleksandr_andrushchenko (at) epam.com>
     11  */
     12 
     13 #ifndef __XEN_DRM_FRONT_GEM_H
     14 #define __XEN_DRM_FRONT_GEM_H
     15 
     16 struct dma_buf_attachment;
     17 struct drm_device;
     18 struct drm_gem_object;
     19 struct file;
     20 struct sg_table;
     21 struct vm_area_struct;
     22 
     23 struct drm_gem_object *xen_drm_front_gem_create(struct drm_device *dev,
     24 						size_t size);
     25 
     26 struct drm_gem_object *
     27 xen_drm_front_gem_import_sg_table(struct drm_device *dev,
     28 				  struct dma_buf_attachment *attach,
     29 				  struct sg_table *sgt);
     30 
     31 struct sg_table *xen_drm_front_gem_get_sg_table(struct drm_gem_object *gem_obj);
     32 
     33 struct page **xen_drm_front_gem_get_pages(struct drm_gem_object *obj);
     34 
     35 void xen_drm_front_gem_free_object_unlocked(struct drm_gem_object *gem_obj);
     36 
     37 int xen_drm_front_gem_mmap(struct file *filp, struct vm_area_struct *vma);
     38 
     39 void *xen_drm_front_gem_prime_vmap(struct drm_gem_object *gem_obj);
     40 
     41 void xen_drm_front_gem_prime_vunmap(struct drm_gem_object *gem_obj,
     42 				    void *vaddr);
     43 
     44 int xen_drm_front_gem_prime_mmap(struct drm_gem_object *gem_obj,
     45 				 struct vm_area_struct *vma);
     46 
     47 #endif /* __XEN_DRM_FRONT_GEM_H */
     48