1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>drm_gem_mmap_obj</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Linux DRM Developer's Guide"><link rel="up" href="drm-memory-management.html#idp1122600572" title="GEM Function Reference"><link rel="prev" href="API-drm-gem-object-free.html" title="drm_gem_object_free"><link rel="next" href="API-drm-gem-mmap.html" title="drm_gem_mmap"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">drm_gem_mmap_obj</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-drm-gem-object-free.html">Prev</a>&#160;</td><th width="60%" align="center">GEM Function Reference</th><td width="20%" align="right">&#160;<a accesskey="n" href="API-drm-gem-mmap.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-drm-gem-mmap-obj"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>drm_gem_mmap_obj &#8212; 
2     memory map a GEM object
3 </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">drm_gem_mmap_obj </b>(</code></td><td>struct drm_gem_object * <var class="pdparam">obj</var>, </td></tr><tr><td>&#160;</td><td>unsigned long <var class="pdparam">obj_size</var>, </td></tr><tr><td>&#160;</td><td>struct vm_area_struct * <var class="pdparam">vma</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">&#160;</div></div></div><div class="refsect1"><a name="idp1122702124"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>obj</code></em></span></dt><dd><p>
4     the GEM object to map
5    </p></dd><dt><span class="term"><em class="parameter"><code>obj_size</code></em></span></dt><dd><p>
6     the object size to be mapped, in bytes
7    </p></dd><dt><span class="term"><em class="parameter"><code>vma</code></em></span></dt><dd><p>
8     VMA for the area to be mapped
9    </p></dd></dl></div></div><div class="refsect1"><a name="idp1122705700"></a><h2>Description</h2><p>
10   Set up the VMA to prepare mapping of the GEM object using the gem_vm_ops
11   provided by the driver. Depending on their requirements, drivers can either
12   provide a fault handler in their gem_vm_ops (in which case any accesses to
13   the object will be trapped, to perform migration, GTT binding, surface
14   register allocation, or performance monitoring), or mmap the buffer memory
15   synchronously after calling drm_gem_mmap_obj.
16   </p><p>
17
18   This function is mainly intended to implement the DMABUF mmap operation, when
19   the GEM object is not looked up based on its fake offset. To implement the
20   DRM mmap operation, drivers should use the <code class="function">drm_gem_mmap</code> function.
21   </p><p>
22
23   <code class="function">drm_gem_mmap_obj</code> assumes the user is granted access to the buffer while
24   <code class="function">drm_gem_mmap</code> prevents unprivileged users from mapping random objects. So
25   callers must verify access restrictions before calling this helper.
26</p></div><div class="refsect1"><a name="idp1122708340"></a><h2>NOTE</h2><p>
27   This function has to be protected with dev-&gt;struct_mutex
28   </p><p>
29
30   Return 0 or success or -EINVAL if the object size is smaller than the VMA
31   size, or if no gem_vm_ops are provided.
32</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-drm-gem-object-free.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="drm-memory-management.html#idp1122600572">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="API-drm-gem-mmap.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">drm_gem_object_free</span>&#160;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&#160;<span class="phrase">drm_gem_mmap</span></td></tr></table></div></body></html>
33