xref: /openbsd/sys/dev/pci/drm/i915/gem/i915_gem_mman.h (revision f005ef32)
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