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