1 /* 2 * SPDX-License-Identifier: MIT 3 * 4 * Copyright © 2019 Intel Corporation 5 */ 6 7 #ifndef __I915_GEM_MMAN_H__ 8 #define __I915_GEM_MMAN_H__ 9 10 #include <linux/mm_types.h> 11 #include <linux/types.h> 12 13 struct drm_device; 14 struct drm_file; 15 struct drm_i915_gem_object; 16 struct drm_gem_object; 17 struct file; 18 struct i915_mmap_offset; 19 struct rwlock; 20 21 int i915_gem_mmap_gtt_version(void); 22 #ifdef __linux__ 23 int i915_gem_mmap(struct file *filp, struct vm_area_struct *vma); 24 #else 25 struct uvm_object *i915_gem_mmap(struct file *filp, vm_prot_t accessprot, 26 voff_t off, vsize_t size); 27 #endif 28 29 int i915_gem_dumb_mmap_offset(struct drm_file *file_priv, 30 struct drm_device *dev, 31 u32 handle, u64 *offset); 32 33 void __i915_gem_object_release_mmap_gtt(struct drm_i915_gem_object *obj); 34 void i915_gem_object_release_mmap_gtt(struct drm_i915_gem_object *obj); 35 36 void i915_gem_object_runtime_pm_release_mmap_offset(struct drm_i915_gem_object *obj); 37 void i915_gem_object_release_mmap_offset(struct drm_i915_gem_object *obj); 38 #ifdef __linux__ 39 int i915_gem_fb_mmap(struct drm_i915_gem_object *obj, struct vm_area_struct *vma); 40 #endif 41 42 int i915_gem_fault(struct drm_gem_object *gem_obj, struct uvm_faultinfo *ufi, 43 off_t offset, vaddr_t vaddr, vm_page_t *pps, int npages, 44 int centeridx, vm_prot_t access_type, int flags); 45 46 #endif 47