Files
moslab-code/doc/source/html/classL4Re_1_1Inhibitor.html
2025-09-12 15:55:45 +02:00

378 lines
28 KiB
HTML

<!-- HTML header for doxygen 1.9.1-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.15.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>L4Re Operating System Framework: L4Re::Inhibitor Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
<link href="l4re-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="L4Re_rgb_logo_quer_hg_h55.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">L4Re Operating System Framework
</div>
<div id="projectbrief">Interface and Usage Documentation</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.15.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('classL4Re_1_1Inhibitor.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">L4Re::Inhibitor Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Set of inhibitor locks, which inhibit specific actions when held.
<a href="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="inhibitor_source.html">inhibitor</a>&gt;</code></p>
<div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Inheritance diagram for L4Re::Inhibitor:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4Re_1_1Inhibitor__inherit__graph.svg" width="402" height="830"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div id="dynsection-1" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Collaboration diagram for L4Re::Inhibitor:</div>
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4Re_1_1Inhibitor__coll__graph.svg" width="402" height="471"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-pub-types" class="groupheader"><a id="pub-types" name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a854ddc23caaf4f72157f7878e4a17fff" id="r_a854ddc23caaf4f72157f7878e4a17fff"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="#a854ddc23caaf4f72157f7878e4a17fffad10674dcf6cde6eb7acb89dd77bb2bc3">Name_max</a> = 20
}</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-pub-methods" class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ab220aac3d51cc9c422c04e8b18409179" id="r_ab220aac3d51cc9c422c04e8b18409179"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab220aac3d51cc9c422c04e8b18409179">acquire</a> (<a class="el" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> id, L4::Ipc::String&lt;&gt; reason)</td></tr>
<tr class="memdesc:ab220aac3d51cc9c422c04e8b18409179"><td class="mdescLeft">&#160;</td><td class="mdescRight">Acquire a specific inhibitor lock. <br /></td></tr>
<tr class="memitem:ac228e6e7ba816c85eec1826c65e149d6" id="r_ac228e6e7ba816c85eec1826c65e149d6"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac228e6e7ba816c85eec1826c65e149d6">release</a> (<a class="el" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> id)</td></tr>
<tr class="memdesc:ac228e6e7ba816c85eec1826c65e149d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release a specific inhibitor lock. <br /></td></tr>
<tr class="memitem:aa524589a81a491df8cad60939373d0da" id="r_aa524589a81a491df8cad60939373d0da"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa524589a81a491df8cad60939373d0da">next_lock_info</a> (char *name, unsigned len, <a class="el" href="group__l4__basic__types.html#ga51d9492e7700d70ed35838154ca9b279">l4_mword_t</a> current_id=-1, <a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb=<a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>())</td></tr>
<tr class="memdesc:aa524589a81a491df8cad60939373d0da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get information for the next available inhibitor lock. <br /></td></tr>
<tr class="inherit_header pub_methods_classL4_1_1Kobject"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_classL4_1_1Kobject')"><span class="dynarrow"><span class="arrowhead closed"></span></span>Public Member Functions inherited from <a class="el" href="classL4_1_1Kobject.html">L4::Kobject</a></td></tr>
<tr class="memitem:a9fe009599de49f1af438ff49998faec0 inherit pub_methods_classL4_1_1Kobject" id="r_a9fe009599de49f1af438ff49998faec0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structl4__msgtag__t.html">l4_msgtag_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Kobject.html#a9fe009599de49f1af438ff49998faec0">dec_refcnt</a> (<a class="el" href="group__l4__basic__types.html#ga51d9492e7700d70ed35838154ca9b279">l4_mword_t</a> diff, <a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb=<a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>())</td></tr>
<tr class="memdesc:a9fe009599de49f1af438ff49998faec0 inherit pub_methods_classL4_1_1Kobject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decrement the in kernel reference counter for the object. <br /></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-inherited" class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_types_classL4_1_1Kobject__t"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_types_classL4_1_1Kobject__t')"><span class="dynarrow"><span class="arrowhead closed"></span></span>Protected Types inherited from <a class="el" href="classL4_1_1Kobject__t.html">L4::Kobject_t&lt; Inhibitor, L4::Kobject, L4RE_PROTO_INHIBITOR &gt;</a></td></tr>
<tr class="memitem:af7df35ba5bf68ef5993e605a6b62328a inherit pro_types_classL4_1_1Kobject__t" id="r_af7df35ba5bf68ef5993e605a6b62328a"><td class="memItemLeft" align="right" valign="top">
typedef Inhibitor&#160;</td><td class="memItemRight" valign="bottom"><b>Class</b></td></tr>
<tr class="memdesc:af7df35ba5bf68ef5993e605a6b62328a inherit pro_types_classL4_1_1Kobject__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">The target interface type (inheriting from <a class="el" href="classL4_1_1Kobject__t.html" title="Helper class to create an L4Re interface class that is derived from a single base class.">Kobject_t</a>). <br /></td></tr>
<tr class="memitem:a0d83157994565e9c01f10006bdda2efa inherit pro_types_classL4_1_1Kobject__t" id="r_a0d83157994565e9c01f10006bdda2efa"><td class="memItemLeft" align="right" valign="top">
typedef Typeid::Iface&lt; PROTO, Inhibitor &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>__Iface</b></td></tr>
<tr class="memdesc:a0d83157994565e9c01f10006bdda2efa inherit pro_types_classL4_1_1Kobject__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">The interface description for the derived class. <br /></td></tr>
<tr class="memitem:afc2feec2f4a15e85286aabfa15c53e06 inherit pro_types_classL4_1_1Kobject__t" id="r_afc2feec2f4a15e85286aabfa15c53e06"><td class="memItemLeft" align="right" valign="top">
typedef Typeid::Merge_list&lt; Typeid::Iface_list&lt; <a class="el" href="classL4_1_1Kobject__t.html#a0d83157994565e9c01f10006bdda2efa">__Iface</a> &gt;, typename L4::Kobject::__Iface_list &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>__Iface_list</b></td></tr>
<tr class="memdesc:afc2feec2f4a15e85286aabfa15c53e06 inherit pro_types_classL4_1_1Kobject__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">The list of all RPC interfaces provided directly or through inheritance. <br /></td></tr>
<tr class="inherit_header pro_methods_classL4_1_1Kobject__t"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_methods_classL4_1_1Kobject__t')"><span class="dynarrow"><span class="arrowhead closed"></span></span>Protected Member Functions inherited from <a class="el" href="classL4_1_1Kobject__t.html">L4::Kobject_t&lt; Inhibitor, L4::Kobject, L4RE_PROTO_INHIBITOR &gt;</a></td></tr>
<tr class="memitem:a3d80fec7e057d575ec4b393437f05f8a inherit pro_methods_classL4_1_1Kobject__t" id="r_a3d80fec7e057d575ec4b393437f05f8a"><td class="memItemLeft" align="right" valign="top">
<a class="el" href="classL4_1_1Cap.html">L4::Cap</a>&lt; <a class="el" href="classL4_1_1Kobject__t.html#af7df35ba5bf68ef5993e605a6b62328a">Class</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>c</b> () const noexcept</td></tr>
<tr class="memdesc:a3d80fec7e057d575ec4b393437f05f8a inherit pro_methods_classL4_1_1Kobject__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the capability to ourselves. <br /></td></tr>
<tr class="inherit_header pro_methods_classL4_1_1Kobject"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_methods_classL4_1_1Kobject')"><span class="dynarrow"><span class="arrowhead closed"></span></span>Protected Member Functions inherited from <a class="el" href="classL4_1_1Kobject.html">L4::Kobject</a></td></tr>
<tr class="memitem:a4f2117ae76762f4084e6a1adb915863c inherit pro_methods_classL4_1_1Kobject" id="r_a4f2117ae76762f4084e6a1adb915863c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Kobject.html#a4f2117ae76762f4084e6a1adb915863c">cap</a> () const noexcept</td></tr>
<tr class="memdesc:a4f2117ae76762f4084e6a1adb915863c inherit pro_methods_classL4_1_1Kobject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return capability selector. <br /></td></tr>
<tr class="inherit_header pro_static_methods_classL4_1_1Kobject__t"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_static_methods_classL4_1_1Kobject__t')"><span class="dynarrow"><span class="arrowhead closed"></span></span>Static Protected Member Functions inherited from <a class="el" href="classL4_1_1Kobject__t.html">L4::Kobject_t&lt; Inhibitor, L4::Kobject, L4RE_PROTO_INHIBITOR &gt;</a></td></tr>
<tr class="memitem:a7433b8eed587278821dd496864f75363 inherit pro_static_methods_classL4_1_1Kobject__t" id="r_a7433b8eed587278821dd496864f75363"><td class="memItemLeft" align="right" valign="top">
static void&#160;</td><td class="memItemRight" valign="bottom"><b>__check_protocols__</b> () noexcept</td></tr>
<tr class="memdesc:a7433b8eed587278821dd496864f75363 inherit pro_static_methods_classL4_1_1Kobject__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper to check for protocol conflicts. <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Set of inhibitor locks, which inhibit specific actions when held. </p>
<p>This interface provides access to a set of inhibitor locks, each determined by an ID that is specific to the <a class="el" href="classL4Re_1_1Inhibitor.html" title="Set of inhibitor locks, which inhibit specific actions when held.">Inhibitor</a> object. Each individual lock shall prevent, a specific (implementation defined) action to be executed, as long as the lock is held.</p>
<p>For example there can be an inhibitor lock to prevent a transition to suspend-to-RAM state and a different one to prevent shutdown.</p>
<p>A client shall take an inhibitor lock if it needs to execute code before the action is taken. For example a lock-screen application shall grab an inhibitor lock for the suspend action to be able to lock the screen before the system goes to sleep.</p>
<p><a class="el" href="classL4Re_1_1Inhibitor.html" title="Set of inhibitor locks, which inhibit specific actions when held.">Inhibitor</a> locks are usually closely related to specific events. Usually a server automatically subscribes a client holding a lock to the corresponding event. The server shall send the event to inform the client that an action is pending. Upon reception of the event, the client is supposed to release the corresponding inhibitor lock. </p>
<p class="definition">Definition at line <a class="el" href="inhibitor_source.html#l00038">38</a> of file <a class="el" href="inhibitor_source.html">inhibitor</a>.</p>
</div><a name="doc-enum-members" id="doc-enum-members"></a><h2 id="header-doc-enum-members" class="groupheader">Member Enumeration Documentation</h2>
<a id="a854ddc23caaf4f72157f7878e4a17fff" name="a854ddc23caaf4f72157f7878e4a17fff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a854ddc23caaf4f72157f7878e4a17fff">&#9670;&#160;</a></span>anonymous enum</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">anonymous enum</td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a854ddc23caaf4f72157f7878e4a17fffad10674dcf6cde6eb7acb89dd77bb2bc3" name="a854ddc23caaf4f72157f7878e4a17fffad10674dcf6cde6eb7acb89dd77bb2bc3"></a>Name_max&#160;</td><td class="fielddoc"><p>The maximum length of a lock's name. </p>
</td></tr>
</table>
<p class="definition">Definition at line <a class="el" href="inhibitor_source.html#l00042">42</a> of file <a class="el" href="inhibitor_source.html">inhibitor</a>.</p>
</div>
</div>
<a name="doc-func-members" id="doc-func-members"></a><h2 id="header-doc-func-members" class="groupheader">Member Function Documentation</h2>
<a id="ab220aac3d51cc9c422c04e8b18409179" name="ab220aac3d51cc9c422c04e8b18409179"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab220aac3d51cc9c422c04e8b18409179">&#9670;&#160;</a></span>acquire()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">long L4Re::Inhibitor::acquire </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a></td> <td class="paramname"><span class="paramname"><em>id</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">L4::Ipc::String&lt;&gt;</td> <td class="paramname"><span class="paramname"><em>reason</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Acquire a specific inhibitor lock. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">id</td><td>ID of the inhibitor lock that the client intends to acquire </td></tr>
<tr><td class="paramname">reason</td><td>The reason why you need the lock. Used for informing the user or debugging.</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">0</td><td>Success </td></tr>
<tr><td class="paramname">-L4_ENODEV</td><td>The specified <span class="tt">id</span> does not exist. </td></tr>
</table>
</dd>
</dl>
<p class="reference">References <a class="el" href="#ab220aac3d51cc9c422c04e8b18409179">acquire()</a>.</p>
<p class="reference">Referenced by <a class="el" href="#ab220aac3d51cc9c422c04e8b18409179">acquire()</a>.</p>
<div id="dynsection-2" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the call graph for this function:</div>
<div id="dynsection-2-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-2-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4Re_1_1Inhibitor_ab220aac3d51cc9c422c04e8b18409179_cgraph.svg" width="183" height="60"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div id="dynsection-3" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the caller graph for this function:</div>
<div id="dynsection-3-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-3-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4Re_1_1Inhibitor_ab220aac3d51cc9c422c04e8b18409179_icgraph.svg" width="183" height="60"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
</div>
<a id="aa524589a81a491df8cad60939373d0da" name="aa524589a81a491df8cad60939373d0da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa524589a81a491df8cad60939373d0da">&#9670;&#160;</a></span>next_lock_info()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">long L4Re::Inhibitor::next_lock_info </td>
<td>(</td>
<td class="paramtype">char *</td> <td class="paramname"><span class="paramname"><em>name</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned</td> <td class="paramname"><span class="paramname"><em>len</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__l4__basic__types.html#ga51d9492e7700d70ed35838154ca9b279">l4_mword_t</a></td> <td class="paramname"><span class="paramname"><em>current_id</em></span><span class="paramdefsep"> = </span><span class="paramdefval">-1</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *</td> <td class="paramname"><span class="paramname"><em>utcb</em></span><span class="paramdefsep"> = </span><span class="paramdefval"><a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()</span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get information for the next available inhibitor lock. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">name</td><td>A pointer to a buffer for the name of the lock. </td></tr>
<tr><td class="paramname">len</td><td>The length of the available buffer (usually <a class="el" href="#a854ddc23caaf4f72157f7878e4a17fffad10674dcf6cde6eb7acb89dd77bb2bc3" title="The maximum length of a lock&#39;s name.">Name_max</a> is used). </td></tr>
<tr><td class="paramname">current_id</td><td>The ID of the last available lock, use -1 to get the first lock. </td></tr>
<tr><td class="paramname">utcb</td><td>The UTCB to use for the message.</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">&gt;0</td><td>The ID of the next available lock if there is one (in this case <span class="tt">name</span> shall contain the name of the inhibitor lock). </td></tr>
<tr><td class="paramname">-L4_ENODEV</td><td>There are no more locks. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="inhibitor_source.html#l00084">84</a> of file <a class="el" href="inhibitor_source.html">inhibitor</a>.</p>
<p class="reference">References <a class="el" href="____typeinfo_8h_source.html#l00769">L4::Kobject_t&lt; Inhibitor, L4::Kobject, L4RE_PROTO_INHIBITOR &gt;::c()</a>.</p>
<div id="dynsection-4" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the call graph for this function:</div>
<div id="dynsection-4-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-4-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4Re_1_1Inhibitor_aa524589a81a491df8cad60939373d0da_cgraph.svg" width="402" height="66"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
</div>
<a id="ac228e6e7ba816c85eec1826c65e149d6" name="ac228e6e7ba816c85eec1826c65e149d6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac228e6e7ba816c85eec1826c65e149d6">&#9670;&#160;</a></span>release()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">long L4Re::Inhibitor::release </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a></td> <td class="paramname"><span class="paramname"><em>id</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Release a specific inhibitor lock. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">id</td><td>The ID of the inhibitor lock to release.</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">0</td><td>Success </td></tr>
<tr><td class="paramname">-L4_ENODEV</td><td>Lock with the given <span class="tt">id</span> does not exist. </td></tr>
</table>
</dd>
</dl>
<p class="reference">References <a class="el" href="#ac228e6e7ba816c85eec1826c65e149d6">release()</a>.</p>
<p class="reference">Referenced by <a class="el" href="#ac228e6e7ba816c85eec1826c65e149d6">release()</a>.</p>
<div id="dynsection-5" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the call graph for this function:</div>
<div id="dynsection-5-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-5-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4Re_1_1Inhibitor_ac228e6e7ba816c85eec1826c65e149d6_cgraph.svg" width="183" height="60"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div id="dynsection-6" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the caller graph for this function:</div>
<div id="dynsection-6-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-6-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4Re_1_1Inhibitor_ac228e6e7ba816c85eec1826c65e149d6_icgraph.svg" width="183" height="60"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>l4/re/<a class="el" href="inhibitor_source.html">inhibitor</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- HTML footer for doxygen 1.9.1-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="namespaceL4Re.html">L4Re</a></li><li class="navelem"><a href="classL4Re_1_1Inhibitor.html">Inhibitor</a></li>
<li class="footer">Generated on <span class="timestamp"></span> for L4Re Operating System Framework by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0 </li>
</ul>
</div>
</body>
</html>