1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>drm_vma_offset_add</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#idp1122718668" title="VMA Offset Manager"><link rel="prev" href="API-drm-vma-offset-lookup-locked.html" title="drm_vma_offset_lookup_locked"><link rel="next" href="API-drm-vma-offset-remove.html" title="drm_vma_offset_remove"></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_vma_offset_add</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-drm-vma-offset-lookup-locked.html">Prev</a> </td><th width="60%" align="center">VMA Offset Manager</th><td width="20%" align="right"> <a accesskey="n" href="API-drm-vma-offset-remove.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-drm-vma-offset-add"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>drm_vma_offset_add — 2 Add offset node to manager 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_vma_offset_add </b>(</code></td><td>struct drm_vma_offset_manager * <var class="pdparam">mgr</var>, </td></tr><tr><td> </td><td>struct drm_vma_offset_node * <var class="pdparam">node</var>, </td></tr><tr><td> </td><td>unsigned long <var class="pdparam">pages</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idp1122768500"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>mgr</code></em></span></dt><dd><p> 4 Manager object 5 </p></dd><dt><span class="term"><em class="parameter"><code>node</code></em></span></dt><dd><p> 6 Node to be added 7 </p></dd><dt><span class="term"><em class="parameter"><code>pages</code></em></span></dt><dd><p> 8 Allocation size visible to user-space (in number of pages) 9 </p></dd></dl></div></div><div class="refsect1"><a name="idp1122772012"></a><h2>Description</h2><p> 10 Add a node to the offset-manager. If the node was already added, this does 11 nothing and return 0. <em class="parameter"><code>pages</code></em> is the size of the object given in number of 12 pages. 13 After this call succeeds, you can access the offset of the node until it 14 is removed again. 15 </p><p> 16 17 If this call fails, it is safe to retry the operation or call 18 <code class="function">drm_vma_offset_remove</code>, anyway. However, no cleanup is required in that 19 case. 20 </p><p> 21 22 <em class="parameter"><code>pages</code></em> is not required to be the same size as the underlying memory object 23 that you want to map. It only limits the size that user-space can map into 24 their address space. 25</p></div><div class="refsect1"><a name="idp1122774388"></a><h2>RETURNS</h2><p> 26 0 on success, negative error code on failure. 27</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-vma-offset-lookup-locked.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="drm-memory-management.html#idp1122718668">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-drm-vma-offset-remove.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">drm_vma_offset_lookup_locked</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">drm_vma_offset_remove</span></td></tr></table></div></body></html> 28