1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>release_mem_region_adjustable</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="The Linux Kernel API"><link rel="up" href="ch09s03.html" title="Resources Management"><link rel="prev" href="API-resource-alignment.html" title="resource_alignment"><link rel="next" href="API-request-resource.html" title="request_resource"></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">release_mem_region_adjustable</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-resource-alignment.html">Prev</a>&#160;</td><th width="60%" align="center">Resources Management</th><td width="20%" align="right">&#160;<a accesskey="n" href="API-request-resource.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-release-mem-region-adjustable"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>release_mem_region_adjustable &#8212; 
2     release a previously reserved memory region
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">release_mem_region_adjustable </b>(</code></td><td>struct resource * <var class="pdparam">parent</var>, </td></tr><tr><td>&#160;</td><td>resource_size_t <var class="pdparam">start</var>, </td></tr><tr><td>&#160;</td><td>resource_size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">&#160;</div></div></div><div class="refsect1"><a name="idp1125929540"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>parent</code></em></span></dt><dd><p>
4     parent resource descriptor
5    </p></dd><dt><span class="term"><em class="parameter"><code>start</code></em></span></dt><dd><p>
6     resource start address
7    </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
8     resource region size
9    </p></dd></dl></div></div><div class="refsect1"><a name="idp1125933212"></a><h2>Description</h2><p>
10   This interface is intended for memory hot-delete.  The requested region
11   is released from a currently busy memory resource.  The requested region
12   must either match exactly or fit into a single busy resource entry.  In
13   the latter case, the remaining resource is adjusted accordingly.
14   Existing children of the busy memory resource must be immutable in the
15   request.
16</p></div><div class="refsect1"><a name="idp1125934196"></a><h2>Note</h2><p>
17   - Additional release conditions, such as overlapping region, can be
18   supported after they are confirmed as valid cases.
19   - When a busy memory resource gets split into two entries, the code
20   assumes that all children remain in the lower address entry for
21   simplicity.  Enhance this logic when necessary.
22</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-resource-alignment.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="ch09s03.html">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="API-request-resource.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">resource_alignment</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">request_resource</span></td></tr></table></div></body></html>
23