--- /dev/null
+<!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.9.1"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libcgroup: src/abstraction-common.h Source File</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="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" />
+</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="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">libcgroup
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.1 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- 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">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">abstraction-common.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">/*</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * This library is free software; you can redistribute it and/or modify it</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * under the terms of version 2.1 of the GNU Lesser General Public License as</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * published by the Free Software Foundation.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * This library is distributed in the hope that it will be useful, but WITHOUT</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * for more details.</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> *</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * You should have received a copy of the GNU Lesser General Public License</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * along with this library; if not, see <http://www.gnu.org/licenses>.</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> */</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#ifndef __ABSTRACTION_COMMON</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#define __ABSTRACTION_COMMON</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "config.h"</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <libcgroup.h></span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "libcgroup-internal.h"</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keywordtype">int</span> cgroup_strtol(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_str, <span class="keywordtype">int</span> base,</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordtype">long</span> <span class="keywordtype">int</span> * <span class="keyword">const</span> out_value);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keywordtype">int</span> cgroup_convert_int(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keywordtype">int</span> cgroup_convert_name_only(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  </div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keywordtype">int</span> cgroup_convert_passthrough(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  </div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keywordtype">int</span> cgroup_convert_unmappable(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment">/* cpu */</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keywordtype">int</span> cgroup_convert_cpu_nto1(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> out_cgc,</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> in_cgc);</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  </div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keywordtype">int</span> cgroup_convert_cpu_quota_to_max(</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  </div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keywordtype">int</span> cgroup_convert_cpu_period_to_max(</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  </div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keywordtype">int</span> cgroup_convert_cpu_max_to_quota(</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  </div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="keywordtype">int</span> cgroup_convert_cpu_max_to_period(</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  </div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="comment">/* cpuset */</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="keywordtype">int</span> cgroup_convert_cpuset_to_exclusive(</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  </div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="keywordtype">int</span> cgroup_convert_cpuset_to_partition(</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  </div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  </div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> } <span class="comment">/* extern "C" */</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  </div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="preprocessor">#endif </span><span class="comment">/* __ABSTRACTION_COMMON */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="astructcgroup__controller_html"><div class="ttname"><a href="structcgroup__controller.html">cgroup_controller</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:106</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+</small></address>
+</body>
+</html>
--- /dev/null
+<!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.9.1"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libcgroup: src/abstraction-map.h Source File</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="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" />
+</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="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">libcgroup
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.1 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- 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">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">abstraction-map.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">/*</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * This library is free software; you can redistribute it and/or modify it</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * under the terms of version 2.1 of the GNU Lesser General Public License as</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * published by the Free Software Foundation.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * This library is distributed in the hope that it will be useful, but WITHOUT</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * for more details.</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> *</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * You should have received a copy of the GNU Lesser General Public License</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * along with this library; if not, see <http://www.gnu.org/licenses>.</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> */</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#ifndef __ABSTRACTION_MAP</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#define __ABSTRACTION_MAP</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="structcgroup__abstraction__map.html"> 28</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__abstraction__map.html">cgroup_abstraction_map</a> {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="comment">/* if the conversion isn't a one-to-one mapping or the mathematical</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment"> * conversion is unique, create a custom conversion function.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment"> */</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  int (*cgroup_convert)(<span class="keyword">struct </span><a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keywordtype">char</span> *in_setting;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keywordtype">void</span> *in_dflt;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keywordtype">char</span> *out_setting;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordtype">void</span> *out_dflt;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> };</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structcgroup__abstraction__map.html">cgroup_abstraction_map</a> cgroup_v1_to_v2_map[];</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">int</span> cgroup_v1_to_v2_map_sz;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structcgroup__abstraction__map.html">cgroup_abstraction_map</a> cgroup_v2_to_v1_map[];</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">int</span> cgroup_v2_to_v1_map_sz;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  </div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> } <span class="comment">/* extern "C" */</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#endif </span><span class="comment">/* __ABSTRACTION_MAP */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="astructcgroup__abstraction__map_html"><div class="ttname"><a href="structcgroup__abstraction__map.html">cgroup_abstraction_map</a></div><div class="ttdef"><b>Definition:</b> abstraction-map.h:28</div></div>
+<div class="ttc" id="astructcgroup__controller_html"><div class="ttname"><a href="structcgroup__controller.html">cgroup_controller</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:106</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+</small></address>
+</body>
+</html>
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcg__mount__point.html" target="_self">cg_mount_point</a></td><td class="desc"></td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcg__mount__table__s.html" target="_self">cg_mount_table_s</a></td><td class="desc"></td></tr>
<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcgroup.html" target="_self">cgroup</a></td><td class="desc"></td></tr>
-<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcgroup__controller.html" target="_self">cgroup_controller</a></td><td class="desc"></td></tr>
-<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcgroup__dictionary.html" target="_self">cgroup_dictionary</a></td><td class="desc"></td></tr>
-<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcgroup__dictionary__item.html" target="_self">cgroup_dictionary_item</a></td><td class="desc"></td></tr>
-<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcgroup__dictionary__iterator.html" target="_self">cgroup_dictionary_iterator</a></td><td class="desc"></td></tr>
-<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcgroup__file__info.html" target="_self">cgroup_file_info</a></td><td class="desc"></td></tr>
-<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcgroup__group__spec.html" target="_self">cgroup_group_spec</a></td><td class="desc"></td></tr>
-<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcgroup__mount__point.html" target="_self">cgroup_mount_point</a></td><td class="desc"></td></tr>
-<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcgroup__rule.html" target="_self">cgroup_rule</a></td><td class="desc"></td></tr>
-<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcgroup__rule__list.html" target="_self">cgroup_rule_list</a></td><td class="desc"></td></tr>
-<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcgroup__rules__data.html" target="_self">cgroup_rules_data</a></td><td class="desc"></td></tr>
-<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcgroup__stat.html" target="_self">cgroup_stat</a></td><td class="desc"></td></tr>
-<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcgroup__string__list.html" target="_self">cgroup_string_list</a></td><td class="desc"></td></tr>
-<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcgroup__tree__handle.html" target="_self">cgroup_tree_handle</a></td><td class="desc"></td></tr>
-<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcontrol__value.html" target="_self">control_value</a></td><td class="desc"></td></tr>
-<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcontroller__data.html" target="_self">controller_data</a></td><td class="desc"></td></tr>
-<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structext__cgroup__record.html" target="_self">ext_cgroup_record</a></td><td class="desc"></td></tr>
-<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structparent__info.html" target="_self">parent_info</a></td><td class="desc"></td></tr>
-<tr id="row_23_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structunchanged__pid.html" target="_self">unchanged_pid</a></td><td class="desc"></td></tr>
+<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcgroup__abstraction__map.html" target="_self">cgroup_abstraction_map</a></td><td class="desc"></td></tr>
+<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcgroup__controller.html" target="_self">cgroup_controller</a></td><td class="desc"></td></tr>
+<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcgroup__dictionary.html" target="_self">cgroup_dictionary</a></td><td class="desc"></td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcgroup__dictionary__item.html" target="_self">cgroup_dictionary_item</a></td><td class="desc"></td></tr>
+<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcgroup__dictionary__iterator.html" target="_self">cgroup_dictionary_iterator</a></td><td class="desc"></td></tr>
+<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcgroup__file__info.html" target="_self">cgroup_file_info</a></td><td class="desc"></td></tr>
+<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcgroup__group__spec.html" target="_self">cgroup_group_spec</a></td><td class="desc"></td></tr>
+<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcgroup__mount__point.html" target="_self">cgroup_mount_point</a></td><td class="desc"></td></tr>
+<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcgroup__rule.html" target="_self">cgroup_rule</a></td><td class="desc"></td></tr>
+<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcgroup__rule__list.html" target="_self">cgroup_rule_list</a></td><td class="desc"></td></tr>
+<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcgroup__rules__data.html" target="_self">cgroup_rules_data</a></td><td class="desc"></td></tr>
+<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcgroup__stat.html" target="_self">cgroup_stat</a></td><td class="desc"></td></tr>
+<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcgroup__string__list.html" target="_self">cgroup_string_list</a></td><td class="desc"></td></tr>
+<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcgroup__tree__handle.html" target="_self">cgroup_tree_handle</a></td><td class="desc"></td></tr>
+<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcontrol__value.html" target="_self">control_value</a></td><td class="desc"></td></tr>
+<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcontroller__data.html" target="_self">controller_data</a></td><td class="desc"></td></tr>
+<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structext__cgroup__record.html" target="_self">ext_cgroup_record</a></td><td class="desc"></td></tr>
+<tr id="row_23_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structparent__info.html" target="_self">parent_info</a></td><td class="desc"></td></tr>
+<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structunchanged__pid.html" target="_self">unchanged_pid</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
<dd><a class="el" href="structblack__list__type.html">black_list_type</a></dd></dl>
<dl class="classindex even">
<dt class="alphachar"><a name="letter_C">C</a></dt>
-<dd><a class="el" href="structcg__mount__point.html">cg_mount_point</a></dd><dd><a class="el" href="structcg__mount__table__s.html">cg_mount_table_s</a></dd><dd><a class="el" href="structcgroup.html">cgroup</a></dd><dd><a class="el" href="structcgroup__controller.html">cgroup_controller</a></dd><dd><a class="el" href="structcgroup__dictionary.html">cgroup_dictionary</a></dd><dd><a class="el" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a></dd><dd><a class="el" href="structcgroup__dictionary__iterator.html">cgroup_dictionary_iterator</a></dd><dd><a class="el" href="structcgroup__file__info.html">cgroup_file_info</a></dd><dd><a class="el" href="structcgroup__group__spec.html">cgroup_group_spec</a></dd><dd><a class="el" href="structcgroup__mount__point.html">cgroup_mount_point</a></dd><dd><a class="el" href="structcgroup__rule.html">cgroup_rule</a></dd><dd><a class="el" href="structcgroup__rule__list.html">cgroup_rule_list</a></dd><dd><a class="el" href="structcgroup__rules__data.html">cgroup_rules_data</a></dd><dd><a class="el" href="structcgroup__stat.html">cgroup_stat</a></dd><dd><a class="el" href="structcgroup__string__list.html">cgroup_string_list</a></dd><dd><a class="el" href="structcgroup__tree__handle.html">cgroup_tree_handle</a></dd><dd><a class="el" href="structcontrol__value.html">control_value</a></dd><dd><a class="el" href="structcontroller__data.html">controller_data</a></dd></dl>
+<dd><a class="el" href="structcg__mount__point.html">cg_mount_point</a></dd><dd><a class="el" href="structcg__mount__table__s.html">cg_mount_table_s</a></dd><dd><a class="el" href="structcgroup.html">cgroup</a></dd><dd><a class="el" href="structcgroup__abstraction__map.html">cgroup_abstraction_map</a></dd><dd><a class="el" href="structcgroup__controller.html">cgroup_controller</a></dd><dd><a class="el" href="structcgroup__dictionary.html">cgroup_dictionary</a></dd><dd><a class="el" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a></dd><dd><a class="el" href="structcgroup__dictionary__iterator.html">cgroup_dictionary_iterator</a></dd><dd><a class="el" href="structcgroup__file__info.html">cgroup_file_info</a></dd><dd><a class="el" href="structcgroup__group__spec.html">cgroup_group_spec</a></dd><dd><a class="el" href="structcgroup__mount__point.html">cgroup_mount_point</a></dd><dd><a class="el" href="structcgroup__rule.html">cgroup_rule</a></dd><dd><a class="el" href="structcgroup__rule__list.html">cgroup_rule_list</a></dd><dd><a class="el" href="structcgroup__rules__data.html">cgroup_rules_data</a></dd><dd><a class="el" href="structcgroup__stat.html">cgroup_stat</a></dd><dd><a class="el" href="structcgroup__string__list.html">cgroup_string_list</a></dd><dd><a class="el" href="structcgroup__tree__handle.html">cgroup_tree_handle</a></dd><dd><a class="el" href="structcontrol__value.html">control_value</a></dd><dd><a class="el" href="structcontroller__data.html">controller_data</a></dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a name="letter_E">E</a></dt>
<dd><a class="el" href="structext__cgroup__record.html">ext_cgroup_record</a></dd></dl>
<div class="ttc" id="agroup__group__config_html_gacb09024dc469a1a1ff8cdebd8d0ab422"><div class="ttname"><a href="group__group__config.html#gacb09024dc469a1a1ff8cdebd8d0ab422">cgroup_templates_cache_set_source_files</a></div><div class="ttdeci">void cgroup_templates_cache_set_source_files(struct cgroup_string_list *tmpl_files)</div><div class="ttdef"><b>Definition:</b> config.c:1624</div></div>
<div class="ttc" id="agroup__group__config_html_gaff77affa0b80ccf507b4b46cc0a8c085"><div class="ttname"><a href="group__group__config.html#gaff77affa0b80ccf507b4b46cc0a8c085">cgroup_config_unload_config</a></div><div class="ttdeci">int cgroup_config_unload_config(const char *pathname, int flags)</div><div class="ttdef"><b>Definition:</b> config.c:1256</div></div>
<div class="ttc" id="astructcgroup__string__list_html"><div class="ttname"><a href="structcgroup__string__list.html">cgroup_string_list</a></div><div class="ttdef"><b>Definition:</b> tools-common.h:45</div></div>
-<div class="ttc" id="astructcgroup_html"><div class="ttname"><a href="structcgroup.html">cgroup</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:106</div></div>
+<div class="ttc" id="astructcgroup_html"><div class="ttname"><a href="structcgroup.html">cgroup</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:114</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>libcgroup: src/bindings/tests Directory Reference</title>
+<title>libcgroup: src/python Directory 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>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_ea91a2a72b7cbbf988d2bd2cd1d23e49.html">bindings</a></li><li class="navelem"><a class="el" href="dir_bab0433f19b0a5661c5e0a15547f54b2.html">tests</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_5c0d64f70903e893b1efe571a4b8de29.html">python</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">tests Directory Reference</div> </div>
+<div class="title">python Directory Reference</div> </div>
</div><!--header-->
<div class="contents">
</div><!-- contents -->
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
Directories</h2></td></tr>
-<tr class="memitem:dir_ea91a2a72b7cbbf988d2bd2cd1d23e49"><td class="memItemLeft" align="right" valign="top">directory  </td><td class="memItemRight" valign="bottom"><a class="el" href="dir_ea91a2a72b7cbbf988d2bd2cd1d23e49.html">bindings</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
+++ /dev/null
-<!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.9.1"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>libcgroup: src/bindings Directory 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="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" />
-</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="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">libcgroup
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-$(function() {
- initMenu('',true,false,'search.php','Search');
- $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_ea91a2a72b7cbbf988d2bd2cd1d23e49.html">bindings</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">bindings Directory Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
-Directories</h2></td></tr>
-</table>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
-</small></address>
-</body>
-</html>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  ECGROUPUNSUPP,</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  ECGCANTSETVALUE,</div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba94dbe90328ef8a212633ec464b9b9b11"> 76</a></span>  <a class="code" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba94dbe90328ef8a212633ec464b9b9b11">ECGNONEMPTY</a>,</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> };</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  </div>
-<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="group__group__errors.html#ga515eba7218b187ffe263b7d9ecb3ac1b"> 82</a></span> <span class="preprocessor">#define ECGRULESPARSEFAIL ECGROUPPARSEFAIL</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  </div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__group__errors.html#gaeae1d51db8528c89d84501c745020e6b">cgroup_strerror</a>(<span class="keywordtype">int</span> code);</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  </div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keywordtype">int</span> <a class="code" href="group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46">cgroup_get_last_errno</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  </div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> } <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  </div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="preprocessor">#endif </span><span class="comment">/* _LIBCGROUP_INIT_H */</span><span class="preprocessor"></span></div>
-<div class="ttc" id="agroup__group__errors_html_ga29057c4aec05bef2b6bf2855ae5d5d46"><div class="ttname"><a href="group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46">cgroup_get_last_errno</a></div><div class="ttdeci">int cgroup_get_last_errno(void)</div><div class="ttdef"><b>Definition:</b> api.c:4469</div></div>
-<div class="ttc" id="agroup__group__errors_html_gaeae1d51db8528c89d84501c745020e6b"><div class="ttname"><a href="group__group__errors.html#gaeae1d51db8528c89d84501c745020e6b">cgroup_strerror</a></div><div class="ttdeci">const char * cgroup_strerror(int code)</div><div class="ttdef"><b>Definition:</b> api.c:4458</div></div>
+<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba33cc635e4cc4055b2c487f027fbdd960"> 78</a></span>  <a class="code" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba33cc635e4cc4055b2c487f027fbdd960">ECGNOVERSIONCONVERT</a>,</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> };</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  </div>
+<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="group__group__errors.html#ga515eba7218b187ffe263b7d9ecb3ac1b"> 84</a></span> <span class="preprocessor">#define ECGRULESPARSEFAIL ECGROUPPARSEFAIL</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  </div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__group__errors.html#gaeae1d51db8528c89d84501c745020e6b">cgroup_strerror</a>(<span class="keywordtype">int</span> code);</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  </div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keywordtype">int</span> <a class="code" href="group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46">cgroup_get_last_errno</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  </div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> } <span class="comment">/* extern "C" */</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  </div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="preprocessor">#endif </span><span class="comment">/* _LIBCGROUP_INIT_H */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="agroup__group__errors_html_ga29057c4aec05bef2b6bf2855ae5d5d46"><div class="ttname"><a href="group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46">cgroup_get_last_errno</a></div><div class="ttdeci">int cgroup_get_last_errno(void)</div><div class="ttdef"><b>Definition:</b> api.c:4484</div></div>
+<div class="ttc" id="agroup__group__errors_html_gaeae1d51db8528c89d84501c745020e6b"><div class="ttname"><a href="group__group__errors.html#gaeae1d51db8528c89d84501c745020e6b">cgroup_strerror</a></div><div class="ttdeci">const char * cgroup_strerror(int code)</div><div class="ttdef"><b>Definition:</b> api.c:4473</div></div>
<div class="ttc" id="agroup__group__errors_html_gga06fc87d81c62e9abb8790b6e5713c55ba24a6584dd4238475a4e247bdf6956def"><div class="ttname"><a href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba24a6584dd4238475a4e247bdf6956def">ECGROUPMULTIMOUNTED</a></div><div class="ttdeci">@ ECGROUPMULTIMOUNTED</div><div class="ttdef"><b>Definition:</b> error.h:39</div></div>
<div class="ttc" id="agroup__group__errors_html_gga06fc87d81c62e9abb8790b6e5713c55ba2724c2f0af0d3e3cea66027f6bf2e436"><div class="ttname"><a href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba2724c2f0af0d3e3cea66027f6bf2e436">ECGEOF</a></div><div class="ttdeci">@ ECGEOF</div><div class="ttdef"><b>Definition:</b> error.h:67</div></div>
+<div class="ttc" id="agroup__group__errors_html_gga06fc87d81c62e9abb8790b6e5713c55ba33cc635e4cc4055b2c487f027fbdd960"><div class="ttname"><a href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba33cc635e4cc4055b2c487f027fbdd960">ECGNOVERSIONCONVERT</a></div><div class="ttdeci">@ ECGNOVERSIONCONVERT</div><div class="ttdef"><b>Definition:</b> error.h:78</div></div>
<div class="ttc" id="agroup__group__errors_html_gga06fc87d81c62e9abb8790b6e5713c55ba7c23c1a7cbfb7e8e9c66dd96b5c66d21"><div class="ttname"><a href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba7c23c1a7cbfb7e8e9c66dd96b5c66d21">ECGROUPNORULES</a></div><div class="ttdeci">@ ECGROUPNORULES</div><div class="ttdef"><b>Definition:</b> error.h:61</div></div>
<div class="ttc" id="agroup__group__errors_html_gga06fc87d81c62e9abb8790b6e5713c55ba88111f9ca2e967cbf7565724444c0193"><div class="ttname"><a href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba88111f9ca2e967cbf7565724444c0193">ECGOTHER</a></div><div class="ttdeci">@ ECGOTHER</div><div class="ttdef"><b>Definition:</b> error.h:55</div></div>
<div class="ttc" id="agroup__group__errors_html_gga06fc87d81c62e9abb8790b6e5713c55ba94dbe90328ef8a212633ec464b9b9b11"><div class="ttname"><a href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba94dbe90328ef8a212633ec464b9b9b11">ECGNONEMPTY</a></div><div class="ttdeci">@ ECGNONEMPTY</div><div class="ttdef"><b>Definition:</b> error.h:76</div></div>
<tr id="row_0_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="config_8h_source.html"><span class="icondoc"></span></a><b>config.h</b></td><td class="desc"></td></tr>
<tr id="row_0_0_1_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="error_8h_source.html"><span class="icondoc"></span></a><b>error.h</b></td><td class="desc"></td></tr>
<tr id="row_0_0_2_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="groups_8h_source.html"><span class="icondoc"></span></a><b>groups.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_3_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="init_8h_source.html"><span class="icondoc"></span></a><b>init.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_4_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="iterators_8h_source.html"><span class="icondoc"></span></a><b>iterators.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_5_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="log_8h_source.html"><span class="icondoc"></span></a><b>log.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_6_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="tasks_8h_source.html"><span class="icondoc"></span></a><b>tasks.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_3_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="iterators_8h_source.html"><span class="icondoc"></span></a><b>iterators.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_4_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="log_8h_source.html"><span class="icondoc"></span></a><b>log.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_5_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="tasks_8h_source.html"><span class="icondoc"></span></a><b>tasks.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_6_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="tools_8h_source.html"><span class="icondoc"></span></a><b>tools.h</b></td><td class="desc"></td></tr>
<tr id="row_0_1_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a href="libcgroup_8h_source.html"><span class="icondoc"></span></a><b>libcgroup.h</b></td><td class="desc"></td></tr>
<tr id="row_1_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">▼</span><span id="img_1_" class="iconfopen" onclick="toggleFolder('1_')"> </span><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html" target="_self">src</a></td><td class="desc"></td></tr>
<tr id="row_1_0_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_1_0_" class="arrow" onclick="toggleFolder('1_0_')">▼</span><span id="img_1_0_" class="iconfopen" onclick="toggleFolder('1_0_')"> </span><a class="el" href="dir_2d094300ae4f2c55dd459b9ec7dd0ad3.html" target="_self">daemon</a></td><td class="desc"></td></tr>
<tr id="row_1_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="cgrulesengd_8h_source.html"><span class="icondoc"></span></a><b>cgrulesengd.h</b></td><td class="desc"></td></tr>
<tr id="row_1_1_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_1_1_" class="arrow" onclick="toggleFolder('1_1_')">▼</span><span id="img_1_1_" class="iconfopen" onclick="toggleFolder('1_1_')"> </span><a class="el" href="dir_1563a38af0d3a5e4a6330d6d45e9792a.html" target="_self">tools</a></td><td class="desc"></td></tr>
<tr id="row_1_1_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="tools-common_8h_source.html"><span class="icondoc"></span></a><b>tools-common.h</b></td><td class="desc"></td></tr>
-<tr id="row_1_2_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a href="libcgroup-internal_8h_source.html"><span class="icondoc"></span></a><b>libcgroup-internal.h</b></td><td class="desc"></td></tr>
+<tr id="row_1_2_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a href="abstraction-common_8h_source.html"><span class="icondoc"></span></a><b>abstraction-common.h</b></td><td class="desc"></td></tr>
+<tr id="row_1_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a href="abstraction-map_8h_source.html"><span class="icondoc"></span></a><b>abstraction-map.h</b></td><td class="desc"></td></tr>
+<tr id="row_1_4_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a href="libcgroup-internal_8h_source.html"><span class="icondoc"></span></a><b>libcgroup-internal.h</b></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
, <br />
  <b>ECGCANTSETVALUE</b>
, <a class="el" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba94dbe90328ef8a212633ec464b9b9b11">ECGNONEMPTY</a>
+, <a class="el" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba33cc635e4cc4055b2c487f027fbdd960">ECGNOVERSIONCONVERT</a>
<br />
}</td></tr>
<tr class="separator:ga06fc87d81c62e9abb8790b6e5713c55b"><td class="memSeparator" colspan="2"> </td></tr>
</td></tr>
<tr><td class="fieldname"><a id="gga06fc87d81c62e9abb8790b6e5713c55ba94dbe90328ef8a212633ec464b9b9b11"></a>ECGNONEMPTY </td><td class="fielddoc"><p>Removing of a group failed because it was not empty. </p>
</td></tr>
+<tr><td class="fieldname"><a id="gga06fc87d81c62e9abb8790b6e5713c55ba33cc635e4cc4055b2c487f027fbdd960"></a>ECGNOVERSIONCONVERT </td><td class="fielddoc"><p>Failed to convert from cgroup v1 to/from cgroup v2 </p>
+</td></tr>
</table>
</div>
<div class="line"><a class="code" href="group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130">cgroup_add_controller</a>(foo, <span class="stringliteral">"cpu"</span>);</div>
<div class="ttc" id="agroup__group__groups_html_ga6cd4733e5982ac2c92ee3cb3dbd10a31"><div class="ttname"><a href="group__group__groups.html#ga6cd4733e5982ac2c92ee3cb3dbd10a31">cgroup_new_cgroup</a></div><div class="ttdeci">struct cgroup * cgroup_new_cgroup(const char *name)</div><div class="ttdef"><b>Definition:</b> wrapper.c:44</div></div>
<div class="ttc" id="agroup__group__groups_html_gaa2f9c2ac75fd7e56e5ec6fb970304130"><div class="ttname"><a href="group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130">cgroup_add_controller</a></div><div class="ttdeci">struct cgroup_controller * cgroup_add_controller(struct cgroup *cgroup, const char *name)</div><div class="ttdef"><b>Definition:</b> wrapper.c:56</div></div>
-<div class="ttc" id="astructcgroup_html"><div class="ttname"><a href="structcgroup.html">cgroup</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:106</div></div>
+<div class="ttc" id="astructcgroup_html"><div class="ttname"><a href="structcgroup.html">cgroup</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:114</div></div>
</div><!-- fragment --> Now, you can call e.g. <a class="el" href="group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565">cgroup_delete_cgroup()</a> and the group is deleted from the hierarchy. You can note that it's enough to add only one controller to the group to fully identify a group in <code>cpu,cpuacct</code> hierarchy.</dd></dl>
<dl class="section user"><dt></dt><dd>Following code creates <code>struct cgroup*</code> structure, which represents <b>two</b> groups, <code>cpu,cpuacct:/foo</code> and <code>freezer:/foo</code>: <div class="fragment"><div class="line"><span class="keyword">struct </span><a class="code" href="structcgroup.html">cgroup</a> *foo = <a class="code" href="group__group__groups.html#ga6cd4733e5982ac2c92ee3cb3dbd10a31">cgroup_new_cgroup</a>(<span class="stringliteral">"foo"</span>);</div>
<div class="line"><a class="code" href="group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130">cgroup_add_controller</a>(foo, <span class="stringliteral">"cpu"</span>);</div>
<tr class="separator:gaef0bf6cd480f2dcb5e964de151a27dd1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gac9b5ff481de08ba8fdfcbd42940d2cbf"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__groups.html#gac9b5ff481de08ba8fdfcbd42940d2cbf">cgroup_get_cgroup_name</a> (struct <a class="el" href="structcgroup.html">cgroup</a> *<a class="el" href="structcgroup.html">cgroup</a>)</td></tr>
<tr class="separator:gac9b5ff481de08ba8fdfcbd42940d2cbf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1a54be8341476951bd5bce94f521db6e"><td class="memItemLeft" align="right" valign="top"><a id="ga1a54be8341476951bd5bce94f521db6e"></a>
+int </td><td class="memItemRight" valign="bottom"><b>cgroup_convert_cgroup</b> (struct <a class="el" href="structcgroup.html">cgroup</a> *const out_cgroup, enum cg_version_t out_version, const struct <a class="el" href="structcgroup.html">cgroup</a> *const in_cgroup, enum cg_version_t in_version)</td></tr>
+<tr class="separator:ga1a54be8341476951bd5bce94f521db6e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga452d8c5e95c8d694e26e7efda045360f"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__groups.html#ga452d8c5e95c8d694e26e7efda045360f">cgroup_get_controller_version</a> (const char *const controller, enum cg_version_t *const version)</td></tr>
+<tr class="separator:ga452d8c5e95c8d694e26e7efda045360f"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Macro Definition Documentation</h2>
</div><div class="memdoc">
<p>Physically create new control group in kernel, with all parameters and values copied from its parent group. The group is created in all hierarchies, where the parent group exists. I.e. following code creates subgroup in all hierarchies, because all of them have root (=parent) group. </p><div class="fragment"><div class="line"><span class="keyword">struct </span><a class="code" href="structcgroup.html">cgroup</a> *foo = <a class="code" href="group__group__groups.html#ga6cd4733e5982ac2c92ee3cb3dbd10a31">cgroup_new_cgroup</a>(<span class="stringliteral">"foo"</span>);</div>
<div class="line"><a class="code" href="group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62">cgroup_create_cgroup_from_parent</a>(foo, 0);</div>
-<div class="ttc" id="agroup__group__groups_html_ga90e1ce96f3cb540f7e82d076dd938f62"><div class="ttname"><a href="group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62">cgroup_create_cgroup_from_parent</a></div><div class="ttdeci">int cgroup_create_cgroup_from_parent(struct cgroup *cgroup, int ignore_ownership)</div><div class="ttdef"><b>Definition:</b> api.c:2654</div></div>
+<div class="ttc" id="agroup__group__groups_html_ga90e1ce96f3cb540f7e82d076dd938f62"><div class="ttname"><a href="group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62">cgroup_create_cgroup_from_parent</a></div><div class="ttdeci">int cgroup_create_cgroup_from_parent(struct cgroup *cgroup, int ignore_ownership)</div><div class="ttdef"><b>Definition:</b> api.c:2669</div></div>
</div><!-- fragment --> <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000006">Todo:</a></b></dt><dd>what is this good for? Why the list of controllers added by <a class="el" href="group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130">cgroup_add_controller()</a> is not used, like in <a class="el" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup()</a>? I can't crate subgroup of root group in just one hierarchy with this function!</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
</div><div class="memdoc">
<p>Read all information regarding the group from kernel. Based on name of the group, list of controllers and all parameters and their values are read from all hierarchies, where a group with given name exists. All existing controllers are replaced. I.e. following code will fill <code>root</code> with controllers from all hierarchies, because the root group is available in all of them. </p><div class="fragment"><div class="line"><span class="keyword">struct </span><a class="code" href="structcgroup.html">cgroup</a> *root = <a class="code" href="group__group__groups.html#ga6cd4733e5982ac2c92ee3cb3dbd10a31">cgroup_new_cgroup</a>(<span class="stringliteral">"/"</span>);</div>
<div class="line"><a class="code" href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup</a>(root);</div>
-<div class="ttc" id="agroup__group__groups_html_gad4ba31fe5a8bba63b33b1ea339b849e6"><div class="ttname"><a href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup</a></div><div class="ttdeci">int cgroup_get_cgroup(struct cgroup *cgroup)</div><div class="ttdef"><b>Definition:</b> api.c:3207</div></div>
+<div class="ttc" id="agroup__group__groups_html_gad4ba31fe5a8bba63b33b1ea339b849e6"><div class="ttname"><a href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup</a></div><div class="ttdeci">int cgroup_get_cgroup(struct cgroup *cgroup)</div><div class="ttdef"><b>Definition:</b> api.c:3222</div></div>
</div><!-- fragment --><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000009">Todo:</a></b></dt><dd>what is this function good for? Why is not considered only the list of controllers attached by <a class="el" href="group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130">cgroup_add_controller()</a>? What owners will return <a class="el" href="group__group__groups.html#ga007d21c304d9cc6e948dc0ae51ecfa86">cgroup_get_uid_gid()</a> if the group is in multiple hierarchies, each with different owner of tasks file?</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
</dd>
</dl>
+</div>
+</div>
+<a id="ga452d8c5e95c8d694e26e7efda045360f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga452d8c5e95c8d694e26e7efda045360f">◆ </a></span>cgroup_get_controller_version()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int cgroup_get_controller_version </td>
+ <td>(</td>
+ <td class="paramtype">const char *const </td>
+ <td class="paramname"><em>controller</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">enum cg_version_t *const </td>
+ <td class="paramname"><em>version</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Get the cgroup version of a controller. Version is set to CGROUP_UNK if the version cannot be determined.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">controller</td><td>The controller of interest </td></tr>
+ <tr><td class="paramname">version</td><td>The version of the controller </td></tr>
+ </table>
+ </dd>
+</dl>
+
</div>
</div>
<a id="ga08a4fe913d59f61a39e61b8b02537dc2"></a>
+++ /dev/null
-<!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.9.1"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>libcgroup: 1. Initialization</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="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" />
-</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="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">libcgroup
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-$(function() {
- initMenu('',true,false,'search.php','Search');
- $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-</div><!-- top -->
-<!-- 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">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">1. Initialization</div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader">Initialization</h2></td></tr>
-<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp61bcd96a2c1f8026527cbf2019d6e9a4"></a>Application must initialize <code>libcgroup</code> using <a class="el" href="group__group__init.html#ga37740e2f5f298edf13e18fcd7632b75a">cgroup_init()</a> before any other <code>libcgroup</code> function can be called. <code>libcgroup</code> caches information about mounted hierarchies (just what's mounted where, not the control groups themselves) at this time. There is currently no way to refresh this cache, i.e. all subsequent mounts/remounts/unmounts are not reflected in this cache and <code>libcgroup</code> may produce unexpected results.</p>
-<p>In addition, there is no way how to clean the cache on application exit.</p>
-<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000011">Todo:</a></b></dt><dd>this is very bad... There should be at least way how to refresh the cache and/or an option to refresh it automatically (does kernel provide any indication, when a filesystem is mounted/unmounted?). Dtto the cleanup on exit. </dd></dl>
-</td></tr>
-<tr class="memitem:ga37740e2f5f298edf13e18fcd7632b75a"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__init.html#ga37740e2f5f298edf13e18fcd7632b75a">cgroup_init</a> (void)</td></tr>
-<tr class="separator:ga37740e2f5f298edf13e18fcd7632b75a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4f061b353321b81869057970d96f09f7"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__init.html#ga4f061b353321b81869057970d96f09f7">cgroup_get_subsys_mount_point</a> (const char *controller, char **mount_point)</td></tr>
-<tr class="separator:ga4f061b353321b81869057970d96f09f7"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<h2 class="groupheader">Function Documentation</h2>
-<a id="ga4f061b353321b81869057970d96f09f7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga4f061b353321b81869057970d96f09f7">◆ </a></span>cgroup_get_subsys_mount_point()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int cgroup_get_subsys_mount_point </td>
- <td>(</td>
- <td class="paramtype">const char * </td>
- <td class="paramname"><em>controller</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">char ** </td>
- <td class="paramname"><em>mount_point</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Returns path where is mounted given controller. Applications should rely on <code>libcgroup</code> API and not call this function directly. Only the first mount point is returned, use <a class="el" href="group__group__iterators.html#ga18a3c6fe7da42b9da96ce34dce1e31b8">cgroup_get_subsys_mount_point_begin()</a>, <a class="el" href="group__group__iterators.html#ga3d66997158cb8a334317923ad94cc789">cgroup_get_subsys_mount_point_next()</a> and <a class="el" href="group__group__iterators.html#ga9c9b0f1921c205bd25bfc6c1d20486eb">cgroup_get_subsys_mount_point_end()</a> to get all of them. </p><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">controller</td><td>Name of the controller </td></tr>
- <tr><td class="paramname">mount_point</td><td>The string where the mount point location is stored. Please note, the caller must free the mount_point. </td></tr>
- </table>
- </dd>
-</dl>
-
-</div>
-</div>
-<a id="ga37740e2f5f298edf13e18fcd7632b75a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga37740e2f5f298edf13e18fcd7632b75a">◆ </a></span>cgroup_init()</h2>
-
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int cgroup_init </td>
- <td>(</td>
- <td class="paramtype">void </td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Initialize libcgroup. Information about mounted hierarchies are examined and cached internally (just what's mounted where, not the groups themselves).</p>
-<p>If the cgroup logging was not set using <a class="el" href="group__group__log.html#ga76d7032206f9b9d1c0be1a71a68c43d0">cgroup_set_logger()</a> or <a class="el" href="group__group__log.html#gab1457ce518dcde0b9f3c14ec9efa2de7">cgroup_set_default_logger()</a> before calling <a class="el" href="group__group__init.html#ga37740e2f5f298edf13e18fcd7632b75a">cgroup_init()</a>, the default logger is automatically set, logging CGROUP_LOG_ERROR messages.</p>
-<p><a class="el" href="group__group__init.html#ga37740e2f5f298edf13e18fcd7632b75a">cgroup_init()</a>, initializes the MOUNT_POINT.</p>
-<p>This code is theoretically thread safe now. Its not really tested so it can blow up. If does for you, please let us know with your test case and we can really make it thread safe. </p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
-</small></address>
-</body>
-</html>
<tr class="separator:ga09a70990837a58e506a264f8c50d4cde"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga645ec7a6206dffb32667e7a0e148edc8"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__iterators.html#ga645ec7a6206dffb32667e7a0e148edc8">cgroup_walk_tree_set_flags</a> (void **handle, int flags)</td></tr>
<tr class="separator:ga645ec7a6206dffb32667e7a0e148edc8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga73edb115af6779644d3371b12cf09140"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__iterators.html#ga73edb115af6779644d3371b12cf09140">cgroup_read_value_begin</a> (const char *controller, const char *path, char *name, void **handle, char *buffer, int max)</td></tr>
-<tr class="separator:ga73edb115af6779644d3371b12cf09140"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9378ee0f1f6e65900df8e25b3d7ce236"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__iterators.html#ga9378ee0f1f6e65900df8e25b3d7ce236">cgroup_read_value_begin</a> (const char *const controller, const char *path, const char *const name, void **handle, char *buffer, int max)</td></tr>
+<tr class="separator:ga9378ee0f1f6e65900df8e25b3d7ce236"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaced2fe331f19d599a3270db2440847cc"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__iterators.html#gaced2fe331f19d599a3270db2440847cc">cgroup_read_value_next</a> (void **handle, char *buffer, int max)</td></tr>
<tr class="separator:gaced2fe331f19d599a3270db2440847cc"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad348f041e283860cbf6bcea567e23a21"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__iterators.html#gad348f041e283860cbf6bcea567e23a21">cgroup_read_value_end</a> (void **handle)</td></tr>
<li><p class="startli"><code>void <em>iterator_name</em>_end(void **handle)</code></p><ul>
<li>Free any data associated with the iterator. This function must be called even when <code><em>iterator_name</em>_begin()</code> fails.</li>
</ul>
-<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000012">Todo:</a></b></dt><dd>not all iterators follow this pattern, e.g. <a class="el" href="group__group__iterators.html#ga7b19f10c06abb96d8c8ae88a04888a68">cgroup_walk_tree_begin()</a> can result both in a state that <a class="el" href="group__group__iterators.html#ga09a70990837a58e506a264f8c50d4cde">cgroup_walk_tree_end()</a> is not needed and will sigsegv and in a state that <a class="el" href="group__group__iterators.html#ga09a70990837a58e506a264f8c50d4cde">cgroup_walk_tree_end()</a> is needed to free allocated memory. Complete review is needed! </dd></dl>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000011">Todo:</a></b></dt><dd>not all iterators follow this pattern, e.g. <a class="el" href="group__group__iterators.html#ga7b19f10c06abb96d8c8ae88a04888a68">cgroup_walk_tree_begin()</a> can result both in a state that <a class="el" href="group__group__iterators.html#ga09a70990837a58e506a264f8c50d4cde">cgroup_walk_tree_end()</a> is not needed and will sigsegv and in a state that <a class="el" href="group__group__iterators.html#ga09a70990837a58e506a264f8c50d4cde">cgroup_walk_tree_end()</a> is needed to free allocated memory. Complete review is needed! </dd></dl>
<dl class="section user"><dt>Example of iterator usage:</dt><dd><div class="fragment"><div class="line"><span class="keywordtype">void</span> *handle; <span class="comment">// our iterator handle</span></div>
<div class="line">my_type item; <span class="comment">// the data returned by the iterator</span></div>
<div class="line"><span class="keywordtype">int</span> ret;</div>
</td></tr>
<tr><td class="fieldname"><a id="gga608b4aa32e2db58fed34771a6a272444a5418798fc4bf9634429c6af167a0e7c3"></a>CGROUP_FILE_TYPE_DIR </td><td class="fielddoc"><p>Directory. </p>
</td></tr>
-<tr><td class="fieldname"><a id="gga608b4aa32e2db58fed34771a6a272444a24e202c59f318e63ad8cafcc1b4b102b"></a>CGROUP_FILE_TYPE_OTHER </td><td class="fielddoc"><p>Directory. </p><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000014">Todo:</a></b></dt><dd>really? </dd></dl>
+<tr><td class="fieldname"><a id="gga608b4aa32e2db58fed34771a6a272444a24e202c59f318e63ad8cafcc1b4b102b"></a>CGROUP_FILE_TYPE_OTHER </td><td class="fielddoc"><p>Directory. </p><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000013">Todo:</a></b></dt><dd>really? </dd></dl>
</td></tr>
</table>
</tr>
</table>
</div><div class="memdoc">
-<p>Read the first mount point of the hierarchy with given controller. The first is the same as the mount point returned by <a class="el" href="group__group__init.html#ga4f061b353321b81869057970d96f09f7">cgroup_get_subsys_mount_point()</a>. </p><dl class="params"><dt>Parameters</dt><dd>
+<p>Read the first mount point of the hierarchy with given controller. The first is the same as the mount point returned by cgroup_get_subsys_mount_point(). </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>Handle to be used for iteration. </td></tr>
<tr><td class="paramname">controller</td><td>Controller name. </td></tr>
</div>
</div>
-<a id="ga73edb115af6779644d3371b12cf09140"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga73edb115af6779644d3371b12cf09140">◆ </a></span>cgroup_read_value_begin()</h2>
+<a id="ga9378ee0f1f6e65900df8e25b3d7ce236"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9378ee0f1f6e65900df8e25b3d7ce236">◆ </a></span>cgroup_read_value_begin()</h2>
<div class="memitem">
<div class="memproto">
<tr>
<td class="memname">int cgroup_read_value_begin </td>
<td>(</td>
- <td class="paramtype">const char * </td>
+ <td class="paramtype">const char *const </td>
<td class="paramname"><em>controller</em>, </td>
</tr>
<tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">char * </td>
+ <td class="paramtype">const char *const </td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
</table>
</dd>
</dl>
-<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000013">Todo:</a></b></dt><dd>why base_level is not hidden in **handle? </dd></dl>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000012">Todo:</a></b></dt><dd>why base_level is not hidden in **handle? </dd></dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba2724c2f0af0d3e3cea66027f6bf2e436">ECGEOF</a> when there is no node. </dd></dl>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader">Logging</h2></td></tr>
<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp8db7df66ab1d7ab5f1dc947acdb5fae4"></a>Libcgroup allows applications to register a callback function which libcgroup will call when it wants to log something. Each log message has associated a log level. As described in previous chapter, most libcgroup functions return an error code, which described root cause of the failure and log messages might provide further details about these failures and other notable events.</p>
-<dl class="section user"><dt></dt><dd>The logging callback can be set at any time, but setting the callback before any other libcgroup function (including <a class="el" href="group__group__init.html#ga37740e2f5f298edf13e18fcd7632b75a">cgroup_init()</a>) is highly recommended. If no logger is set before <a class="el" href="group__group__init.html#ga37740e2f5f298edf13e18fcd7632b75a">cgroup_init()</a> is called, default logger is automatically set, logging CGROUP_LOG_ERROR messages to stdout.</dd></dl>
+<dl class="section user"><dt></dt><dd>The logging callback can be set at any time, but setting the callback before any other libcgroup function (including cgroup_init()) is highly recommended. If no logger is set before cgroup_init() is called, default logger is automatically set, logging CGROUP_LOG_ERROR messages to stdout.</dd></dl>
<dl class="section user"><dt>Setting log level</dt><dd>Some of the functions below set the log level as integer. Application can set directly a value of enum <a class="el" href="group__group__log.html#ga98b7aea5d23411e70c7e3da54d90233a">cgroup_log_level</a> or use value <code>-1</code> to set the log level automatically. In this case, libcgroup inspects environment variable <code>CGROUP_LOGLEVEL</code> if it is set and contains any of these values: <code>ERROR</code>, <code>WARNING</code>, <code>INFO</code>, <code>DEBUG</code> or integer number representing value from enum <a class="el" href="group__group__log.html#ga98b7aea5d23411e70c7e3da54d90233a">cgroup_log_level</a>. If <code>CGROUP_LOGLEVEL</code> is not set or its value is not valid, <code>CGROUP_LOG_ERROR</code> is set as default log level.</dd></dl>
<dl class="section user"><dt>Example:</dt><dd>Following short example shows custom libcgroup logger sending all log messages to <code>stderr</code>: <div class="fragment"><div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> my_logger(<span class="keywordtype">void</span> *userdata, <span class="keywordtype">int</span> level, <span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, va_list ap)</div>
<div class="line">{</div>
<div class="line"> <span class="keywordtype">int</span> ret;</div>
<div class="line"> </div>
<div class="line"> <a class="code" href="group__group__log.html#ga76d7032206f9b9d1c0be1a71a68c43d0">cgroup_set_logger</a>(my_logger, -1, NULL);</div>
-<div class="line"> ret = <a class="code" href="group__group__init.html#ga37740e2f5f298edf13e18fcd7632b75a">cgroup_init</a>();</div>
+<div class="line"> ret = cgroup_init();</div>
<div class="line"> <span class="keywordflow">if</span> (ret) {</div>
<div class="line"> ...</div>
<div class="line"> }</div>
<div class="line"> ...</div>
-<div class="ttc" id="agroup__group__init_html_ga37740e2f5f298edf13e18fcd7632b75a"><div class="ttname"><a href="group__group__init.html#ga37740e2f5f298edf13e18fcd7632b75a">cgroup_init</a></div><div class="ttdeci">int cgroup_init(void)</div><div class="ttdef"><b>Definition:</b> api.c:1271</div></div>
<div class="ttc" id="agroup__group__log_html_ga76d7032206f9b9d1c0be1a71a68c43d0"><div class="ttname"><a href="group__group__log.html#ga76d7032206f9b9d1c0be1a71a68c43d0">cgroup_set_logger</a></div><div class="ttdeci">void cgroup_set_logger(cgroup_logger_callback logger, int loglevel, void *userdata)</div><div class="ttdef"><b>Definition:</b> log.c:48</div></div>
</div><!-- fragment --> </dd></dl>
</td></tr>
</table>
</dd>
</dl>
-<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000017">Todo:</a></b></dt><dd>Determine thread-safeness and fix of not safe. </dd></dl>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000016">Todo:</a></b></dt><dd>Determine thread-safeness and fix of not safe. </dd></dl>
</div>
</div>
</table>
</dd>
</dl>
-<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000015">Todo:</a></b></dt><dd>should this function be really public? </dd></dl>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000014">Todo:</a></b></dt><dd>should this function be really public? </dd></dl>
<p>Changes the cgroup of a program based on the path provided. In this case, the user must already know into which cgroup the task should be placed and no rules will be parsed.</p>
<p>returns 0 on success. </p>
</table>
</dd>
</dl>
-<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000018">Todo:</a></b></dt><dd>Determine thread-safeness and fix if not safe. </dd></dl>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000017">Todo:</a></b></dt><dd>Determine thread-safeness and fix if not safe. </dd></dl>
</div>
</div>
</tr>
</table>
</div><div class="memdoc">
-<p>Initializes the rules cache and load it from /etc/cgrules.conf. </p><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000016">Todo:</a></b></dt><dd>add parameter with the filename? </dd></dl>
+<p>Initializes the rules cache and load it from /etc/cgrules.conf. </p><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000015">Todo:</a></b></dt><dd>add parameter with the filename? </dd></dl>
<p>Initializes the rules cache. </p><dl class="section return"><dt>Returns</dt><dd>0 on success, > 0 on error </dd></dl>
</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">enum</span> cgroup_delete_flag {</div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  CGFLAG_DELETE_IGNORE_MIGRATION = 1,</div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  CGFLAG_DELETE_RECURSIVE = 2,</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  CGFLAG_DELETE_EMPTY_ONLY = 4,</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> };</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">struct </span><a class="code" href="structcgroup.html">cgroup</a>;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  </div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="keyword">struct </span><a class="code" href="structcgroup__controller.html">cgroup_controller</a>;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  </div>
-<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="group__group__groups.html#gad4ffad2eccf9fcbfa8a551e269e0ad58"> 124</a></span> <span class="preprocessor">#define NO_PERMS (-1U)</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  </div>
-<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="group__group__groups.html#ga2a7954a987e3fbf8eabcc94cf381353e"> 129</a></span> <span class="preprocessor">#define NO_UID_GID (-1U)</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  </div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="keyword">struct </span><a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="group__group__groups.html#ga6cd4733e5982ac2c92ee3cb3dbd10a31">cgroup_new_cgroup</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  </div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keyword">struct </span><a class="code" href="structcgroup__controller.html">cgroup_controller</a> *<a class="code" href="group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130">cgroup_add_controller</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>,</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  </div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gae870d271b789b5c54c2e3d35de3cd6f9">cgroup_add_all_controllers</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>);</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  </div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  </div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">struct </span><a class="code" href="structcgroup__controller.html">cgroup_controller</a> *<a class="code" href="group__group__groups.html#ga8335b0aec59c8f845639a7404affce05">cgroup_get_controller</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>,</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  </div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="keywordtype">void</span> <a class="code" href="group__group__groups.html#gab20fdb1ae479f8baac482336abf73900">cgroup_free</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> **<a class="code" href="structcgroup.html">cgroup</a>);</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">enum</span> cg_version_t {</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  CGROUP_UNK = 0,</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  CGROUP_V1,</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  CGROUP_V2,</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  CGROUP_DISK = 0xFF,</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> };</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">enum</span> cgroup_delete_flag {</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  CGFLAG_DELETE_IGNORE_MIGRATION = 1,</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  CGFLAG_DELETE_RECURSIVE = 2,</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  CGFLAG_DELETE_EMPTY_ONLY = 4,</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> };</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  </div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="keyword">struct </span><a class="code" href="structcgroup.html">cgroup</a>;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  </div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="keyword">struct </span><a class="code" href="structcgroup__controller.html">cgroup_controller</a>;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  </div>
+<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="group__group__groups.html#gad4ffad2eccf9fcbfa8a551e269e0ad58"> 131</a></span> <span class="preprocessor">#define NO_PERMS (-1U)</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  </div>
+<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="group__group__groups.html#ga2a7954a987e3fbf8eabcc94cf381353e"> 136</a></span> <span class="preprocessor">#define NO_UID_GID (-1U)</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  </div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="keyword">struct </span><a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="group__group__groups.html#ga6cd4733e5982ac2c92ee3cb3dbd10a31">cgroup_new_cgroup</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  </div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="keyword">struct </span><a class="code" href="structcgroup__controller.html">cgroup_controller</a> *<a class="code" href="group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130">cgroup_add_controller</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>,</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  </div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gae870d271b789b5c54c2e3d35de3cd6f9">cgroup_add_all_controllers</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>);</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  </div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  </div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="keyword">struct </span><a class="code" href="structcgroup__controller.html">cgroup_controller</a> *<a class="code" href="group__group__groups.html#ga8335b0aec59c8f845639a7404affce05">cgroup_get_controller</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>,</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  </div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="keywordtype">void</span> <a class="code" href="group__group__groups.html#ga92d27c9ff0d655838642a7aa68497596">cgroup_free_controllers</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>);</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="keywordtype">void</span> <a class="code" href="group__group__groups.html#gab20fdb1ae479f8baac482336abf73900">cgroup_free</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> **<a class="code" href="structcgroup.html">cgroup</a>);</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  </div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  </div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>, <span class="keywordtype">int</span> ignore_ownership);</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  </div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62">cgroup_create_cgroup_from_parent</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>,</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keywordtype">int</span> ignore_ownership);</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  </div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071">cgroup_modify_cgroup</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>);</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  </div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565">cgroup_delete_cgroup</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>, <span class="keywordtype">int</span> ignore_migration);</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  </div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga860c1ec70189c969b2c8373fc1e96d36">cgroup_delete_cgroup_ext</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>, <span class="keywordtype">int</span> flags);</div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  </div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  </div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>);</div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  </div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gaa981a95e0917d3167601a4c1b392336a">cgroup_copy_cgroup</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *dst, <span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *src);</div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  </div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga86898b59e50335f99fe84a11fa38d3fc">cgroup_compare_cgroup</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *cgroup_a, <span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *cgroup_b);</div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  </div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  </div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gab1725c50c49cec4b0bdad1f26b150ca7">cgroup_compare_controllers</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *cgca,</div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *cgcb);</div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  </div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga53b9e13e30660c805ab5773d69397a43">cgroup_set_uid_gid</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>, uid_t tasks_uid, gid_t tasks_gid,</div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  uid_t control_uid, gid_t control_gid);</div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  </div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga007d21c304d9cc6e948dc0ae51ecfa86">cgroup_get_uid_gid</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>, uid_t *tasks_uid,</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  gid_t *tasks_gid, uid_t *control_uid, gid_t *control_gid);</div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  </div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="keywordtype">void</span> <a class="code" href="group__group__groups.html#gaa0400f1ff2fba7fbb6db82d97039d92b">cgroup_set_permissions</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>,</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  mode_t control_dperm, mode_t control_fperm,</div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  mode_t task_fperm);</div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  </div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga4817c68ab791c09c07b663c29b3fb029">cgroup_add_value_string</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keyword">const</span> <span class="keywordtype">char</span> *value);</div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga6c973bb5ce99e7a91def2032f23d7087">cgroup_add_value_int64</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, int64_t value);</div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gad9d2216205b96278c626122f8d5e63bb">cgroup_add_value_uint64</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, u_int64_t value);</div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga4b191a600f84b00ea7afd12c01d918f3">cgroup_add_value_bool</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">bool</span> value);</div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  </div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gafaa51e5ffe09f8ad05585a1d3b6f7fa9">cgroup_get_value_string</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">char</span> **value);</div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga0fe9b05f26b3cab21fc446c9a2700526">cgroup_get_value_int64</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, int64_t *value);</div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga951861259c0373895bfb637fce337312">cgroup_get_value_uint64</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, u_int64_t *value);</div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gab95007148eac89b7e935d93a4524787b">cgroup_get_value_bool</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">bool</span> *value);</div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  </div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga938febc02b59cbeb8e4ceb2dc7fdac82">cgroup_set_value_string</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keyword">const</span> <span class="keywordtype">char</span> *value);</div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gaa5c39e51035cc43dd26a3c620441a956">cgroup_set_value_int64</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, int64_t value);</div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gade01aa1fe30ccc968af9fe8a3bc821e5">cgroup_set_value_uint64</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, u_int64_t value);</div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gafb24892bc221cffee0f5fe07f64d54d7">cgroup_set_value_bool</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">bool</span> value);</div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga25115085978ce2a8d671e7876cc49c1d">cgroup_get_value_name_count</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller);</div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  </div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> <span class="keywordtype">char</span> *<a class="code" href="group__group__groups.html#ga16ca75fd16eda7cfc642421111e9a331">cgroup_get_value_name</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller, <span class="keywordtype">int</span> index);</div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  </div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga08a4fe913d59f61a39e61b8b02537dc2">cgroup_get_procs</a>(<span class="keywordtype">char</span> *name, <span class="keywordtype">char</span> *controller, pid_t **pids, <span class="keywordtype">int</span> *size);</div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  </div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gaef0bf6cd480f2dcb5e964de151a27dd1">cg_chmod_recursive</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>, mode_t dir_mode,</div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  <span class="keywordtype">int</span> dirm_change, mode_t file_mode, <span class="keywordtype">int</span> filem_change);</div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  </div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> <span class="keywordtype">char</span> *<a class="code" href="group__group__groups.html#gac9b5ff481de08ba8fdfcbd42940d2cbf">cgroup_get_cgroup_name</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>);</div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  </div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> } <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  </div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> <span class="preprocessor">#endif </span><span class="comment">/* _LIBCGROUP_GROUPS_H */</span><span class="preprocessor"></span></div>
-<div class="ttc" id="agroup__group__groups_html_ga007d21c304d9cc6e948dc0ae51ecfa86"><div class="ttname"><a href="group__group__groups.html#ga007d21c304d9cc6e948dc0ae51ecfa86">cgroup_get_uid_gid</a></div><div class="ttdeci">int cgroup_get_uid_gid(struct cgroup *cgroup, uid_t *tasks_uid, gid_t *tasks_gid, uid_t *control_uid, gid_t *control_gid)</div><div class="ttdef"><b>Definition:</b> wrapper.c:357</div></div>
-<div class="ttc" id="agroup__group__groups_html_ga08a4fe913d59f61a39e61b8b02537dc2"><div class="ttname"><a href="group__group__groups.html#ga08a4fe913d59f61a39e61b8b02537dc2">cgroup_get_procs</a></div><div class="ttdeci">int cgroup_get_procs(char *name, char *controller, pid_t **pids, int *size)</div><div class="ttdef"><b>Definition:</b> api.c:5502</div></div>
-<div class="ttc" id="agroup__group__groups_html_ga0fe9b05f26b3cab21fc446c9a2700526"><div class="ttname"><a href="group__group__groups.html#ga0fe9b05f26b3cab21fc446c9a2700526">cgroup_get_value_int64</a></div><div class="ttdeci">int cgroup_get_value_int64(struct cgroup_controller *controller, const char *name, int64_t *value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:436</div></div>
-<div class="ttc" id="agroup__group__groups_html_ga16ca75fd16eda7cfc642421111e9a331"><div class="ttname"><a href="group__group__groups.html#ga16ca75fd16eda7cfc642421111e9a331">cgroup_get_value_name</a></div><div class="ttdeci">char * cgroup_get_value_name(struct cgroup_controller *controller, int index)</div><div class="ttdef"><b>Definition:</b> wrapper.c:665</div></div>
-<div class="ttc" id="agroup__group__groups_html_ga1dca18434e5d6be30c28c556da94f565"><div class="ttname"><a href="group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565">cgroup_delete_cgroup</a></div><div class="ttdeci">int cgroup_delete_cgroup(struct cgroup *cgroup, int ignore_migration)</div><div class="ttdef"><b>Definition:</b> api.c:2908</div></div>
-<div class="ttc" id="agroup__group__groups_html_ga25115085978ce2a8d671e7876cc49c1d"><div class="ttname"><a href="group__group__groups.html#ga25115085978ce2a8d671e7876cc49c1d">cgroup_get_value_name_count</a></div><div class="ttdeci">int cgroup_get_value_name_count(struct cgroup_controller *controller)</div><div class="ttdef"><b>Definition:</b> wrapper.c:656</div></div>
-<div class="ttc" id="agroup__group__groups_html_ga31ba5e865ae8d58b4453c0ef06d2c071"><div class="ttname"><a href="group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071">cgroup_modify_cgroup</a></div><div class="ttdeci">int cgroup_modify_cgroup(struct cgroup *cgroup)</div><div class="ttdef"><b>Definition:</b> api.c:2228</div></div>
-<div class="ttc" id="agroup__group__groups_html_ga4817c68ab791c09c07b663c29b3fb029"><div class="ttname"><a href="group__group__groups.html#ga4817c68ab791c09c07b663c29b3fb029">cgroup_add_value_string</a></div><div class="ttdeci">int cgroup_add_value_string(struct cgroup_controller *controller, const char *name, const char *value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:180</div></div>
-<div class="ttc" id="agroup__group__groups_html_ga4b191a600f84b00ea7afd12c01d918f3"><div class="ttname"><a href="group__group__groups.html#ga4b191a600f84b00ea7afd12c01d918f3">cgroup_add_value_bool</a></div><div class="ttdeci">int cgroup_add_value_bool(struct cgroup_controller *controller, const char *name, bool value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:260</div></div>
-<div class="ttc" id="agroup__group__groups_html_ga53b9e13e30660c805ab5773d69397a43"><div class="ttname"><a href="group__group__groups.html#ga53b9e13e30660c805ab5773d69397a43">cgroup_set_uid_gid</a></div><div class="ttdeci">int cgroup_set_uid_gid(struct cgroup *cgroup, uid_t tasks_uid, gid_t tasks_gid, uid_t control_uid, gid_t control_gid)</div><div class="ttdef"><b>Definition:</b> wrapper.c:343</div></div>
-<div class="ttc" id="agroup__group__groups_html_ga6c973bb5ce99e7a91def2032f23d7087"><div class="ttname"><a href="group__group__groups.html#ga6c973bb5ce99e7a91def2032f23d7087">cgroup_add_value_int64</a></div><div class="ttdeci">int cgroup_add_value_int64(struct cgroup_controller *controller, const char *name, int64_t value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:224</div></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="keywordtype">void</span> <a class="code" href="group__group__groups.html#ga92d27c9ff0d655838642a7aa68497596">cgroup_free_controllers</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>);</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  </div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  </div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>, <span class="keywordtype">int</span> ignore_ownership);</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  </div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62">cgroup_create_cgroup_from_parent</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>,</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keywordtype">int</span> ignore_ownership);</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  </div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071">cgroup_modify_cgroup</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>);</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  </div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565">cgroup_delete_cgroup</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>, <span class="keywordtype">int</span> ignore_migration);</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  </div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga860c1ec70189c969b2c8373fc1e96d36">cgroup_delete_cgroup_ext</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>, <span class="keywordtype">int</span> flags);</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  </div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  </div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>);</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  </div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gaa981a95e0917d3167601a4c1b392336a">cgroup_copy_cgroup</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *dst, <span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *src);</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  </div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga86898b59e50335f99fe84a11fa38d3fc">cgroup_compare_cgroup</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *cgroup_a, <span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *cgroup_b);</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  </div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  </div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gab1725c50c49cec4b0bdad1f26b150ca7">cgroup_compare_controllers</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *cgca,</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *cgcb);</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  </div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga53b9e13e30660c805ab5773d69397a43">cgroup_set_uid_gid</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>, uid_t tasks_uid, gid_t tasks_gid,</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  uid_t control_uid, gid_t control_gid);</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  </div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga007d21c304d9cc6e948dc0ae51ecfa86">cgroup_get_uid_gid</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>, uid_t *tasks_uid,</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  gid_t *tasks_gid, uid_t *control_uid, gid_t *control_gid);</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  </div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <span class="keywordtype">void</span> <a class="code" href="group__group__groups.html#gaa0400f1ff2fba7fbb6db82d97039d92b">cgroup_set_permissions</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>,</div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  mode_t control_dperm, mode_t control_fperm,</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  mode_t task_fperm);</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  </div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga4817c68ab791c09c07b663c29b3fb029">cgroup_add_value_string</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keyword">const</span> <span class="keywordtype">char</span> *value);</div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga6c973bb5ce99e7a91def2032f23d7087">cgroup_add_value_int64</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, int64_t value);</div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gad9d2216205b96278c626122f8d5e63bb">cgroup_add_value_uint64</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, u_int64_t value);</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga4b191a600f84b00ea7afd12c01d918f3">cgroup_add_value_bool</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">bool</span> value);</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  </div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gafaa51e5ffe09f8ad05585a1d3b6f7fa9">cgroup_get_value_string</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">char</span> **value);</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga0fe9b05f26b3cab21fc446c9a2700526">cgroup_get_value_int64</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, int64_t *value);</div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga951861259c0373895bfb637fce337312">cgroup_get_value_uint64</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, u_int64_t *value);</div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gab95007148eac89b7e935d93a4524787b">cgroup_get_value_bool</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">bool</span> *value);</div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  </div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga938febc02b59cbeb8e4ceb2dc7fdac82">cgroup_set_value_string</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keyword">const</span> <span class="keywordtype">char</span> *value);</div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gaa5c39e51035cc43dd26a3c620441a956">cgroup_set_value_int64</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, int64_t value);</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gade01aa1fe30ccc968af9fe8a3bc821e5">cgroup_set_value_uint64</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, u_int64_t value);</div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gafb24892bc221cffee0f5fe07f64d54d7">cgroup_set_value_bool</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">bool</span> value);</div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga25115085978ce2a8d671e7876cc49c1d">cgroup_get_value_name_count</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller);</div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  </div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> <span class="keywordtype">char</span> *<a class="code" href="group__group__groups.html#ga16ca75fd16eda7cfc642421111e9a331">cgroup_get_value_name</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller, <span class="keywordtype">int</span> index);</div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  </div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga08a4fe913d59f61a39e61b8b02537dc2">cgroup_get_procs</a>(<span class="keywordtype">char</span> *name, <span class="keywordtype">char</span> *controller, pid_t **pids, <span class="keywordtype">int</span> *size);</div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  </div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gaef0bf6cd480f2dcb5e964de151a27dd1">cg_chmod_recursive</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>, mode_t dir_mode,</div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <span class="keywordtype">int</span> dirm_change, mode_t file_mode, <span class="keywordtype">int</span> filem_change);</div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  </div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> <span class="keywordtype">char</span> *<a class="code" href="group__group__groups.html#gac9b5ff481de08ba8fdfcbd42940d2cbf">cgroup_get_cgroup_name</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>);</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  </div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> <span class="comment">/*</span></div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <span class="comment"> * Convert from one cgroup version to another version</span></div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> <span class="comment"> *</span></div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> <span class="comment"> * @param out_cgroup Destination cgroup</span></div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> <span class="comment"> * @param out_version Destination cgroup version</span></div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> <span class="comment"> * @param in_cgroup Source cgroup</span></div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> <span class="comment"> * @param in_version Source cgroup version, only used if set to v1 or v2</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> <span class="comment"> *</span></div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> <span class="comment"> * @return 0 on success</span></div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> <span class="comment"> * ECGFAIL conversion failed</span></div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> <span class="comment"> * ECGCONTROLLERNOTEQUAL incorrect controller version provided</span></div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> <span class="comment"> */</span></div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> <span class="keywordtype">int</span> cgroup_convert_cgroup(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> * <span class="keyword">const</span> out_cgroup,</div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <span class="keyword">enum</span> cg_version_t out_version,</div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> * <span class="keyword">const</span> in_cgroup,</div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="keyword">enum</span> cg_version_t in_version);</div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  </div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga452d8c5e95c8d694e26e7efda045360f">cgroup_get_controller_version</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> controller,</div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  <span class="keyword">enum</span> cg_version_t * <span class="keyword">const</span> version);</div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  </div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> } <span class="comment">/* extern "C" */</span></div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  </div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> <span class="preprocessor">#endif </span><span class="comment">/* _LIBCGROUP_GROUPS_H */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="agroup__group__groups_html_ga007d21c304d9cc6e948dc0ae51ecfa86"><div class="ttname"><a href="group__group__groups.html#ga007d21c304d9cc6e948dc0ae51ecfa86">cgroup_get_uid_gid</a></div><div class="ttdeci">int cgroup_get_uid_gid(struct cgroup *cgroup, uid_t *tasks_uid, gid_t *tasks_gid, uid_t *control_uid, gid_t *control_gid)</div><div class="ttdef"><b>Definition:</b> wrapper.c:417</div></div>
+<div class="ttc" id="agroup__group__groups_html_ga08a4fe913d59f61a39e61b8b02537dc2"><div class="ttname"><a href="group__group__groups.html#ga08a4fe913d59f61a39e61b8b02537dc2">cgroup_get_procs</a></div><div class="ttdeci">int cgroup_get_procs(char *name, char *controller, pid_t **pids, int *size)</div><div class="ttdef"><b>Definition:</b> api.c:5517</div></div>
+<div class="ttc" id="agroup__group__groups_html_ga0fe9b05f26b3cab21fc446c9a2700526"><div class="ttname"><a href="group__group__groups.html#ga0fe9b05f26b3cab21fc446c9a2700526">cgroup_get_value_int64</a></div><div class="ttdeci">int cgroup_get_value_int64(struct cgroup_controller *controller, const char *name, int64_t *value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:496</div></div>
+<div class="ttc" id="agroup__group__groups_html_ga16ca75fd16eda7cfc642421111e9a331"><div class="ttname"><a href="group__group__groups.html#ga16ca75fd16eda7cfc642421111e9a331">cgroup_get_value_name</a></div><div class="ttdeci">char * cgroup_get_value_name(struct cgroup_controller *controller, int index)</div><div class="ttdef"><b>Definition:</b> wrapper.c:725</div></div>
+<div class="ttc" id="agroup__group__groups_html_ga1dca18434e5d6be30c28c556da94f565"><div class="ttname"><a href="group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565">cgroup_delete_cgroup</a></div><div class="ttdeci">int cgroup_delete_cgroup(struct cgroup *cgroup, int ignore_migration)</div><div class="ttdef"><b>Definition:</b> api.c:2923</div></div>
+<div class="ttc" id="agroup__group__groups_html_ga25115085978ce2a8d671e7876cc49c1d"><div class="ttname"><a href="group__group__groups.html#ga25115085978ce2a8d671e7876cc49c1d">cgroup_get_value_name_count</a></div><div class="ttdeci">int cgroup_get_value_name_count(struct cgroup_controller *controller)</div><div class="ttdef"><b>Definition:</b> wrapper.c:716</div></div>
+<div class="ttc" id="agroup__group__groups_html_ga31ba5e865ae8d58b4453c0ef06d2c071"><div class="ttname"><a href="group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071">cgroup_modify_cgroup</a></div><div class="ttdeci">int cgroup_modify_cgroup(struct cgroup *cgroup)</div><div class="ttdef"><b>Definition:</b> api.c:2234</div></div>
+<div class="ttc" id="agroup__group__groups_html_ga452d8c5e95c8d694e26e7efda045360f"><div class="ttname"><a href="group__group__groups.html#ga452d8c5e95c8d694e26e7efda045360f">cgroup_get_controller_version</a></div><div class="ttdeci">int cgroup_get_controller_version(const char *const controller, enum cg_version_t *const version)</div><div class="ttdef"><b>Definition:</b> api.c:5766</div></div>
+<div class="ttc" id="agroup__group__groups_html_ga4817c68ab791c09c07b663c29b3fb029"><div class="ttname"><a href="group__group__groups.html#ga4817c68ab791c09c07b663c29b3fb029">cgroup_add_value_string</a></div><div class="ttdeci">int cgroup_add_value_string(struct cgroup_controller *controller, const char *name, const char *value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:211</div></div>
+<div class="ttc" id="agroup__group__groups_html_ga4b191a600f84b00ea7afd12c01d918f3"><div class="ttname"><a href="group__group__groups.html#ga4b191a600f84b00ea7afd12c01d918f3">cgroup_add_value_bool</a></div><div class="ttdeci">int cgroup_add_value_bool(struct cgroup_controller *controller, const char *name, bool value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:291</div></div>
+<div class="ttc" id="agroup__group__groups_html_ga53b9e13e30660c805ab5773d69397a43"><div class="ttname"><a href="group__group__groups.html#ga53b9e13e30660c805ab5773d69397a43">cgroup_set_uid_gid</a></div><div class="ttdeci">int cgroup_set_uid_gid(struct cgroup *cgroup, uid_t tasks_uid, gid_t tasks_gid, uid_t control_uid, gid_t control_gid)</div><div class="ttdef"><b>Definition:</b> wrapper.c:403</div></div>
+<div class="ttc" id="agroup__group__groups_html_ga6c973bb5ce99e7a91def2032f23d7087"><div class="ttname"><a href="group__group__groups.html#ga6c973bb5ce99e7a91def2032f23d7087">cgroup_add_value_int64</a></div><div class="ttdeci">int cgroup_add_value_int64(struct cgroup_controller *controller, const char *name, int64_t value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:255</div></div>
<div class="ttc" id="agroup__group__groups_html_ga6cd4733e5982ac2c92ee3cb3dbd10a31"><div class="ttname"><a href="group__group__groups.html#ga6cd4733e5982ac2c92ee3cb3dbd10a31">cgroup_new_cgroup</a></div><div class="ttdeci">struct cgroup * cgroup_new_cgroup(const char *name)</div><div class="ttdef"><b>Definition:</b> wrapper.c:44</div></div>
-<div class="ttc" id="agroup__group__groups_html_ga8335b0aec59c8f845639a7404affce05"><div class="ttname"><a href="group__group__groups.html#ga8335b0aec59c8f845639a7404affce05">cgroup_get_controller</a></div><div class="ttdeci">struct cgroup_controller * cgroup_get_controller(struct cgroup *cgroup, const char *name)</div><div class="ttdef"><b>Definition:</b> wrapper.c:371</div></div>
-<div class="ttc" id="agroup__group__groups_html_ga860c1ec70189c969b2c8373fc1e96d36"><div class="ttname"><a href="group__group__groups.html#ga860c1ec70189c969b2c8373fc1e96d36">cgroup_delete_cgroup_ext</a></div><div class="ttdeci">int cgroup_delete_cgroup_ext(struct cgroup *cgroup, int flags)</div><div class="ttdef"><b>Definition:</b> api.c:2914</div></div>
-<div class="ttc" id="agroup__group__groups_html_ga86898b59e50335f99fe84a11fa38d3fc"><div class="ttname"><a href="group__group__groups.html#ga86898b59e50335f99fe84a11fa38d3fc">cgroup_compare_cgroup</a></div><div class="ttdeci">int cgroup_compare_cgroup(struct cgroup *cgroup_a, struct cgroup *cgroup_b)</div><div class="ttdef"><b>Definition:</b> wrapper.c:308</div></div>
-<div class="ttc" id="agroup__group__groups_html_ga90e1ce96f3cb540f7e82d076dd938f62"><div class="ttname"><a href="group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62">cgroup_create_cgroup_from_parent</a></div><div class="ttdeci">int cgroup_create_cgroup_from_parent(struct cgroup *cgroup, int ignore_ownership)</div><div class="ttdef"><b>Definition:</b> api.c:2654</div></div>
-<div class="ttc" id="agroup__group__groups_html_ga92d27c9ff0d655838642a7aa68497596"><div class="ttname"><a href="group__group__groups.html#ga92d27c9ff0d655838642a7aa68497596">cgroup_free_controllers</a></div><div class="ttdeci">void cgroup_free_controllers(struct cgroup *cgroup)</div><div class="ttdef"><b>Definition:</b> wrapper.c:145</div></div>
-<div class="ttc" id="agroup__group__groups_html_ga938febc02b59cbeb8e4ceb2dc7fdac82"><div class="ttname"><a href="group__group__groups.html#ga938febc02b59cbeb8e4ceb2dc7fdac82">cgroup_set_value_string</a></div><div class="ttdeci">int cgroup_set_value_string(struct cgroup_controller *controller, const char *name, const char *value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:415</div></div>
-<div class="ttc" id="agroup__group__groups_html_ga951861259c0373895bfb637fce337312"><div class="ttname"><a href="group__group__groups.html#ga951861259c0373895bfb637fce337312">cgroup_get_value_uint64</a></div><div class="ttdeci">int cgroup_get_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t *value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:486</div></div>
-<div class="ttc" id="agroup__group__groups_html_gaa0400f1ff2fba7fbb6db82d97039d92b"><div class="ttname"><a href="group__group__groups.html#gaa0400f1ff2fba7fbb6db82d97039d92b">cgroup_set_permissions</a></div><div class="ttdeci">void cgroup_set_permissions(struct cgroup *cgroup, mode_t control_dperm, mode_t control_fperm, mode_t task_fperm)</div><div class="ttdef"><b>Definition:</b> api.c:361</div></div>
+<div class="ttc" id="agroup__group__groups_html_ga8335b0aec59c8f845639a7404affce05"><div class="ttname"><a href="group__group__groups.html#ga8335b0aec59c8f845639a7404affce05">cgroup_get_controller</a></div><div class="ttdeci">struct cgroup_controller * cgroup_get_controller(struct cgroup *cgroup, const char *name)</div><div class="ttdef"><b>Definition:</b> wrapper.c:431</div></div>
+<div class="ttc" id="agroup__group__groups_html_ga860c1ec70189c969b2c8373fc1e96d36"><div class="ttname"><a href="group__group__groups.html#ga860c1ec70189c969b2c8373fc1e96d36">cgroup_delete_cgroup_ext</a></div><div class="ttdeci">int cgroup_delete_cgroup_ext(struct cgroup *cgroup, int flags)</div><div class="ttdef"><b>Definition:</b> api.c:2929</div></div>
+<div class="ttc" id="agroup__group__groups_html_ga86898b59e50335f99fe84a11fa38d3fc"><div class="ttname"><a href="group__group__groups.html#ga86898b59e50335f99fe84a11fa38d3fc">cgroup_compare_cgroup</a></div><div class="ttdeci">int cgroup_compare_cgroup(struct cgroup *cgroup_a, struct cgroup *cgroup_b)</div><div class="ttdef"><b>Definition:</b> wrapper.c:368</div></div>
+<div class="ttc" id="agroup__group__groups_html_ga90e1ce96f3cb540f7e82d076dd938f62"><div class="ttname"><a href="group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62">cgroup_create_cgroup_from_parent</a></div><div class="ttdeci">int cgroup_create_cgroup_from_parent(struct cgroup *cgroup, int ignore_ownership)</div><div class="ttdef"><b>Definition:</b> api.c:2669</div></div>
+<div class="ttc" id="agroup__group__groups_html_ga92d27c9ff0d655838642a7aa68497596"><div class="ttname"><a href="group__group__groups.html#ga92d27c9ff0d655838642a7aa68497596">cgroup_free_controllers</a></div><div class="ttdeci">void cgroup_free_controllers(struct cgroup *cgroup)</div><div class="ttdef"><b>Definition:</b> wrapper.c:183</div></div>
+<div class="ttc" id="agroup__group__groups_html_ga938febc02b59cbeb8e4ceb2dc7fdac82"><div class="ttname"><a href="group__group__groups.html#ga938febc02b59cbeb8e4ceb2dc7fdac82">cgroup_set_value_string</a></div><div class="ttdeci">int cgroup_set_value_string(struct cgroup_controller *controller, const char *name, const char *value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:475</div></div>
+<div class="ttc" id="agroup__group__groups_html_ga951861259c0373895bfb637fce337312"><div class="ttname"><a href="group__group__groups.html#ga951861259c0373895bfb637fce337312">cgroup_get_value_uint64</a></div><div class="ttdeci">int cgroup_get_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t *value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:546</div></div>
+<div class="ttc" id="agroup__group__groups_html_gaa0400f1ff2fba7fbb6db82d97039d92b"><div class="ttname"><a href="group__group__groups.html#gaa0400f1ff2fba7fbb6db82d97039d92b">cgroup_set_permissions</a></div><div class="ttdeci">void cgroup_set_permissions(struct cgroup *cgroup, mode_t control_dperm, mode_t control_fperm, mode_t task_fperm)</div><div class="ttdef"><b>Definition:</b> api.c:367</div></div>
<div class="ttc" id="agroup__group__groups_html_gaa2f9c2ac75fd7e56e5ec6fb970304130"><div class="ttname"><a href="group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130">cgroup_add_controller</a></div><div class="ttdeci">struct cgroup_controller * cgroup_add_controller(struct cgroup *cgroup, const char *name)</div><div class="ttdef"><b>Definition:</b> wrapper.c:56</div></div>
-<div class="ttc" id="agroup__group__groups_html_gaa5c39e51035cc43dd26a3c620441a956"><div class="ttname"><a href="group__group__groups.html#gaa5c39e51035cc43dd26a3c620441a956">cgroup_set_value_int64</a></div><div class="ttdeci">int cgroup_set_value_int64(struct cgroup_controller *controller, const char *name, int64_t value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:459</div></div>
-<div class="ttc" id="agroup__group__groups_html_gaa981a95e0917d3167601a4c1b392336a"><div class="ttname"><a href="group__group__groups.html#gaa981a95e0917d3167601a4c1b392336a">cgroup_copy_cgroup</a></div><div class="ttdeci">int cgroup_copy_cgroup(struct cgroup *dst, struct cgroup *src)</div><div class="ttdef"><b>Definition:</b> api.c:2331</div></div>
-<div class="ttc" id="agroup__group__groups_html_gab1725c50c49cec4b0bdad1f26b150ca7"><div class="ttname"><a href="group__group__groups.html#gab1725c50c49cec4b0bdad1f26b150ca7">cgroup_compare_controllers</a></div><div class="ttdeci">int cgroup_compare_controllers(struct cgroup_controller *cgca, struct cgroup_controller *cgcb)</div><div class="ttdef"><b>Definition:</b> wrapper.c:281</div></div>
-<div class="ttc" id="agroup__group__groups_html_gab20fdb1ae479f8baac482336abf73900"><div class="ttname"><a href="group__group__groups.html#gab20fdb1ae479f8baac482336abf73900">cgroup_free</a></div><div class="ttdeci">void cgroup_free(struct cgroup **cgroup)</div><div class="ttdef"><b>Definition:</b> wrapper.c:165</div></div>
-<div class="ttc" id="agroup__group__groups_html_gab95007148eac89b7e935d93a4524787b"><div class="ttname"><a href="group__group__groups.html#gab95007148eac89b7e935d93a4524787b">cgroup_get_value_bool</a></div><div class="ttdeci">int cgroup_get_value_bool(struct cgroup_controller *controller, const char *name, bool *value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:535</div></div>
-<div class="ttc" id="agroup__group__groups_html_gac9b5ff481de08ba8fdfcbd42940d2cbf"><div class="ttname"><a href="group__group__groups.html#gac9b5ff481de08ba8fdfcbd42940d2cbf">cgroup_get_cgroup_name</a></div><div class="ttdeci">char * cgroup_get_cgroup_name(struct cgroup *cgroup)</div><div class="ttdef"><b>Definition:</b> wrapper.c:677</div></div>
-<div class="ttc" id="agroup__group__groups_html_gad4ba31fe5a8bba63b33b1ea339b849e6"><div class="ttname"><a href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup</a></div><div class="ttdeci">int cgroup_get_cgroup(struct cgroup *cgroup)</div><div class="ttdef"><b>Definition:</b> api.c:3207</div></div>
-<div class="ttc" id="agroup__group__groups_html_gad9d2216205b96278c626122f8d5e63bb"><div class="ttname"><a href="group__group__groups.html#gad9d2216205b96278c626122f8d5e63bb">cgroup_add_value_uint64</a></div><div class="ttdeci">int cgroup_add_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:242</div></div>
-<div class="ttc" id="agroup__group__groups_html_gadb8e13df6064841d3c9707960f782fa7"><div class="ttname"><a href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup</a></div><div class="ttdeci">int cgroup_create_cgroup(struct cgroup *cgroup, int ignore_ownership)</div><div class="ttdef"><b>Definition:</b> api.c:2414</div></div>
-<div class="ttc" id="agroup__group__groups_html_gade01aa1fe30ccc968af9fe8a3bc821e5"><div class="ttname"><a href="group__group__groups.html#gade01aa1fe30ccc968af9fe8a3bc821e5">cgroup_set_value_uint64</a></div><div class="ttdeci">int cgroup_set_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:508</div></div>
-<div class="ttc" id="agroup__group__groups_html_gae870d271b789b5c54c2e3d35de3cd6f9"><div class="ttname"><a href="group__group__groups.html#gae870d271b789b5c54c2e3d35de3cd6f9">cgroup_add_all_controllers</a></div><div class="ttdeci">int cgroup_add_all_controllers(struct cgroup *cgroup)</div><div class="ttdef"><b>Definition:</b> wrapper.c:95</div></div>
-<div class="ttc" id="agroup__group__groups_html_gaef0bf6cd480f2dcb5e964de151a27dd1"><div class="ttname"><a href="group__group__groups.html#gaef0bf6cd480f2dcb5e964de151a27dd1">cg_chmod_recursive</a></div><div class="ttdeci">int cg_chmod_recursive(struct cgroup *cgroup, mode_t dir_mode, int dirm_change, mode_t file_mode, int filem_change)</div><div class="ttdef"><b>Definition:</b> api.c:333</div></div>
-<div class="ttc" id="agroup__group__groups_html_gafaa51e5ffe09f8ad05585a1d3b6f7fa9"><div class="ttname"><a href="group__group__groups.html#gafaa51e5ffe09f8ad05585a1d3b6f7fa9">cgroup_get_value_string</a></div><div class="ttdeci">int cgroup_get_value_string(struct cgroup_controller *controller, const char *name, char **value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:390</div></div>
-<div class="ttc" id="agroup__group__groups_html_gafb24892bc221cffee0f5fe07f64d54d7"><div class="ttname"><a href="group__group__groups.html#gafb24892bc221cffee0f5fe07f64d54d7">cgroup_set_value_bool</a></div><div class="ttdeci">int cgroup_set_value_bool(struct cgroup_controller *controller, const char *name, bool value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:563</div></div>
-<div class="ttc" id="astructcgroup__controller_html"><div class="ttname"><a href="structcgroup__controller.html">cgroup_controller</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:99</div></div>
-<div class="ttc" id="astructcgroup_html"><div class="ttname"><a href="structcgroup.html">cgroup</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:106</div></div>
+<div class="ttc" id="agroup__group__groups_html_gaa5c39e51035cc43dd26a3c620441a956"><div class="ttname"><a href="group__group__groups.html#gaa5c39e51035cc43dd26a3c620441a956">cgroup_set_value_int64</a></div><div class="ttdeci">int cgroup_set_value_int64(struct cgroup_controller *controller, const char *name, int64_t value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:519</div></div>
+<div class="ttc" id="agroup__group__groups_html_gaa981a95e0917d3167601a4c1b392336a"><div class="ttname"><a href="group__group__groups.html#gaa981a95e0917d3167601a4c1b392336a">cgroup_copy_cgroup</a></div><div class="ttdeci">int cgroup_copy_cgroup(struct cgroup *dst, struct cgroup *src)</div><div class="ttdef"><b>Definition:</b> api.c:2346</div></div>
+<div class="ttc" id="agroup__group__groups_html_gab1725c50c49cec4b0bdad1f26b150ca7"><div class="ttname"><a href="group__group__groups.html#gab1725c50c49cec4b0bdad1f26b150ca7">cgroup_compare_controllers</a></div><div class="ttdeci">int cgroup_compare_controllers(struct cgroup_controller *cgca, struct cgroup_controller *cgcb)</div><div class="ttdef"><b>Definition:</b> wrapper.c:341</div></div>
+<div class="ttc" id="agroup__group__groups_html_gab20fdb1ae479f8baac482336abf73900"><div class="ttname"><a href="group__group__groups.html#gab20fdb1ae479f8baac482336abf73900">cgroup_free</a></div><div class="ttdeci">void cgroup_free(struct cgroup **cgroup)</div><div class="ttdef"><b>Definition:</b> wrapper.c:196</div></div>
+<div class="ttc" id="agroup__group__groups_html_gab95007148eac89b7e935d93a4524787b"><div class="ttname"><a href="group__group__groups.html#gab95007148eac89b7e935d93a4524787b">cgroup_get_value_bool</a></div><div class="ttdeci">int cgroup_get_value_bool(struct cgroup_controller *controller, const char *name, bool *value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:595</div></div>
+<div class="ttc" id="agroup__group__groups_html_gac9b5ff481de08ba8fdfcbd42940d2cbf"><div class="ttname"><a href="group__group__groups.html#gac9b5ff481de08ba8fdfcbd42940d2cbf">cgroup_get_cgroup_name</a></div><div class="ttdeci">char * cgroup_get_cgroup_name(struct cgroup *cgroup)</div><div class="ttdef"><b>Definition:</b> wrapper.c:737</div></div>
+<div class="ttc" id="agroup__group__groups_html_gad4ba31fe5a8bba63b33b1ea339b849e6"><div class="ttname"><a href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup</a></div><div class="ttdeci">int cgroup_get_cgroup(struct cgroup *cgroup)</div><div class="ttdef"><b>Definition:</b> api.c:3222</div></div>
+<div class="ttc" id="agroup__group__groups_html_gad9d2216205b96278c626122f8d5e63bb"><div class="ttname"><a href="group__group__groups.html#gad9d2216205b96278c626122f8d5e63bb">cgroup_add_value_uint64</a></div><div class="ttdeci">int cgroup_add_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:273</div></div>
+<div class="ttc" id="agroup__group__groups_html_gadb8e13df6064841d3c9707960f782fa7"><div class="ttname"><a href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup</a></div><div class="ttdeci">int cgroup_create_cgroup(struct cgroup *cgroup, int ignore_ownership)</div><div class="ttdef"><b>Definition:</b> api.c:2429</div></div>
+<div class="ttc" id="agroup__group__groups_html_gade01aa1fe30ccc968af9fe8a3bc821e5"><div class="ttname"><a href="group__group__groups.html#gade01aa1fe30ccc968af9fe8a3bc821e5">cgroup_set_value_uint64</a></div><div class="ttdeci">int cgroup_set_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:568</div></div>
+<div class="ttc" id="agroup__group__groups_html_gae870d271b789b5c54c2e3d35de3cd6f9"><div class="ttname"><a href="group__group__groups.html#gae870d271b789b5c54c2e3d35de3cd6f9">cgroup_add_all_controllers</a></div><div class="ttdeci">int cgroup_add_all_controllers(struct cgroup *cgroup)</div><div class="ttdef"><b>Definition:</b> wrapper.c:112</div></div>
+<div class="ttc" id="agroup__group__groups_html_gaef0bf6cd480f2dcb5e964de151a27dd1"><div class="ttname"><a href="group__group__groups.html#gaef0bf6cd480f2dcb5e964de151a27dd1">cg_chmod_recursive</a></div><div class="ttdeci">int cg_chmod_recursive(struct cgroup *cgroup, mode_t dir_mode, int dirm_change, mode_t file_mode, int filem_change)</div><div class="ttdef"><b>Definition:</b> api.c:339</div></div>
+<div class="ttc" id="agroup__group__groups_html_gafaa51e5ffe09f8ad05585a1d3b6f7fa9"><div class="ttname"><a href="group__group__groups.html#gafaa51e5ffe09f8ad05585a1d3b6f7fa9">cgroup_get_value_string</a></div><div class="ttdeci">int cgroup_get_value_string(struct cgroup_controller *controller, const char *name, char **value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:450</div></div>
+<div class="ttc" id="agroup__group__groups_html_gafb24892bc221cffee0f5fe07f64d54d7"><div class="ttname"><a href="group__group__groups.html#gafb24892bc221cffee0f5fe07f64d54d7">cgroup_set_value_bool</a></div><div class="ttdeci">int cgroup_set_value_bool(struct cgroup_controller *controller, const char *name, bool value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:623</div></div>
+<div class="ttc" id="astructcgroup__controller_html"><div class="ttname"><a href="structcgroup__controller.html">cgroup_controller</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:106</div></div>
+<div class="ttc" id="astructcgroup_html"><div class="ttname"><a href="structcgroup.html">cgroup</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:114</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Introduction</h1>
<p><code>libcgroup</code> is a library that abstracts the control group file system in Linux. It comes with various command-line tools and configuration files, see their man pages for details.</p>
<p>This documentation provides description of <code>libcgroup</code> API. Read following sections, preferably in this order:</p><ol type="1">
-<li><a class="el" href="group__group__init.html">Initialization</a></li>
+<li>Initialization</li>
<li><a class="el" href="group__group__groups.html">Control Groups</a></li>
<li><a class="el" href="group__group__iterators.html">Iterators</a></li>
<li><a class="el" href="group__group__tasks.html">Manipulation with tasks</a></li>
+++ /dev/null
-<!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.9.1"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>libcgroup: include/libcgroup/init.h Source File</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="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" />
-</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="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">libcgroup
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-$(function() {
- initMenu('',true,false,'search.php','Search');
- $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- 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">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_66a7763e2a9b96033a682558820d533e.html">libcgroup</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">init.h</div> </div>
-</div><!--header-->
-<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="preprocessor">#ifndef _LIBCGROUP_INIT_H</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="preprocessor">#define _LIBCGROUP_INIT_H</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  </div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#ifndef _LIBCGROUP_H_INSIDE</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="preprocessor">#error "Only <libcgroup.h> should be included directly."</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>  </div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#ifndef SWIG</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include <features.h></span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keywordtype">int</span> <a class="code" href="group__group__init.html#ga37740e2f5f298edf13e18fcd7632b75a">cgroup_init</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  </div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keywordtype">int</span> <a class="code" href="group__group__init.html#ga4f061b353321b81869057970d96f09f7">cgroup_get_subsys_mount_point</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *controller, <span class="keywordtype">char</span> **mount_point);</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> } <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  </div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor">#endif </span><span class="comment">/* _LIBCGROUP_INIT_H */</span><span class="preprocessor"></span></div>
-<div class="ttc" id="agroup__group__init_html_ga37740e2f5f298edf13e18fcd7632b75a"><div class="ttname"><a href="group__group__init.html#ga37740e2f5f298edf13e18fcd7632b75a">cgroup_init</a></div><div class="ttdeci">int cgroup_init(void)</div><div class="ttdef"><b>Definition:</b> api.c:1271</div></div>
-<div class="ttc" id="agroup__group__init_html_ga4f061b353321b81869057970d96f09f7"><div class="ttname"><a href="group__group__init.html#ga4f061b353321b81869057970d96f09f7">cgroup_get_subsys_mount_point</a></div><div class="ttdeci">int cgroup_get_subsys_mount_point(const char *controller, char **mount_point)</div><div class="ttdef"><b>Definition:</b> api.c:5380</div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
-</small></address>
-</body>
-</html>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  </div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="keywordtype">int</span> <a class="code" href="group__group__iterators.html#ga645ec7a6206dffb32667e7a0e148edc8">cgroup_walk_tree_set_flags</a>(<span class="keywordtype">void</span> **handle, <span class="keywordtype">int</span> flags);</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  </div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="keywordtype">int</span> <a class="code" href="group__group__iterators.html#ga73edb115af6779644d3371b12cf09140">cgroup_read_value_begin</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *controller, <span class="keyword">const</span> <span class="keywordtype">char</span> *path,</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordtype">char</span> *name, <span class="keywordtype">void</span> **handle, <span class="keywordtype">char</span> *buffer, <span class="keywordtype">int</span> max);</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="keywordtype">int</span> <a class="code" href="group__group__iterators.html#ga9378ee0f1f6e65900df8e25b3d7ce236">cgroup_read_value_begin</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> controller, <span class="keyword">const</span> <span class="keywordtype">char</span> *path,</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> name, <span class="keywordtype">void</span> **handle, <span class="keywordtype">char</span> *buffer, <span class="keywordtype">int</span> max);</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  </div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="keywordtype">int</span> <a class="code" href="group__group__iterators.html#gaced2fe331f19d599a3270db2440847cc">cgroup_read_value_next</a>(<span class="keywordtype">void</span> **handle, <span class="keywordtype">char</span> *buffer, <span class="keywordtype">int</span> max);</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  </div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  </div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="preprocessor">#endif </span><span class="comment">/* _LIBCGROUP_ITERATORS_H */</span><span class="preprocessor"></span></div>
-<div class="ttc" id="agroup__group__iterators_html_ga09a70990837a58e506a264f8c50d4cde"><div class="ttname"><a href="group__group__iterators.html#ga09a70990837a58e506a264f8c50d4cde">cgroup_walk_tree_end</a></div><div class="ttdeci">int cgroup_walk_tree_end(void **handle)</div><div class="ttdef"><b>Definition:</b> api.c:4546</div></div>
-<div class="ttc" id="agroup__group__iterators_html_ga0c467d42a2c9a916a0edd339a6d7afc8"><div class="ttname"><a href="group__group__iterators.html#ga0c467d42a2c9a916a0edd339a6d7afc8">cgroup_get_all_controller_end</a></div><div class="ttdeci">int cgroup_get_all_controller_end(void **handle)</div><div class="ttdef"><b>Definition:</b> api.c:5413</div></div>
-<div class="ttc" id="agroup__group__iterators_html_ga1138e47f124f0f634586db5e0c4ae5de"><div class="ttname"><a href="group__group__iterators.html#ga1138e47f124f0f634586db5e0c4ae5de">cgroup_read_stats_begin</a></div><div class="ttdeci">int cgroup_read_stats_begin(const char *controller, const char *path, void **handle, struct cgroup_stat *stat)</div><div class="ttdef"><b>Definition:</b> api.c:4804</div></div>
-<div class="ttc" id="agroup__group__iterators_html_ga18a3c6fe7da42b9da96ce34dce1e31b8"><div class="ttname"><a href="group__group__iterators.html#ga18a3c6fe7da42b9da96ce34dce1e31b8">cgroup_get_subsys_mount_point_begin</a></div><div class="ttdeci">int cgroup_get_subsys_mount_point_begin(const char *controller, void **handle, char *path)</div><div class="ttdef"><b>Definition:</b> api.c:5693</div></div>
+<div class="ttc" id="agroup__group__iterators_html_ga09a70990837a58e506a264f8c50d4cde"><div class="ttname"><a href="group__group__iterators.html#ga09a70990837a58e506a264f8c50d4cde">cgroup_walk_tree_end</a></div><div class="ttdeci">int cgroup_walk_tree_end(void **handle)</div><div class="ttdef"><b>Definition:</b> api.c:4561</div></div>
+<div class="ttc" id="agroup__group__iterators_html_ga0c467d42a2c9a916a0edd339a6d7afc8"><div class="ttname"><a href="group__group__iterators.html#ga0c467d42a2c9a916a0edd339a6d7afc8">cgroup_get_all_controller_end</a></div><div class="ttdeci">int cgroup_get_all_controller_end(void **handle)</div><div class="ttdef"><b>Definition:</b> api.c:5428</div></div>
+<div class="ttc" id="agroup__group__iterators_html_ga1138e47f124f0f634586db5e0c4ae5de"><div class="ttname"><a href="group__group__iterators.html#ga1138e47f124f0f634586db5e0c4ae5de">cgroup_read_stats_begin</a></div><div class="ttdeci">int cgroup_read_stats_begin(const char *controller, const char *path, void **handle, struct cgroup_stat *stat)</div><div class="ttdef"><b>Definition:</b> api.c:4819</div></div>
+<div class="ttc" id="agroup__group__iterators_html_ga18a3c6fe7da42b9da96ce34dce1e31b8"><div class="ttname"><a href="group__group__iterators.html#ga18a3c6fe7da42b9da96ce34dce1e31b8">cgroup_get_subsys_mount_point_begin</a></div><div class="ttdeci">int cgroup_get_subsys_mount_point_begin(const char *controller, void **handle, char *path)</div><div class="ttdef"><b>Definition:</b> api.c:5708</div></div>
<div class="ttc" id="agroup__group__iterators_html_ga29a572cbc0c07e2b02dfa0f1ac0067d3"><div class="ttname"><a href="group__group__iterators.html#ga29a572cbc0c07e2b02dfa0f1ac0067d3">cgroup_walk_type</a></div><div class="ttdeci">cgroup_walk_type</div><div class="ttdef"><b>Definition:</b> iterators.h:73</div></div>
-<div class="ttc" id="agroup__group__iterators_html_ga3d66997158cb8a334317923ad94cc789"><div class="ttname"><a href="group__group__iterators.html#ga3d66997158cb8a334317923ad94cc789">cgroup_get_subsys_mount_point_next</a></div><div class="ttdeci">int cgroup_get_subsys_mount_point_next(void **handle, char *path)</div><div class="ttdef"><b>Definition:</b> api.c:5724</div></div>
-<div class="ttc" id="agroup__group__iterators_html_ga3d98a04b29b1fe409db1114b7aa76809"><div class="ttname"><a href="group__group__iterators.html#ga3d98a04b29b1fe409db1114b7aa76809">cgroup_get_all_controller_next</a></div><div class="ttdeci">int cgroup_get_all_controller_next(void **handle, struct controller_data *info)</div><div class="ttdef"><b>Definition:</b> api.c:5427</div></div>
-<div class="ttc" id="agroup__group__iterators_html_ga527f5499b0aa04d325074435baebdff1"><div class="ttname"><a href="group__group__iterators.html#ga527f5499b0aa04d325074435baebdff1">cgroup_walk_tree_next</a></div><div class="ttdeci">int cgroup_walk_tree_next(int depth, void **handle, struct cgroup_file_info *info, int base_level)</div><div class="ttdef"><b>Definition:</b> api.c:4519</div></div>
+<div class="ttc" id="agroup__group__iterators_html_ga3d66997158cb8a334317923ad94cc789"><div class="ttname"><a href="group__group__iterators.html#ga3d66997158cb8a334317923ad94cc789">cgroup_get_subsys_mount_point_next</a></div><div class="ttdeci">int cgroup_get_subsys_mount_point_next(void **handle, char *path)</div><div class="ttdef"><b>Definition:</b> api.c:5739</div></div>
+<div class="ttc" id="agroup__group__iterators_html_ga3d98a04b29b1fe409db1114b7aa76809"><div class="ttname"><a href="group__group__iterators.html#ga3d98a04b29b1fe409db1114b7aa76809">cgroup_get_all_controller_next</a></div><div class="ttdeci">int cgroup_get_all_controller_next(void **handle, struct controller_data *info)</div><div class="ttdef"><b>Definition:</b> api.c:5442</div></div>
+<div class="ttc" id="agroup__group__iterators_html_ga527f5499b0aa04d325074435baebdff1"><div class="ttname"><a href="group__group__iterators.html#ga527f5499b0aa04d325074435baebdff1">cgroup_walk_tree_next</a></div><div class="ttdeci">int cgroup_walk_tree_next(int depth, void **handle, struct cgroup_file_info *info, int base_level)</div><div class="ttdef"><b>Definition:</b> api.c:4534</div></div>
<div class="ttc" id="agroup__group__iterators_html_ga55d2eac2af703794651d344c073566f5"><div class="ttname"><a href="group__group__iterators.html#ga55d2eac2af703794651d344c073566f5">CG_VALUE_MAX</a></div><div class="ttdeci">#define CG_VALUE_MAX</div><div class="ttdef"><b>Definition:</b> iterators.h:230</div></div>
-<div class="ttc" id="agroup__group__iterators_html_ga5f9f21138f9b18912a16b21a45b53c44"><div class="ttname"><a href="group__group__iterators.html#ga5f9f21138f9b18912a16b21a45b53c44">cgroup_get_controller_begin</a></div><div class="ttdeci">int cgroup_get_controller_begin(void **handle, struct cgroup_mount_point *info)</div><div class="ttdef"><b>Definition:</b> api.c:4953</div></div>
+<div class="ttc" id="agroup__group__iterators_html_ga5f9f21138f9b18912a16b21a45b53c44"><div class="ttname"><a href="group__group__iterators.html#ga5f9f21138f9b18912a16b21a45b53c44">cgroup_get_controller_begin</a></div><div class="ttdeci">int cgroup_get_controller_begin(void **handle, struct cgroup_mount_point *info)</div><div class="ttdef"><b>Definition:</b> api.c:4968</div></div>
<div class="ttc" id="agroup__group__iterators_html_ga608b4aa32e2db58fed34771a6a272444"><div class="ttname"><a href="group__group__iterators.html#ga608b4aa32e2db58fed34771a6a272444">cgroup_file_type</a></div><div class="ttdeci">cgroup_file_type</div><div class="ttdef"><b>Definition:</b> iterators.h:105</div></div>
-<div class="ttc" id="agroup__group__iterators_html_ga645ec7a6206dffb32667e7a0e148edc8"><div class="ttname"><a href="group__group__iterators.html#ga645ec7a6206dffb32667e7a0e148edc8">cgroup_walk_tree_set_flags</a></div><div class="ttdeci">int cgroup_walk_tree_set_flags(void **handle, int flags)</div><div class="ttdef"><b>Definition:</b> api.c:4632</div></div>
-<div class="ttc" id="agroup__group__iterators_html_ga73edb115af6779644d3371b12cf09140"><div class="ttname"><a href="group__group__iterators.html#ga73edb115af6779644d3371b12cf09140">cgroup_read_value_begin</a></div><div class="ttdeci">int cgroup_read_value_begin(const char *controller, const char *path, char *name, void **handle, char *buffer, int max)</div><div class="ttdef"><b>Definition:</b> api.c:4728</div></div>
-<div class="ttc" id="agroup__group__iterators_html_ga7b19f10c06abb96d8c8ae88a04888a68"><div class="ttname"><a href="group__group__iterators.html#ga7b19f10c06abb96d8c8ae88a04888a68">cgroup_walk_tree_begin</a></div><div class="ttdeci">int cgroup_walk_tree_begin(const char *controller, const char *base_path, int depth, void **handle, struct cgroup_file_info *info, int *base_level)</div><div class="ttdef"><b>Definition:</b> api.c:4567</div></div>
-<div class="ttc" id="agroup__group__iterators_html_ga926b70423b6c087c21a14670cd23cd7d"><div class="ttname"><a href="group__group__iterators.html#ga926b70423b6c087c21a14670cd23cd7d">cgroup_get_controller_next</a></div><div class="ttdeci">int cgroup_get_controller_next(void **handle, struct cgroup_mount_point *info)</div><div class="ttdef"><b>Definition:</b> api.c:4920</div></div>
-<div class="ttc" id="agroup__group__iterators_html_ga9c9b0f1921c205bd25bfc6c1d20486eb"><div class="ttname"><a href="group__group__iterators.html#ga9c9b0f1921c205bd25bfc6c1d20486eb">cgroup_get_subsys_mount_point_end</a></div><div class="ttdeci">int cgroup_get_subsys_mount_point_end(void **handle)</div><div class="ttdef"><b>Definition:</b> api.c:5746</div></div>
-<div class="ttc" id="agroup__group__iterators_html_gab485cda2bc9640bacbf61f1953ae750c"><div class="ttname"><a href="group__group__iterators.html#gab485cda2bc9640bacbf61f1953ae750c">cgroup_get_controller_end</a></div><div class="ttdeci">int cgroup_get_controller_end(void **handle)</div><div class="ttdef"><b>Definition:</b> api.c:4904</div></div>
-<div class="ttc" id="agroup__group__iterators_html_gaba386d9db6cadc6ad85c2552f63447bb"><div class="ttname"><a href="group__group__iterators.html#gaba386d9db6cadc6ad85c2552f63447bb">cgroup_read_stats_end</a></div><div class="ttdeci">int cgroup_read_stats_end(void **handle)</div><div class="ttdef"><b>Definition:</b> api.c:4766</div></div>
-<div class="ttc" id="agroup__group__iterators_html_gaced2fe331f19d599a3270db2440847cc"><div class="ttname"><a href="group__group__iterators.html#gaced2fe331f19d599a3270db2440847cc">cgroup_read_value_next</a></div><div class="ttdeci">int cgroup_read_value_next(void **handle, char *buffer, int max)</div><div class="ttdef"><b>Definition:</b> api.c:4708</div></div>
-<div class="ttc" id="agroup__group__iterators_html_gad348f041e283860cbf6bcea567e23a21"><div class="ttname"><a href="group__group__iterators.html#gad348f041e283860cbf6bcea567e23a21">cgroup_read_value_end</a></div><div class="ttdeci">int cgroup_read_value_end(void **handle)</div><div class="ttdef"><b>Definition:</b> api.c:4692</div></div>
-<div class="ttc" id="agroup__group__iterators_html_gad48ef653388ca6739a9b6bbb9d7da82e"><div class="ttname"><a href="group__group__iterators.html#gad48ef653388ca6739a9b6bbb9d7da82e">cgroup_get_all_controller_begin</a></div><div class="ttdeci">int cgroup_get_all_controller_begin(void **handle, struct controller_data *info)</div><div class="ttdef"><b>Definition:</b> api.c:5456</div></div>
-<div class="ttc" id="agroup__group__iterators_html_gad7218154192f733120e1025cc19d0a36"><div class="ttname"><a href="group__group__iterators.html#gad7218154192f733120e1025cc19d0a36">cgroup_get_task_begin</a></div><div class="ttdeci">int cgroup_get_task_begin(const char *cgroup, const char *controller, void **handle, pid_t *pid)</div><div class="ttdef"><b>Definition:</b> api.c:4871</div></div>
-<div class="ttc" id="agroup__group__iterators_html_gaeb955e5f4da551268380b1271d478816"><div class="ttname"><a href="group__group__iterators.html#gaeb955e5f4da551268380b1271d478816">cgroup_get_task_end</a></div><div class="ttdeci">int cgroup_get_task_end(void **handle)</div><div class="ttdef"><b>Definition:</b> api.c:4835</div></div>
-<div class="ttc" id="agroup__group__iterators_html_gaf3a0364682b7449ddccfb0862bbb565e"><div class="ttname"><a href="group__group__iterators.html#gaf3a0364682b7449ddccfb0862bbb565e">cgroup_get_task_next</a></div><div class="ttdeci">int cgroup_get_task_next(void **handle, pid_t *pid)</div><div class="ttdef"><b>Definition:</b> api.c:4849</div></div>
-<div class="ttc" id="agroup__group__iterators_html_gaf95587508fc15d74fd5ed0df58024be7"><div class="ttname"><a href="group__group__iterators.html#gaf95587508fc15d74fd5ed0df58024be7">cgroup_read_stats_next</a></div><div class="ttdeci">int cgroup_read_stats_next(void **handle, struct cgroup_stat *stat)</div><div class="ttdef"><b>Definition:</b> api.c:4784</div></div>
+<div class="ttc" id="agroup__group__iterators_html_ga645ec7a6206dffb32667e7a0e148edc8"><div class="ttname"><a href="group__group__iterators.html#ga645ec7a6206dffb32667e7a0e148edc8">cgroup_walk_tree_set_flags</a></div><div class="ttdeci">int cgroup_walk_tree_set_flags(void **handle, int flags)</div><div class="ttdef"><b>Definition:</b> api.c:4647</div></div>
+<div class="ttc" id="agroup__group__iterators_html_ga7b19f10c06abb96d8c8ae88a04888a68"><div class="ttname"><a href="group__group__iterators.html#ga7b19f10c06abb96d8c8ae88a04888a68">cgroup_walk_tree_begin</a></div><div class="ttdeci">int cgroup_walk_tree_begin(const char *controller, const char *base_path, int depth, void **handle, struct cgroup_file_info *info, int *base_level)</div><div class="ttdef"><b>Definition:</b> api.c:4582</div></div>
+<div class="ttc" id="agroup__group__iterators_html_ga926b70423b6c087c21a14670cd23cd7d"><div class="ttname"><a href="group__group__iterators.html#ga926b70423b6c087c21a14670cd23cd7d">cgroup_get_controller_next</a></div><div class="ttdeci">int cgroup_get_controller_next(void **handle, struct cgroup_mount_point *info)</div><div class="ttdef"><b>Definition:</b> api.c:4935</div></div>
+<div class="ttc" id="agroup__group__iterators_html_ga9378ee0f1f6e65900df8e25b3d7ce236"><div class="ttname"><a href="group__group__iterators.html#ga9378ee0f1f6e65900df8e25b3d7ce236">cgroup_read_value_begin</a></div><div class="ttdeci">int cgroup_read_value_begin(const char *const controller, const char *path, const char *const name, void **handle, char *buffer, int max)</div><div class="ttdef"><b>Definition:</b> api.c:4743</div></div>
+<div class="ttc" id="agroup__group__iterators_html_ga9c9b0f1921c205bd25bfc6c1d20486eb"><div class="ttname"><a href="group__group__iterators.html#ga9c9b0f1921c205bd25bfc6c1d20486eb">cgroup_get_subsys_mount_point_end</a></div><div class="ttdeci">int cgroup_get_subsys_mount_point_end(void **handle)</div><div class="ttdef"><b>Definition:</b> api.c:5761</div></div>
+<div class="ttc" id="agroup__group__iterators_html_gab485cda2bc9640bacbf61f1953ae750c"><div class="ttname"><a href="group__group__iterators.html#gab485cda2bc9640bacbf61f1953ae750c">cgroup_get_controller_end</a></div><div class="ttdeci">int cgroup_get_controller_end(void **handle)</div><div class="ttdef"><b>Definition:</b> api.c:4919</div></div>
+<div class="ttc" id="agroup__group__iterators_html_gaba386d9db6cadc6ad85c2552f63447bb"><div class="ttname"><a href="group__group__iterators.html#gaba386d9db6cadc6ad85c2552f63447bb">cgroup_read_stats_end</a></div><div class="ttdeci">int cgroup_read_stats_end(void **handle)</div><div class="ttdef"><b>Definition:</b> api.c:4781</div></div>
+<div class="ttc" id="agroup__group__iterators_html_gaced2fe331f19d599a3270db2440847cc"><div class="ttname"><a href="group__group__iterators.html#gaced2fe331f19d599a3270db2440847cc">cgroup_read_value_next</a></div><div class="ttdeci">int cgroup_read_value_next(void **handle, char *buffer, int max)</div><div class="ttdef"><b>Definition:</b> api.c:4723</div></div>
+<div class="ttc" id="agroup__group__iterators_html_gad348f041e283860cbf6bcea567e23a21"><div class="ttname"><a href="group__group__iterators.html#gad348f041e283860cbf6bcea567e23a21">cgroup_read_value_end</a></div><div class="ttdeci">int cgroup_read_value_end(void **handle)</div><div class="ttdef"><b>Definition:</b> api.c:4707</div></div>
+<div class="ttc" id="agroup__group__iterators_html_gad48ef653388ca6739a9b6bbb9d7da82e"><div class="ttname"><a href="group__group__iterators.html#gad48ef653388ca6739a9b6bbb9d7da82e">cgroup_get_all_controller_begin</a></div><div class="ttdeci">int cgroup_get_all_controller_begin(void **handle, struct controller_data *info)</div><div class="ttdef"><b>Definition:</b> api.c:5471</div></div>
+<div class="ttc" id="agroup__group__iterators_html_gad7218154192f733120e1025cc19d0a36"><div class="ttname"><a href="group__group__iterators.html#gad7218154192f733120e1025cc19d0a36">cgroup_get_task_begin</a></div><div class="ttdeci">int cgroup_get_task_begin(const char *cgroup, const char *controller, void **handle, pid_t *pid)</div><div class="ttdef"><b>Definition:</b> api.c:4886</div></div>
+<div class="ttc" id="agroup__group__iterators_html_gaeb955e5f4da551268380b1271d478816"><div class="ttname"><a href="group__group__iterators.html#gaeb955e5f4da551268380b1271d478816">cgroup_get_task_end</a></div><div class="ttdeci">int cgroup_get_task_end(void **handle)</div><div class="ttdef"><b>Definition:</b> api.c:4850</div></div>
+<div class="ttc" id="agroup__group__iterators_html_gaf3a0364682b7449ddccfb0862bbb565e"><div class="ttname"><a href="group__group__iterators.html#gaf3a0364682b7449ddccfb0862bbb565e">cgroup_get_task_next</a></div><div class="ttdeci">int cgroup_get_task_next(void **handle, pid_t *pid)</div><div class="ttdef"><b>Definition:</b> api.c:4864</div></div>
+<div class="ttc" id="agroup__group__iterators_html_gaf95587508fc15d74fd5ed0df58024be7"><div class="ttname"><a href="group__group__iterators.html#gaf95587508fc15d74fd5ed0df58024be7">cgroup_read_stats_next</a></div><div class="ttdeci">int cgroup_read_stats_next(void **handle, struct cgroup_stat *stat)</div><div class="ttdef"><b>Definition:</b> api.c:4799</div></div>
<div class="ttc" id="agroup__group__iterators_html_gga29a572cbc0c07e2b02dfa0f1ac0067d3abf3c31227768960bd6622d2562aae3e1"><div class="ttname"><a href="group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3abf3c31227768960bd6622d2562aae3e1">CGROUP_WALK_TYPE_POST_DIR</a></div><div class="ttdeci">@ CGROUP_WALK_TYPE_POST_DIR</div><div class="ttdef"><b>Definition:</b> iterators.h:99</div></div>
<div class="ttc" id="agroup__group__iterators_html_gga29a572cbc0c07e2b02dfa0f1ac0067d3af865296e6a0e55cff574fbb132b9f913"><div class="ttname"><a href="group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3af865296e6a0e55cff574fbb132b9f913">CGROUP_WALK_TYPE_PRE_DIR</a></div><div class="ttdeci">@ CGROUP_WALK_TYPE_PRE_DIR</div><div class="ttdef"><b>Definition:</b> iterators.h:86</div></div>
<div class="ttc" id="agroup__group__iterators_html_gga608b4aa32e2db58fed34771a6a272444a24e202c59f318e63ad8cafcc1b4b102b"><div class="ttname"><a href="group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a24e202c59f318e63ad8cafcc1b4b102b">CGROUP_FILE_TYPE_OTHER</a></div><div class="ttdeci">@ CGROUP_FILE_TYPE_OTHER</div><div class="ttdef"><b>Definition:</b> iterators.h:108</div></div>
<div class="ttc" id="astructcgroup__mount__point_html_a849ccf1e77fffd5d45304c6adf0d2100"><div class="ttname"><a href="structcgroup__mount__point.html#a849ccf1e77fffd5d45304c6adf0d2100">cgroup_mount_point::name</a></div><div class="ttdeci">char name[FILENAME_MAX]</div><div class="ttdef"><b>Definition:</b> iterators.h:314</div></div>
<div class="ttc" id="astructcgroup__mount__point_html_ad1e89dfc02cfd7341e2296086a4f251e"><div class="ttname"><a href="structcgroup__mount__point.html#ad1e89dfc02cfd7341e2296086a4f251e">cgroup_mount_point::path</a></div><div class="ttdeci">char path[FILENAME_MAX]</div><div class="ttdef"><b>Definition:</b> iterators.h:316</div></div>
<div class="ttc" id="astructcgroup__stat_html"><div class="ttname"><a href="structcgroup__stat.html">cgroup_stat</a></div><div class="ttdef"><b>Definition:</b> iterators.h:234</div></div>
-<div class="ttc" id="astructcgroup_html"><div class="ttname"><a href="structcgroup.html">cgroup</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:106</div></div>
+<div class="ttc" id="astructcgroup_html"><div class="ttname"><a href="structcgroup.html">cgroup</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:114</div></div>
<div class="ttc" id="astructcontroller__data_html"><div class="ttname"><a href="structcontroller__data.html">controller_data</a></div><div class="ttdef"><b>Definition:</b> iterators.h:356</div></div>
<div class="ttc" id="astructcontroller__data_html_a24be412cfb6c19f7a13a4bff9e55206e"><div class="ttname"><a href="structcontroller__data.html#a24be412cfb6c19f7a13a4bff9e55206e">controller_data::enabled</a></div><div class="ttdeci">int enabled</div><div class="ttdef"><b>Definition:</b> iterators.h:368</div></div>
<div class="ttc" id="astructcontroller__data_html_a25e316f55473ca2b333b0d7e0ca644b4"><div class="ttname"><a href="structcontroller__data.html#a25e316f55473ca2b333b0d7e0ca644b4">controller_data::hierarchy</a></div><div class="ttdeci">int hierarchy</div><div class="ttdef"><b>Definition:</b> iterators.h:364</div></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  </div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">/* cgget uses this field for values that span multiple lines */</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordtype">char</span> *multiline_value;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordtype">bool</span> dirty;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> };</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  </div>
-<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="structcgroup__controller.html"> 99</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__controller.html">cgroup_controller</a> {</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordtype">char</span> name[FILENAME_MAX];</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keyword">struct </span><a class="code" href="structcontrol__value.html">control_value</a> *values[CG_NV_MAX];</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keyword">struct </span><a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>;</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordtype">int</span> index;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  </div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="comment">/*</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment"> * The abstraction layer uses prev_name when there's an N->1 or</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="comment"> * 1->N relationship between cgroup v1 and v2 settings.</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="comment"> */</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordtype">char</span> *prev_name;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  </div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordtype">bool</span> dirty;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> };</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  </div>
-<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="structcgroup.html"> 106</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup.html">cgroup</a> {</div>
+<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="structcgroup__controller.html"> 106</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__controller.html">cgroup_controller</a> {</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordtype">char</span> name[FILENAME_MAX];</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keyword">struct </span><a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller[CG_CONTROLLER_MAX];</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordtype">int</span> index;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  uid_t tasks_uid;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  gid_t tasks_gid;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  mode_t task_fperm;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  uid_t control_uid;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  gid_t control_gid;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  mode_t control_fperm;</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  mode_t control_dperm;</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> };</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  </div>
-<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="structcg__mount__point.html"> 119</a></span> <span class="keyword">struct </span><a class="code" href="structcg__mount__point.html">cg_mount_point</a> {</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordtype">char</span> path[FILENAME_MAX];</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keyword">struct </span><a class="code" href="structcg__mount__point.html">cg_mount_point</a> *next;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> };</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  </div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="keyword">enum</span> cg_version_t {</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  CGROUP_UNK = 0,</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  CGROUP_V1,</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  CGROUP_V2,</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> };</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  </div>
-<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="structcg__mount__table__s.html"> 130</a></span> <span class="keyword">struct </span><a class="code" href="structcg__mount__table__s.html">cg_mount_table_s</a> {</div>
-<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="structcg__mount__table__s.html#a9704fa3ec3674f6d433345ea52b6aeef"> 132</a></span>  <span class="keywordtype">char</span> <a class="code" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>[FILENAME_MAX];</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keyword">struct </span><a class="code" href="structcg__mount__point.html">cg_mount_point</a> <a class="code" href="structcg__mount__table__s.html#a9704fa3ec3674f6d433345ea52b6aeef">mount</a>;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordtype">int</span> index;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keyword">enum</span> cg_version_t version;</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> };</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  </div>
-<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="structcgroup__rules__data.html"> 141</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__rules__data.html">cgroup_rules_data</a> {</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  pid_t pid; <span class="comment">/* pid of the process which needs to change group */</span></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  </div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="comment">/* Details of user under consideration for destination cgroup */</span></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keyword">struct </span>passwd *pw;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="comment">/* Gid of the process */</span></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  gid_t gid;</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> };</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  </div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="comment">/* A rule that maps UID/GID to a cgroup */</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="structcgroup__rule.html"> 151</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__rule.html">cgroup_rule</a> {</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  uid_t uid;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  gid_t gid;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordtype">bool</span> is_ignore;</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordtype">char</span> *procname;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordtype">char</span> username[LOGIN_NAME_MAX];</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keywordtype">char</span> destination[FILENAME_MAX];</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordtype">char</span> *controllers[MAX_MNT_ELEMENTS];</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keyword">struct </span><a class="code" href="structcgroup__rule.html">cgroup_rule</a> *next;</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> };</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  </div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="comment">/* Container for a list of rules */</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="structcgroup__rule__list.html"> 163</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__rule__list.html">cgroup_rule_list</a> {</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keyword">struct </span><a class="code" href="structcgroup__rule.html">cgroup_rule</a> *head;</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keyword">struct </span><a class="code" href="structcgroup__rule.html">cgroup_rule</a> *tail;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordtype">int</span> len;</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> };</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  </div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="comment">/*The walk_tree handle */</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="structcgroup__tree__handle.html"> 170</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__tree__handle.html">cgroup_tree_handle</a> {</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  FTS *fts;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordtype">int</span> flags;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> };</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  </div>
-<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="structcgroup__dictionary__item.html"> 182</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> {</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name;</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *value;</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keyword">struct </span><a class="code" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> *next;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> };</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  </div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="comment">/* Flags for cgroup_dictionary_create */</span></div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="preprocessor">#define CG_DICT_DONT_FREE_ITEMS 1</span></div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  </div>
-<div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="structcgroup__dictionary.html"> 205</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__dictionary.html">cgroup_dictionary</a> {</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keyword">struct </span><a class="code" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> *head;</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keyword">struct </span><a class="code" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> *tail;</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordtype">int</span> flags;</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> };</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  </div>
-<div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="structcgroup__dictionary__iterator.html"> 212</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__dictionary__iterator.html">cgroup_dictionary_iterator</a> {</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keyword">struct </span><a class="code" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> *item;</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> };</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  </div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="keyword">extern</span> __thread <span class="keywordtype">int</span> last_errno;</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  </div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="keyword">extern</span> jmp_buf parser_error_env;</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  </div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="comment">/* Internal API */</span></div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="keywordtype">char</span> *cg_build_path(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">char</span> *path, <span class="keyword">const</span> <span class="keywordtype">char</span> *type);</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="keywordtype">int</span> cgroup_get_uid_gid_from_procfs(pid_t pid, uid_t *euid, gid_t *egid);</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="keywordtype">int</span> cgroup_get_procname_from_procfs(pid_t pid, <span class="keywordtype">char</span> **procname);</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="keywordtype">int</span> cg_mkdir_p(<span class="keyword">const</span> <span class="keywordtype">char</span> *path);</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="keyword">struct </span><a class="code" href="structcgroup.html">cgroup</a> *create_cgroup_from_name_value_pairs(<span class="keyword">const</span> <span class="keywordtype">char</span> *name,</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keyword">struct</span> <a class="code" href="structcontrol__value.html">control_value</a> *name_value, <span class="keywordtype">int</span> nv_number);</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="keywordtype">void</span> init_cgroup_table(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *cgroups, <span class="keywordtype">size_t</span> count);</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  </div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="comment">/*</span></div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="comment"> * Main mounting structures</span></div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structcg__mount__table__s.html">cg_mount_table_s</a> cg_mount_table[CG_CONTROLLER_MAX];</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="keyword">extern</span> pthread_rwlock_t cg_mount_table_lock;</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  </div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="comment">/*</span></div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="comment"> * config related structures</span></div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  </div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="keyword">extern</span> __thread <span class="keywordtype">char</span> *cg_namespace_table[CG_CONTROLLER_MAX];</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keyword">struct </span><a class="code" href="structcontrol__value.html">control_value</a> *values[CG_NV_MAX];</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keyword">struct </span><a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordtype">int</span> index;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keyword">enum</span> cg_version_t version;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> };</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  </div>
+<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="structcgroup.html"> 114</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup.html">cgroup</a> {</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordtype">char</span> name[FILENAME_MAX];</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keyword">struct </span><a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller[CG_CONTROLLER_MAX];</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordtype">int</span> index;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  uid_t tasks_uid;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  gid_t tasks_gid;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  mode_t task_fperm;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  uid_t control_uid;</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  gid_t control_gid;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  mode_t control_fperm;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  mode_t control_dperm;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> };</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  </div>
+<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="structcg__mount__point.html"> 127</a></span> <span class="keyword">struct </span><a class="code" href="structcg__mount__point.html">cg_mount_point</a> {</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordtype">char</span> path[FILENAME_MAX];</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keyword">struct </span><a class="code" href="structcg__mount__point.html">cg_mount_point</a> *next;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> };</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  </div>
+<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="structcg__mount__table__s.html"> 132</a></span> <span class="keyword">struct </span><a class="code" href="structcg__mount__table__s.html">cg_mount_table_s</a> {</div>
+<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="structcg__mount__table__s.html#a9704fa3ec3674f6d433345ea52b6aeef"> 134</a></span>  <span class="keywordtype">char</span> <a class="code" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>[FILENAME_MAX];</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keyword">struct </span><a class="code" href="structcg__mount__point.html">cg_mount_point</a> <a class="code" href="structcg__mount__table__s.html#a9704fa3ec3674f6d433345ea52b6aeef">mount</a>;</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordtype">int</span> index;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keyword">enum</span> cg_version_t version;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> };</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  </div>
+<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="structcgroup__rules__data.html"> 143</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__rules__data.html">cgroup_rules_data</a> {</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  pid_t pid; <span class="comment">/* pid of the process which needs to change group */</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  </div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="comment">/* Details of user under consideration for destination cgroup */</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keyword">struct </span>passwd *pw;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="comment">/* Gid of the process */</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  gid_t gid;</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> };</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  </div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="comment">/* A rule that maps UID/GID to a cgroup */</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="structcgroup__rule.html"> 153</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__rule.html">cgroup_rule</a> {</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  uid_t uid;</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  gid_t gid;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordtype">bool</span> is_ignore;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keywordtype">char</span> *procname;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordtype">char</span> username[LOGIN_NAME_MAX];</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordtype">char</span> destination[FILENAME_MAX];</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordtype">char</span> *controllers[MAX_MNT_ELEMENTS];</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keyword">struct </span><a class="code" href="structcgroup__rule.html">cgroup_rule</a> *next;</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> };</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  </div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="comment">/* Container for a list of rules */</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="structcgroup__rule__list.html"> 165</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__rule__list.html">cgroup_rule_list</a> {</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keyword">struct </span><a class="code" href="structcgroup__rule.html">cgroup_rule</a> *head;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keyword">struct </span><a class="code" href="structcgroup__rule.html">cgroup_rule</a> *tail;</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordtype">int</span> len;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> };</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  </div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="comment">/*The walk_tree handle */</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="structcgroup__tree__handle.html"> 172</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__tree__handle.html">cgroup_tree_handle</a> {</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  FTS *fts;</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordtype">int</span> flags;</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> };</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  </div>
+<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="structcgroup__dictionary__item.html"> 184</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> {</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name;</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *value;</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keyword">struct </span><a class="code" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> *next;</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> };</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  </div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="comment">/* Flags for cgroup_dictionary_create */</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="preprocessor">#define CG_DICT_DONT_FREE_ITEMS 1</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  </div>
+<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="structcgroup__dictionary.html"> 207</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__dictionary.html">cgroup_dictionary</a> {</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keyword">struct </span><a class="code" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> *head;</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keyword">struct </span><a class="code" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> *tail;</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordtype">int</span> flags;</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> };</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  </div>
+<div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="structcgroup__dictionary__iterator.html"> 214</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__dictionary__iterator.html">cgroup_dictionary_iterator</a> {</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keyword">struct </span><a class="code" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> *item;</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> };</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  </div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="keyword">extern</span> __thread <span class="keywordtype">int</span> last_errno;</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  </div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="keyword">extern</span> jmp_buf parser_error_env;</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  </div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="comment">/* Internal API */</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="keywordtype">char</span> *cg_build_path(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">char</span> *path, <span class="keyword">const</span> <span class="keywordtype">char</span> *type);</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="keywordtype">int</span> cgroup_get_uid_gid_from_procfs(pid_t pid, uid_t *euid, gid_t *egid);</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="keywordtype">int</span> cgroup_get_procname_from_procfs(pid_t pid, <span class="keywordtype">char</span> **procname);</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="keywordtype">int</span> cg_mkdir_p(<span class="keyword">const</span> <span class="keywordtype">char</span> *path);</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="keyword">struct </span><a class="code" href="structcgroup.html">cgroup</a> *create_cgroup_from_name_value_pairs(<span class="keyword">const</span> <span class="keywordtype">char</span> *name,</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keyword">struct</span> <a class="code" href="structcontrol__value.html">control_value</a> *name_value, <span class="keywordtype">int</span> nv_number);</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="keywordtype">void</span> init_cgroup_table(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *cgroups, <span class="keywordtype">size_t</span> count);</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  </div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="comment">/*</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="comment"> * Main mounting structures</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="comment"> */</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structcg__mount__table__s.html">cg_mount_table_s</a> cg_mount_table[CG_CONTROLLER_MAX];</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="keyword">extern</span> pthread_rwlock_t cg_mount_table_lock;</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  </div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="comment">/*</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="comment"> * config related structures</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  </div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="comment">/*</span></div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="comment"> * config related API</span></div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="keywordtype">int</span> cgroup_config_insert_cgroup(<span class="keywordtype">char</span> *cg_name);</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="keywordtype">int</span> cgroup_config_parse_controller_options(<span class="keywordtype">char</span> *controller,</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__dictionary.html">cgroup_dictionary</a> *values);</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="keywordtype">int</span> template_config_insert_cgroup(<span class="keywordtype">char</span> *cg_name);</div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="keywordtype">int</span> template_config_parse_controller_options(<span class="keywordtype">char</span> *controller,</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__dictionary.html">cgroup_dictionary</a> *values);</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="keywordtype">int</span> template_config_group_task_perm(<span class="keywordtype">char</span> *perm_type, <span class="keywordtype">char</span> *value);</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="keywordtype">int</span> template_config_group_admin_perm(<span class="keywordtype">char</span> *perm_type, <span class="keywordtype">char</span> *value);</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="keywordtype">int</span> cgroup_config_group_task_perm(<span class="keywordtype">char</span> *perm_type, <span class="keywordtype">char</span> *value);</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="keywordtype">int</span> cgroup_config_group_admin_perm(<span class="keywordtype">char</span> *perm_type, <span class="keywordtype">char</span> *value);</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="keywordtype">int</span> cgroup_config_insert_into_mount_table(<span class="keywordtype">char</span> *<a class="code" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>, <span class="keywordtype">char</span> *mount_point);</div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="keywordtype">int</span> cgroup_config_insert_into_namespace_table(<span class="keywordtype">char</span> *<a class="code" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>, <span class="keywordtype">char</span> *mount_point);</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="keywordtype">void</span> cgroup_config_cleanup_mount_table(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="keywordtype">void</span> cgroup_config_cleanup_namespace_table(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="keywordtype">int</span> cgroup_config_define_default(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  </div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_create(<span class="keyword">struct</span> <a class="code" href="structcgroup__dictionary.html">cgroup_dictionary</a> **dict,</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="keywordtype">int</span> flags);</div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_add(<span class="keyword">struct</span> <a class="code" href="structcgroup__dictionary.html">cgroup_dictionary</a> *dict,</div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *value);</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_free(<span class="keyword">struct</span> <a class="code" href="structcgroup__dictionary.html">cgroup_dictionary</a> *dict);</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  </div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_iterator_begin(<span class="keyword">struct</span> <a class="code" href="structcgroup__dictionary.html">cgroup_dictionary</a> *dict,</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keywordtype">void</span> **handle, <span class="keyword">const</span> <span class="keywordtype">char</span> **<a class="code" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> **value);</div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_iterator_next(<span class="keywordtype">void</span> **handle,</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> **<a class="code" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> **value);</div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="keyword">extern</span> <span class="keywordtype">void</span> cgroup_dictionary_iterator_end(<span class="keywordtype">void</span> **handle);</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  </div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="keywordtype">int</span> cg_chmod_path(<span class="keyword">const</span> <span class="keywordtype">char</span> *path, mode_t mode, <span class="keywordtype">int</span> owner_is_umask);</div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  </div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="keywordtype">int</span> cgroup_get_controller_version(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> controller,</div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keyword">enum</span> cg_version_t * <span class="keyword">const</span> version);</div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  </div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="keywordtype">int</span> cgroup_build_tasks_procs_path(<span class="keywordtype">char</span> * <span class="keyword">const</span> path,</div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keywordtype">size_t</span> path_sz, <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> cg_name,</div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> ctrl_name);</div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  </div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="keywordtype">char</span> *cg_build_path_locked(<span class="keyword">const</span> <span class="keywordtype">char</span> *setting, <span class="keywordtype">char</span> *path,</div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *controller);</div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  </div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="keywordtype">int</span> cgroup_fill_cgc(<span class="keyword">struct</span> dirent *ctrl_dir, <span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>,</div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *cgc, <span class="keywordtype">int</span> cg_index);</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="keyword">extern</span> __thread <span class="keywordtype">char</span> *cg_namespace_table[CG_CONTROLLER_MAX];</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  </div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="comment">/*</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="comment"> * config related API</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="comment"> */</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="keywordtype">int</span> cgroup_config_insert_cgroup(<span class="keywordtype">char</span> *cg_name);</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="keywordtype">int</span> cgroup_config_parse_controller_options(<span class="keywordtype">char</span> *controller,</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__dictionary.html">cgroup_dictionary</a> *values);</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="keywordtype">int</span> template_config_insert_cgroup(<span class="keywordtype">char</span> *cg_name);</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="keywordtype">int</span> template_config_parse_controller_options(<span class="keywordtype">char</span> *controller,</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__dictionary.html">cgroup_dictionary</a> *values);</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="keywordtype">int</span> template_config_group_task_perm(<span class="keywordtype">char</span> *perm_type, <span class="keywordtype">char</span> *value);</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="keywordtype">int</span> template_config_group_admin_perm(<span class="keywordtype">char</span> *perm_type, <span class="keywordtype">char</span> *value);</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="keywordtype">int</span> cgroup_config_group_task_perm(<span class="keywordtype">char</span> *perm_type, <span class="keywordtype">char</span> *value);</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="keywordtype">int</span> cgroup_config_group_admin_perm(<span class="keywordtype">char</span> *perm_type, <span class="keywordtype">char</span> *value);</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="keywordtype">int</span> cgroup_config_insert_into_mount_table(<span class="keywordtype">char</span> *<a class="code" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>, <span class="keywordtype">char</span> *mount_point);</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="keywordtype">int</span> cgroup_config_insert_into_namespace_table(<span class="keywordtype">char</span> *<a class="code" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>, <span class="keywordtype">char</span> *mount_point);</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="keywordtype">void</span> cgroup_config_cleanup_mount_table(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="keywordtype">void</span> cgroup_config_cleanup_namespace_table(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="keywordtype">int</span> cgroup_config_define_default(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  </div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_create(<span class="keyword">struct</span> <a class="code" href="structcgroup__dictionary.html">cgroup_dictionary</a> **dict,</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keywordtype">int</span> flags);</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_add(<span class="keyword">struct</span> <a class="code" href="structcgroup__dictionary.html">cgroup_dictionary</a> *dict,</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *value);</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_free(<span class="keyword">struct</span> <a class="code" href="structcgroup__dictionary.html">cgroup_dictionary</a> *dict);</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  </div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_iterator_begin(<span class="keyword">struct</span> <a class="code" href="structcgroup__dictionary.html">cgroup_dictionary</a> *dict,</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keywordtype">void</span> **handle, <span class="keyword">const</span> <span class="keywordtype">char</span> **<a class="code" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> **value);</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_iterator_next(<span class="keywordtype">void</span> **handle,</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> **<a class="code" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> **value);</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="keyword">extern</span> <span class="keywordtype">void</span> cgroup_dictionary_iterator_end(<span class="keywordtype">void</span> **handle);</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  </div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="keywordtype">int</span> cg_chmod_path(<span class="keyword">const</span> <span class="keywordtype">char</span> *path, mode_t mode, <span class="keywordtype">int</span> owner_is_umask);</div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  </div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="keywordtype">int</span> cgroup_build_tasks_procs_path(<span class="keywordtype">char</span> * <span class="keyword">const</span> path,</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keywordtype">size_t</span> path_sz, <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> cg_name,</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> ctrl_name);</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  </div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="keywordtype">char</span> *cg_build_path_locked(<span class="keyword">const</span> <span class="keywordtype">char</span> *setting, <span class="keywordtype">char</span> *path,</div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *controller);</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  </div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="keywordtype">int</span> cgroup_fill_cgc(<span class="keyword">struct</span> dirent *ctrl_dir, <span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>,</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *cgc, <span class="keywordtype">int</span> cg_index);</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  </div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="keywordtype">int</span> cgroup_test_subsys_mounted(<span class="keyword">const</span> <span class="keywordtype">char</span> *ctrl_name);</div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  </div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="keywordtype">int</span> cgroup_test_subsys_mounted(<span class="keyword">const</span> <span class="keywordtype">char</span> *ctrl_name);</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  </div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="preprocessor">#ifdef UNIT_TEST</span></div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  </div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="preprocessor">#define TEST_PROC_PID_CGROUP_FILE "test-procpidcgroup"</span></div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  </div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="keywordtype">int</span> cgroup_parse_rules_options(<span class="keywordtype">char</span> *options,</div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__rule.html">cgroup_rule</a> * <span class="keyword">const</span> rule);</div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  </div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="keywordtype">int</span> cg_get_cgroups_from_proc_cgroups(pid_t pid, <span class="keywordtype">char</span> *cgroup_list[],</div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keywordtype">char</span> *controller_list[],</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keywordtype">int</span> list_len);</div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  </div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="keywordtype">bool</span> cgroup_compare_ignore_rule(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structcgroup__rule.html">cgroup_rule</a> * <span class="keyword">const</span> rule,</div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  pid_t pid, <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> procname);</div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  </div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <span class="keywordtype">bool</span> cgroup_compare_wildcard_procname(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> rule_procname,</div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> procname);</div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  </div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <span class="keywordtype">int</span> cgroup_process_v1_mnt(<span class="keywordtype">char</span> *controllers[], <span class="keyword">struct</span> mntent *ent,</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="keywordtype">int</span> *mnt_tbl_idx);</div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  </div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> <span class="keywordtype">int</span> cgroup_process_v2_mnt(<span class="keyword">struct</span> mntent *ent, <span class="keywordtype">int</span> *mnt_tbl_idx);</div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  </div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="keywordtype">int</span> cgroup_set_values_recursive(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> base,</div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> controller,</div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="keywordtype">bool</span> ignore_non_dirty_failures);</div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  </div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="keywordtype">int</span> cgroup_chown_chmod_tasks(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> cg_path,</div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  uid_t uid, gid_t gid, mode_t fperm);</div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  </div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="keywordtype">int</span> cgroupv2_subtree_control(<span class="keyword">const</span> <span class="keywordtype">char</span> *path, <span class="keyword">const</span> <span class="keywordtype">char</span> *ctrl_name,</div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <span class="keywordtype">bool</span> enable);</div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="keywordtype">int</span> cgroup_copy_controller_values(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst,</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> src);</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  </div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="keywordtype">int</span> cgroup_remove_value(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> controller,</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> <a class="code" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>);</div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  </div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <span class="keywordtype">void</span> cgroup_free_controller(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *ctrl);</div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  </div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="preprocessor">#ifdef UNIT_TEST</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  </div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="preprocessor">#define TEST_PROC_PID_CGROUP_FILE "test-procpidcgroup"</span></div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  </div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="keywordtype">int</span> cgroup_parse_rules_options(<span class="keywordtype">char</span> *options,</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__rule.html">cgroup_rule</a> * <span class="keyword">const</span> rule);</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  </div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="keywordtype">int</span> cg_get_cgroups_from_proc_cgroups(pid_t pid, <span class="keywordtype">char</span> *cgroup_list[],</div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keywordtype">char</span> *controller_list[],</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <span class="keywordtype">int</span> list_len);</div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  </div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="keywordtype">int</span> cgroupv2_get_subtree_control(<span class="keyword">const</span> <span class="keywordtype">char</span> *path,</div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *ctrl_name,</div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="keywordtype">bool</span> * <span class="keyword">const</span> enabled);</div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  </div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="keywordtype">int</span> cgroupv2_controller_enabled(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> cg_name,</div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> ctrl_name);</div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  </div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="preprocessor">#endif </span><span class="comment">/* UNIT_TEST */</span><span class="preprocessor"></span></div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="keywordtype">bool</span> cgroup_compare_ignore_rule(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structcgroup__rule.html">cgroup_rule</a> * <span class="keyword">const</span> rule,</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  pid_t pid, <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> procname);</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  </div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="keywordtype">bool</span> cgroup_compare_wildcard_procname(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> rule_procname,</div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> procname);</div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  </div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="keywordtype">int</span> cgroup_process_v1_mnt(<span class="keywordtype">char</span> *controllers[], <span class="keyword">struct</span> mntent *ent,</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <span class="keywordtype">int</span> *mnt_tbl_idx);</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  </div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> } <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  </div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="preprocessor">#endif</span></div>
-<div class="ttc" id="astructcg__mount__point_html"><div class="ttname"><a href="structcg__mount__point.html">cg_mount_point</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:119</div></div>
-<div class="ttc" id="astructcg__mount__table__s_html"><div class="ttname"><a href="structcg__mount__table__s.html">cg_mount_table_s</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:130</div></div>
-<div class="ttc" id="astructcg__mount__table__s_html_a9704fa3ec3674f6d433345ea52b6aeef"><div class="ttname"><a href="structcg__mount__table__s.html#a9704fa3ec3674f6d433345ea52b6aeef">cg_mount_table_s::mount</a></div><div class="ttdeci">struct cg_mount_point mount</div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:136</div></div>
-<div class="ttc" id="astructcg__mount__table__s_html_aa9b2cc62fb6cb35334f3d85d660c9fa6"><div class="ttname"><a href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">cg_mount_table_s::name</a></div><div class="ttdeci">char name[FILENAME_MAX]</div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:132</div></div>
-<div class="ttc" id="astructcgroup__controller_html"><div class="ttname"><a href="structcgroup__controller.html">cgroup_controller</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:99</div></div>
-<div class="ttc" id="astructcgroup__dictionary__item_html"><div class="ttname"><a href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:182</div></div>
-<div class="ttc" id="astructcgroup__dictionary__iterator_html"><div class="ttname"><a href="structcgroup__dictionary__iterator.html">cgroup_dictionary_iterator</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:212</div></div>
-<div class="ttc" id="astructcgroup__dictionary_html"><div class="ttname"><a href="structcgroup__dictionary.html">cgroup_dictionary</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:205</div></div>
-<div class="ttc" id="astructcgroup__rule__list_html"><div class="ttname"><a href="structcgroup__rule__list.html">cgroup_rule_list</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:163</div></div>
-<div class="ttc" id="astructcgroup__rule_html"><div class="ttname"><a href="structcgroup__rule.html">cgroup_rule</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:151</div></div>
-<div class="ttc" id="astructcgroup__rules__data_html"><div class="ttname"><a href="structcgroup__rules__data.html">cgroup_rules_data</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:141</div></div>
-<div class="ttc" id="astructcgroup__tree__handle_html"><div class="ttname"><a href="structcgroup__tree__handle.html">cgroup_tree_handle</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:170</div></div>
-<div class="ttc" id="astructcgroup_html"><div class="ttname"><a href="structcgroup.html">cgroup</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:106</div></div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="keywordtype">int</span> cgroup_process_v2_mnt(<span class="keyword">struct</span> mntent *ent, <span class="keywordtype">int</span> *mnt_tbl_idx);</div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  </div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="keywordtype">int</span> cgroup_set_values_recursive(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> base,</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> controller,</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keywordtype">bool</span> ignore_non_dirty_failures);</div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  </div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="keywordtype">int</span> cgroup_chown_chmod_tasks(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> cg_path,</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  uid_t uid, gid_t gid, mode_t fperm);</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  </div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="keywordtype">int</span> cgroupv2_subtree_control(<span class="keyword">const</span> <span class="keywordtype">char</span> *path, <span class="keyword">const</span> <span class="keywordtype">char</span> *ctrl_name,</div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="keywordtype">bool</span> enable);</div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  </div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="keywordtype">int</span> cgroupv2_get_subtree_control(<span class="keyword">const</span> <span class="keywordtype">char</span> *path,</div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *ctrl_name,</div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keywordtype">bool</span> * <span class="keyword">const</span> enabled);</div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  </div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="keywordtype">int</span> cgroupv2_controller_enabled(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> cg_name,</div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> ctrl_name);</div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  </div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="preprocessor">#endif </span><span class="comment">/* UNIT_TEST */</span><span class="preprocessor"></span></div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  </div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> } <span class="comment">/* extern "C" */</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  </div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="preprocessor">#endif</span></div>
+<div class="ttc" id="astructcg__mount__point_html"><div class="ttname"><a href="structcg__mount__point.html">cg_mount_point</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:127</div></div>
+<div class="ttc" id="astructcg__mount__table__s_html"><div class="ttname"><a href="structcg__mount__table__s.html">cg_mount_table_s</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:132</div></div>
+<div class="ttc" id="astructcg__mount__table__s_html_a9704fa3ec3674f6d433345ea52b6aeef"><div class="ttname"><a href="structcg__mount__table__s.html#a9704fa3ec3674f6d433345ea52b6aeef">cg_mount_table_s::mount</a></div><div class="ttdeci">struct cg_mount_point mount</div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:138</div></div>
+<div class="ttc" id="astructcg__mount__table__s_html_aa9b2cc62fb6cb35334f3d85d660c9fa6"><div class="ttname"><a href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">cg_mount_table_s::name</a></div><div class="ttdeci">char name[FILENAME_MAX]</div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:134</div></div>
+<div class="ttc" id="astructcgroup__controller_html"><div class="ttname"><a href="structcgroup__controller.html">cgroup_controller</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:106</div></div>
+<div class="ttc" id="astructcgroup__dictionary__item_html"><div class="ttname"><a href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:184</div></div>
+<div class="ttc" id="astructcgroup__dictionary__iterator_html"><div class="ttname"><a href="structcgroup__dictionary__iterator.html">cgroup_dictionary_iterator</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:214</div></div>
+<div class="ttc" id="astructcgroup__dictionary_html"><div class="ttname"><a href="structcgroup__dictionary.html">cgroup_dictionary</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:207</div></div>
+<div class="ttc" id="astructcgroup__rule__list_html"><div class="ttname"><a href="structcgroup__rule__list.html">cgroup_rule_list</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:165</div></div>
+<div class="ttc" id="astructcgroup__rule_html"><div class="ttname"><a href="structcgroup__rule.html">cgroup_rule</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:153</div></div>
+<div class="ttc" id="astructcgroup__rules__data_html"><div class="ttname"><a href="structcgroup__rules__data.html">cgroup_rules_data</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:143</div></div>
+<div class="ttc" id="astructcgroup__tree__handle_html"><div class="ttname"><a href="structcgroup__tree__handle.html">cgroup_tree_handle</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:172</div></div>
+<div class="ttc" id="astructcgroup_html"><div class="ttname"><a href="structcgroup.html">cgroup</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:114</div></div>
<div class="ttc" id="astructcontrol__value_html"><div class="ttname"><a href="structcontrol__value.html">control_value</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:90</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <libcgroup/tasks.h></span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <libcgroup/config.h></span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <libcgroup/log.h></span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#undef _LIBCGROUP_H_INSIDE</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#endif </span><span class="comment">/* _LIBCGROUP_H */</span><span class="preprocessor"></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <libcgroup/tools.h></span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#undef _LIBCGROUP_H_INSIDE</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#endif </span><span class="comment">/* _LIBCGROUP_H */</span><span class="preprocessor"></span></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a class="el" href="group__group__config.html" target="_self">5. Configuration</a></td><td class="desc"></td></tr>
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a class="el" href="group__group__errors.html" target="_self">6. Error handling</a></td><td class="desc"></td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a class="el" href="group__group__groups.html" target="_self">2. Group manipulation API</a></td><td class="desc"></td></tr>
-<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a class="el" href="group__group__init.html" target="_self">1. Initialization</a></td><td class="desc"></td></tr>
-<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a class="el" href="group__group__iterators.html" target="_self">3. Iterators</a></td><td class="desc"></td></tr>
-<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a class="el" href="group__group__log.html" target="_self">7. Logging</a></td><td class="desc"></td></tr>
-<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a class="el" href="group__group__tasks.html" target="_self">4. Manipulation with tasks</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a class="el" href="group__group__iterators.html" target="_self">3. Iterators</a></td><td class="desc"></td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a class="el" href="group__group__log.html" target="_self">7. Logging</a></td><td class="desc"></td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a class="el" href="group__group__tasks.html" target="_self">4. Manipulation with tasks</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
var searchData=
[
- ['1_2e_20initialization_0',['1. Initialization',['../group__group__init.html',1,'']]]
+ ['2_2e_20group_20manipulation_20api_0',['2. Group manipulation API',['../group__group__groups.html',1,'']]]
];
var searchData=
[
- ['2_2e_20group_20manipulation_20api_1',['2. Group manipulation API',['../group__group__groups.html',1,'']]]
+ ['3_2e_20iterators_1',['3. Iterators',['../group__group__iterators.html',1,'']]]
];
var searchData=
[
- ['name_144',['name',['../structcgroup__mount__point.html#a849ccf1e77fffd5d45304c6adf0d2100',1,'cgroup_mount_point::name()'],['../structcontroller__data.html#a5474be4d8cc4553c94ca81c6a93f5a18',1,'controller_data::name()'],['../structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6',1,'cg_mount_table_s::name()']]],
- ['no_5fperms_145',['NO_PERMS',['../group__group__groups.html#gad4ffad2eccf9fcbfa8a551e269e0ad58',1,'groups.h']]],
- ['no_5fuid_5fgid_146',['NO_UID_GID',['../group__group__groups.html#ga2a7954a987e3fbf8eabcc94cf381353e',1,'groups.h']]],
- ['num_5fcgroups_147',['num_cgroups',['../structcontroller__data.html#acd075c0bb48062bf720b68d0a30116eb',1,'controller_data']]]
+ ['parent_148',['parent',['../structcgroup__file__info.html#a739c7f87593e36d8589d3ffa80b57059',1,'cgroup_file_info']]],
+ ['parent_5finfo_149',['parent_info',['../structparent__info.html',1,'']]],
+ ['path_150',['path',['../structcgroup__file__info.html#a801424e68139c930e40ea24be4d96a68',1,'cgroup_file_info::path()'],['../structcgroup__mount__point.html#ad1e89dfc02cfd7341e2296086a4f251e',1,'cgroup_mount_point::path()']]]
];
var searchData=
[
- ['parent_148',['parent',['../structcgroup__file__info.html#a739c7f87593e36d8589d3ffa80b57059',1,'cgroup_file_info']]],
- ['parent_5finfo_149',['parent_info',['../structparent__info.html',1,'']]],
- ['path_150',['path',['../structcgroup__file__info.html#a801424e68139c930e40ea24be4d96a68',1,'cgroup_file_info::path()'],['../structcgroup__mount__point.html#ad1e89dfc02cfd7341e2296086a4f251e',1,'cgroup_mount_point::path()']]]
+ ['readme_151',['README',['../md_README.html',1,'']]]
];
var searchData=
[
- ['readme_151',['README',['../md_README.html',1,'']]]
+ ['the_20libcgroup_20security_20vulnerability_20handling_20process_152',['The libcgroup Security Vulnerability Handling Process',['../md_SECURITY.html',1,'']]],
+ ['todo_20list_153',['Todo List',['../todo.html',1,'']]],
+ ['type_154',['type',['../structcgroup__file__info.html#a955506601f440d05cb11e4ee6b455c55',1,'cgroup_file_info']]]
];
var searchData=
[
- ['the_20libcgroup_20security_20vulnerability_20handling_20process_152',['The libcgroup Security Vulnerability Handling Process',['../md_SECURITY.html',1,'']]],
- ['todo_20list_153',['Todo List',['../todo.html',1,'']]],
- ['type_154',['type',['../structcgroup__file__info.html#a955506601f440d05cb11e4ee6b455c55',1,'cgroup_file_info']]]
+ ['unchanged_5fpid_155',['unchanged_pid',['../structunchanged__pid.html',1,'']]]
];
+++ /dev/null
-<!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><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_14.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
-</script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
- if (event.data == "take_focus") {
- var elem = searchResults.NavNext(0);
- if (elem) elem.focus();
- }
-});
-/* @license-end */
-</script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['unchanged_5fpid_155',['unchanged_pid',['../structunchanged__pid.html',1,'']]]
-];
var searchData=
[
- ['3_2e_20iterators_2',['3. Iterators',['../group__group__iterators.html',1,'']]]
+ ['4_2e_20manipulation_20with_20tasks_2',['4. Manipulation with tasks',['../group__group__tasks.html',1,'']]]
];
var searchData=
[
- ['4_2e_20manipulation_20with_20tasks_3',['4. Manipulation with tasks',['../group__group__tasks.html',1,'']]]
+ ['5_2e_20configuration_3',['5. Configuration',['../group__group__config.html',1,'']]]
];
var searchData=
[
- ['5_2e_20configuration_4',['5. Configuration',['../group__group__config.html',1,'']]]
+ ['6_2e_20error_20handling_4',['6. Error handling',['../group__group__errors.html',1,'']]]
];
var searchData=
[
- ['6_2e_20error_20handling_5',['6. Error handling',['../group__group__errors.html',1,'']]]
+ ['7_2e_20logging_5',['7. Logging',['../group__group__log.html',1,'']]]
];
var searchData=
[
- ['7_2e_20logging_6',['7. Logging',['../group__group__log.html',1,'']]]
+ ['array_5fparent_5finfo_6',['array_parent_info',['../structarray__parent__info.html',1,'']]],
+ ['array_5funchanged_7',['array_unchanged',['../structarray__unchanged.html',1,'']]]
];
var searchData=
[
- ['array_5fparent_5finfo_7',['array_parent_info',['../structarray__parent__info.html',1,'']]],
- ['array_5funchanged_8',['array_unchanged',['../structarray__unchanged.html',1,'']]]
+ ['black_5flist_5ftype_8',['black_list_type',['../structblack__list__type.html',1,'']]]
];
var searchData=
[
- ['black_5flist_5ftype_9',['black_list_type',['../structblack__list__type.html',1,'']]]
+ ['cg_5fchmod_5frecursive_9',['cg_chmod_recursive',['../group__group__groups.html#gaef0bf6cd480f2dcb5e964de151a27dd1',1,'cg_chmod_recursive(struct cgroup *cgroup, mode_t dir_mode, int dirm_change, mode_t file_mode, int filem_change): api.c'],['../group__group__groups.html#gaef0bf6cd480f2dcb5e964de151a27dd1',1,'cg_chmod_recursive(struct cgroup *cgroup, mode_t dir_mode, int dirm_change, mode_t file_mode, int filem_change): api.c']]],
+ ['cg_5fmount_5fpoint_10',['cg_mount_point',['../structcg__mount__point.html',1,'']]],
+ ['cg_5fmount_5ftable_5fs_11',['cg_mount_table_s',['../structcg__mount__table__s.html',1,'']]],
+ ['cg_5fvalue_5fmax_12',['CG_VALUE_MAX',['../group__group__iterators.html#ga55d2eac2af703794651d344c073566f5',1,'iterators.h']]],
+ ['cgroup_13',['cgroup',['../structcgroup.html',1,'']]],
+ ['cgroup_5fabstraction_5fmap_14',['cgroup_abstraction_map',['../structcgroup__abstraction__map.html',1,'']]],
+ ['cgroup_5fadd_5fall_5fcontrollers_15',['cgroup_add_all_controllers',['../group__group__groups.html#gae870d271b789b5c54c2e3d35de3cd6f9',1,'cgroup_add_all_controllers(struct cgroup *cgroup): wrapper.c'],['../group__group__groups.html#gae870d271b789b5c54c2e3d35de3cd6f9',1,'cgroup_add_all_controllers(struct cgroup *cgroup): wrapper.c']]],
+ ['cgroup_5fadd_5fcontroller_16',['cgroup_add_controller',['../group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130',1,'cgroup_add_controller(struct cgroup *cgroup, const char *name): wrapper.c'],['../group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130',1,'cgroup_add_controller(struct cgroup *cgroup, const char *name): wrapper.c']]],
+ ['cgroup_5fadd_5fvalue_5fbool_17',['cgroup_add_value_bool',['../group__group__groups.html#ga4b191a600f84b00ea7afd12c01d918f3',1,'cgroup_add_value_bool(struct cgroup_controller *controller, const char *name, bool value): wrapper.c'],['../group__group__groups.html#ga4b191a600f84b00ea7afd12c01d918f3',1,'cgroup_add_value_bool(struct cgroup_controller *controller, const char *name, bool value): wrapper.c']]],
+ ['cgroup_5fadd_5fvalue_5fint64_18',['cgroup_add_value_int64',['../group__group__groups.html#ga6c973bb5ce99e7a91def2032f23d7087',1,'cgroup_add_value_int64(struct cgroup_controller *controller, const char *name, int64_t value): wrapper.c'],['../group__group__groups.html#ga6c973bb5ce99e7a91def2032f23d7087',1,'cgroup_add_value_int64(struct cgroup_controller *controller, const char *name, int64_t value): wrapper.c']]],
+ ['cgroup_5fadd_5fvalue_5fstring_19',['cgroup_add_value_string',['../group__group__groups.html#ga4817c68ab791c09c07b663c29b3fb029',1,'cgroup_add_value_string(struct cgroup_controller *controller, const char *name, const char *value): wrapper.c'],['../group__group__groups.html#ga4817c68ab791c09c07b663c29b3fb029',1,'cgroup_add_value_string(struct cgroup_controller *controller, const char *name, const char *value): wrapper.c']]],
+ ['cgroup_5fadd_5fvalue_5fuint64_20',['cgroup_add_value_uint64',['../group__group__groups.html#gad9d2216205b96278c626122f8d5e63bb',1,'cgroup_add_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value): wrapper.c'],['../group__group__groups.html#gad9d2216205b96278c626122f8d5e63bb',1,'cgroup_add_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value): wrapper.c']]],
+ ['cgroup_5fattach_5ftask_21',['cgroup_attach_task',['../group__group__tasks.html#ga43414ac2b1fc73bbb46b6278c7500188',1,'cgroup_attach_task(struct cgroup *cgroup): api.c'],['../group__group__tasks.html#ga43414ac2b1fc73bbb46b6278c7500188',1,'cgroup_attach_task(struct cgroup *cgroup): api.c']]],
+ ['cgroup_5fattach_5ftask_5fpid_22',['cgroup_attach_task_pid',['../group__group__tasks.html#ga9c7532681986d156ac3f6bac1fcf6aab',1,'cgroup_attach_task_pid(struct cgroup *cgroup, pid_t tid): api.c'],['../group__group__tasks.html#ga9c7532681986d156ac3f6bac1fcf6aab',1,'cgroup_attach_task_pid(struct cgroup *cgroup, pid_t tid): api.c']]],
+ ['cgroup_5fchange_5fall_5fcgroups_23',['cgroup_change_all_cgroups',['../group__group__tasks.html#gafc69658b012b6f1c11ba078ffccd70a2',1,'cgroup_change_all_cgroups(void): api.c'],['../group__group__tasks.html#gafc69658b012b6f1c11ba078ffccd70a2',1,'cgroup_change_all_cgroups(void): api.c']]],
+ ['cgroup_5fchange_5fcgroup_5fflags_24',['cgroup_change_cgroup_flags',['../group__group__tasks.html#ga368e7b8e19b3943ab6fb50e76a09e6ea',1,'cgroup_change_cgroup_flags(uid_t uid, gid_t gid, const char *procname, pid_t pid, int flags): api.c'],['../group__group__tasks.html#ga368e7b8e19b3943ab6fb50e76a09e6ea',1,'cgroup_change_cgroup_flags(uid_t uid, gid_t gid, const char *procname, pid_t pid, int flags): api.c']]],
+ ['cgroup_5fchange_5fcgroup_5fpath_25',['cgroup_change_cgroup_path',['../group__group__tasks.html#ga2d4677baef780c003fc6fba6b5dc78f2',1,'cgroup_change_cgroup_path(const char *path, pid_t pid, const char *const controllers[]): api.c'],['../group__group__tasks.html#ga2d4677baef780c003fc6fba6b5dc78f2',1,'cgroup_change_cgroup_path(const char *dest, pid_t pid, const char *const controllers[]): api.c']]],
+ ['cgroup_5fchange_5fcgroup_5fuid_5fgid_26',['cgroup_change_cgroup_uid_gid',['../group__group__tasks.html#ga5eab78a922dbacd368360f03c70146be',1,'cgroup_change_cgroup_uid_gid(uid_t uid, gid_t gid, pid_t pid): api.c'],['../group__group__tasks.html#ga5eab78a922dbacd368360f03c70146be',1,'cgroup_change_cgroup_uid_gid(uid_t uid, gid_t gid, pid_t pid): api.c']]],
+ ['cgroup_5fchange_5fcgroup_5fuid_5fgid_5fflags_27',['cgroup_change_cgroup_uid_gid_flags',['../group__group__tasks.html#gae472183a7c9a37826ef15c77014c47fb',1,'cgroup_change_cgroup_uid_gid_flags(uid_t uid, gid_t gid, pid_t pid, int flags): api.c'],['../group__group__tasks.html#gae472183a7c9a37826ef15c77014c47fb',1,'cgroup_change_cgroup_uid_gid_flags(uid_t uid, gid_t gid, pid_t pid, int flags): api.c']]],
+ ['cgroup_5fcompare_5fcgroup_28',['cgroup_compare_cgroup',['../group__group__groups.html#ga86898b59e50335f99fe84a11fa38d3fc',1,'cgroup_compare_cgroup(struct cgroup *cgroup_a, struct cgroup *cgroup_b): wrapper.c'],['../group__group__groups.html#ga86898b59e50335f99fe84a11fa38d3fc',1,'cgroup_compare_cgroup(struct cgroup *cgroup_a, struct cgroup *cgroup_b): wrapper.c']]],
+ ['cgroup_5fcompare_5fcontrollers_29',['cgroup_compare_controllers',['../group__group__groups.html#gab1725c50c49cec4b0bdad1f26b150ca7',1,'cgroup_compare_controllers(struct cgroup_controller *cgca, struct cgroup_controller *cgcb): wrapper.c'],['../group__group__groups.html#gab1725c50c49cec4b0bdad1f26b150ca7',1,'cgroup_compare_controllers(struct cgroup_controller *cgca, struct cgroup_controller *cgcb): wrapper.c']]],
+ ['cgroup_5fconfig_5fcreate_5ftemplate_5fgroup_30',['cgroup_config_create_template_group',['../group__group__config.html#ga72066260cd31ceed7ecc1a648eba37f2',1,'cgroup_config_create_template_group(struct cgroup *cgroup, char *template_name, int flags): config.c'],['../group__group__config.html#ga72066260cd31ceed7ecc1a648eba37f2',1,'cgroup_config_create_template_group(struct cgroup *cgroup, char *template_name, int flags): config.c']]],
+ ['cgroup_5fconfig_5fload_5fconfig_31',['cgroup_config_load_config',['../group__group__config.html#ga8adfaca013333acf922a167f55b84140',1,'cgroup_config_load_config(const char *pathname): config.c'],['../group__group__config.html#ga8adfaca013333acf922a167f55b84140',1,'cgroup_config_load_config(const char *pathname): config.c']]],
+ ['cgroup_5fconfig_5fset_5fdefault_32',['cgroup_config_set_default',['../group__group__config.html#ga2d3a252b2c0c61c8f64cb1fc41e370ea',1,'cgroup_config_set_default(struct cgroup *new_default): config.c'],['../group__group__config.html#ga2d3a252b2c0c61c8f64cb1fc41e370ea',1,'cgroup_config_set_default(struct cgroup *new_default): config.c']]],
+ ['cgroup_5fconfig_5funload_5fconfig_33',['cgroup_config_unload_config',['../group__group__config.html#gaff77affa0b80ccf507b4b46cc0a8c085',1,'cgroup_config_unload_config(const char *pathname, int flags): config.c'],['../group__group__config.html#gaff77affa0b80ccf507b4b46cc0a8c085',1,'cgroup_config_unload_config(const char *pathname, int flags): config.c']]],
+ ['cgroup_5fcontroller_34',['cgroup_controller',['../structcgroup__controller.html',1,'']]],
+ ['cgroup_5fcopy_5fcgroup_35',['cgroup_copy_cgroup',['../group__group__groups.html#gaa981a95e0917d3167601a4c1b392336a',1,'cgroup_copy_cgroup(struct cgroup *dst, struct cgroup *src): api.c'],['../group__group__groups.html#gaa981a95e0917d3167601a4c1b392336a',1,'cgroup_copy_cgroup(struct cgroup *dst, struct cgroup *src): api.c']]],
+ ['cgroup_5fcreate_5fcgroup_36',['cgroup_create_cgroup',['../group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7',1,'cgroup_create_cgroup(struct cgroup *cgroup, int ignore_ownership): api.c'],['../group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7',1,'cgroup_create_cgroup(struct cgroup *cgroup, int ignore_ownership): api.c']]],
+ ['cgroup_5fcreate_5fcgroup_5ffrom_5fparent_37',['cgroup_create_cgroup_from_parent',['../group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62',1,'cgroup_create_cgroup_from_parent(struct cgroup *cgroup, int ignore_ownership): api.c'],['../group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62',1,'cgroup_create_cgroup_from_parent(struct cgroup *cgroup, int ignore_ownership): api.c']]],
+ ['cgroup_5fdelete_5fcgroup_38',['cgroup_delete_cgroup',['../group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565',1,'cgroup_delete_cgroup(struct cgroup *cgroup, int ignore_migration): api.c'],['../group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565',1,'cgroup_delete_cgroup(struct cgroup *cgroup, int ignore_migration): api.c']]],
+ ['cgroup_5fdelete_5fcgroup_5fext_39',['cgroup_delete_cgroup_ext',['../group__group__groups.html#ga860c1ec70189c969b2c8373fc1e96d36',1,'cgroup_delete_cgroup_ext(struct cgroup *cgroup, int flags): api.c'],['../group__group__groups.html#ga860c1ec70189c969b2c8373fc1e96d36',1,'cgroup_delete_cgroup_ext(struct cgroup *cgroup, int flags): api.c']]],
+ ['cgroup_5fdictionary_40',['cgroup_dictionary',['../structcgroup__dictionary.html',1,'']]],
+ ['cgroup_5fdictionary_5fitem_41',['cgroup_dictionary_item',['../structcgroup__dictionary__item.html',1,'']]],
+ ['cgroup_5fdictionary_5fiterator_42',['cgroup_dictionary_iterator',['../structcgroup__dictionary__iterator.html',1,'']]],
+ ['cgroup_5ffile_5finfo_43',['cgroup_file_info',['../structcgroup__file__info.html',1,'']]],
+ ['cgroup_5ffile_5ftype_44',['cgroup_file_type',['../group__group__iterators.html#ga608b4aa32e2db58fed34771a6a272444',1,'iterators.h']]],
+ ['cgroup_5ffile_5ftype_5fdir_45',['CGROUP_FILE_TYPE_DIR',['../group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a5418798fc4bf9634429c6af167a0e7c3',1,'iterators.h']]],
+ ['cgroup_5ffile_5ftype_5ffile_46',['CGROUP_FILE_TYPE_FILE',['../group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444ad925cc45f1b34fe80e14fc6b05269740',1,'iterators.h']]],
+ ['cgroup_5ffile_5ftype_5fother_47',['CGROUP_FILE_TYPE_OTHER',['../group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a24e202c59f318e63ad8cafcc1b4b102b',1,'iterators.h']]],
+ ['cgroup_5ffree_48',['cgroup_free',['../group__group__groups.html#gab20fdb1ae479f8baac482336abf73900',1,'cgroup_free(struct cgroup **cgroup): wrapper.c'],['../group__group__groups.html#gab20fdb1ae479f8baac482336abf73900',1,'cgroup_free(struct cgroup **cgroup): wrapper.c']]],
+ ['cgroup_5ffree_5fcontrollers_49',['cgroup_free_controllers',['../group__group__groups.html#ga92d27c9ff0d655838642a7aa68497596',1,'cgroup_free_controllers(struct cgroup *cgroup): wrapper.c'],['../group__group__groups.html#ga92d27c9ff0d655838642a7aa68497596',1,'cgroup_free_controllers(struct cgroup *cgroup): wrapper.c']]],
+ ['cgroup_5fget_5fall_5fcontroller_5fbegin_50',['cgroup_get_all_controller_begin',['../group__group__iterators.html#gad48ef653388ca6739a9b6bbb9d7da82e',1,'cgroup_get_all_controller_begin(void **handle, struct controller_data *info): api.c'],['../group__group__iterators.html#gad48ef653388ca6739a9b6bbb9d7da82e',1,'cgroup_get_all_controller_begin(void **handle, struct controller_data *info): api.c']]],
+ ['cgroup_5fget_5fall_5fcontroller_5fend_51',['cgroup_get_all_controller_end',['../group__group__iterators.html#ga0c467d42a2c9a916a0edd339a6d7afc8',1,'cgroup_get_all_controller_end(void **handle): api.c'],['../group__group__iterators.html#ga0c467d42a2c9a916a0edd339a6d7afc8',1,'cgroup_get_all_controller_end(void **handle): api.c']]],
+ ['cgroup_5fget_5fall_5fcontroller_5fnext_52',['cgroup_get_all_controller_next',['../group__group__iterators.html#ga3d98a04b29b1fe409db1114b7aa76809',1,'cgroup_get_all_controller_next(void **handle, struct controller_data *info): api.c'],['../group__group__iterators.html#ga3d98a04b29b1fe409db1114b7aa76809',1,'cgroup_get_all_controller_next(void **handle, struct controller_data *info): api.c']]],
+ ['cgroup_5fget_5fcgroup_53',['cgroup_get_cgroup',['../group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6',1,'cgroup_get_cgroup(struct cgroup *cgroup): api.c'],['../group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6',1,'cgroup_get_cgroup(struct cgroup *cgroup): api.c']]],
+ ['cgroup_5fget_5fcgroup_5fname_54',['cgroup_get_cgroup_name',['../group__group__groups.html#gac9b5ff481de08ba8fdfcbd42940d2cbf',1,'cgroup_get_cgroup_name(struct cgroup *cgroup): wrapper.c'],['../group__group__groups.html#gac9b5ff481de08ba8fdfcbd42940d2cbf',1,'cgroup_get_cgroup_name(struct cgroup *cgroup): wrapper.c']]],
+ ['cgroup_5fget_5fcontroller_55',['cgroup_get_controller',['../group__group__groups.html#ga8335b0aec59c8f845639a7404affce05',1,'cgroup_get_controller(struct cgroup *cgroup, const char *name): wrapper.c'],['../group__group__groups.html#ga8335b0aec59c8f845639a7404affce05',1,'cgroup_get_controller(struct cgroup *cgroup, const char *name): wrapper.c']]],
+ ['cgroup_5fget_5fcontroller_5fbegin_56',['cgroup_get_controller_begin',['../group__group__iterators.html#ga5f9f21138f9b18912a16b21a45b53c44',1,'cgroup_get_controller_begin(void **handle, struct cgroup_mount_point *info): api.c'],['../group__group__iterators.html#ga5f9f21138f9b18912a16b21a45b53c44',1,'cgroup_get_controller_begin(void **handle, struct cgroup_mount_point *info): api.c']]],
+ ['cgroup_5fget_5fcontroller_5fend_57',['cgroup_get_controller_end',['../group__group__iterators.html#gab485cda2bc9640bacbf61f1953ae750c',1,'cgroup_get_controller_end(void **handle): api.c'],['../group__group__iterators.html#gab485cda2bc9640bacbf61f1953ae750c',1,'cgroup_get_controller_end(void **handle): api.c']]],
+ ['cgroup_5fget_5fcontroller_5fnext_58',['cgroup_get_controller_next',['../group__group__iterators.html#ga926b70423b6c087c21a14670cd23cd7d',1,'cgroup_get_controller_next(void **handle, struct cgroup_mount_point *info): api.c'],['../group__group__iterators.html#ga926b70423b6c087c21a14670cd23cd7d',1,'cgroup_get_controller_next(void **handle, struct cgroup_mount_point *info): api.c']]],
+ ['cgroup_5fget_5fcontroller_5fversion_59',['cgroup_get_controller_version',['../group__group__groups.html#ga452d8c5e95c8d694e26e7efda045360f',1,'cgroup_get_controller_version(const char *const controller, enum cg_version_t *const version): api.c'],['../group__group__groups.html#ga452d8c5e95c8d694e26e7efda045360f',1,'cgroup_get_controller_version(const char *const controller, enum cg_version_t *const version): api.c']]],
+ ['cgroup_5fget_5fcurrent_5fcontroller_5fpath_60',['cgroup_get_current_controller_path',['../group__group__tasks.html#ga6f2c17b99cf2526cb46df4769eb3f46e',1,'cgroup_get_current_controller_path(pid_t pid, const char *controller, char **current_path): api.c'],['../group__group__tasks.html#ga6f2c17b99cf2526cb46df4769eb3f46e',1,'cgroup_get_current_controller_path(pid_t pid, const char *controller, char **current_path): api.c']]],
+ ['cgroup_5fget_5flast_5ferrno_61',['cgroup_get_last_errno',['../group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46',1,'cgroup_get_last_errno(void): api.c'],['../group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46',1,'cgroup_get_last_errno(void): api.c']]],
+ ['cgroup_5fget_5fprocs_62',['cgroup_get_procs',['../group__group__groups.html#ga08a4fe913d59f61a39e61b8b02537dc2',1,'cgroup_get_procs(char *name, char *controller, pid_t **pids, int *size): api.c'],['../group__group__groups.html#ga08a4fe913d59f61a39e61b8b02537dc2',1,'cgroup_get_procs(char *name, char *controller, pid_t **pids, int *size): api.c']]],
+ ['cgroup_5fget_5fsubsys_5fmount_5fpoint_5fbegin_63',['cgroup_get_subsys_mount_point_begin',['../group__group__iterators.html#ga18a3c6fe7da42b9da96ce34dce1e31b8',1,'cgroup_get_subsys_mount_point_begin(const char *controller, void **handle, char *path): api.c'],['../group__group__iterators.html#ga18a3c6fe7da42b9da96ce34dce1e31b8',1,'cgroup_get_subsys_mount_point_begin(const char *controller, void **handle, char *path): api.c']]],
+ ['cgroup_5fget_5fsubsys_5fmount_5fpoint_5fend_64',['cgroup_get_subsys_mount_point_end',['../group__group__iterators.html#ga9c9b0f1921c205bd25bfc6c1d20486eb',1,'cgroup_get_subsys_mount_point_end(void **handle): api.c'],['../group__group__iterators.html#ga9c9b0f1921c205bd25bfc6c1d20486eb',1,'cgroup_get_subsys_mount_point_end(void **handle): api.c']]],
+ ['cgroup_5fget_5fsubsys_5fmount_5fpoint_5fnext_65',['cgroup_get_subsys_mount_point_next',['../group__group__iterators.html#ga3d66997158cb8a334317923ad94cc789',1,'cgroup_get_subsys_mount_point_next(void **handle, char *path): api.c'],['../group__group__iterators.html#ga3d66997158cb8a334317923ad94cc789',1,'cgroup_get_subsys_mount_point_next(void **handle, char *path): api.c']]],
+ ['cgroup_5fget_5ftask_5fbegin_66',['cgroup_get_task_begin',['../group__group__iterators.html#gad7218154192f733120e1025cc19d0a36',1,'cgroup_get_task_begin(const char *cgroup, const char *controller, void **handle, pid_t *pid): api.c'],['../group__group__iterators.html#gad7218154192f733120e1025cc19d0a36',1,'cgroup_get_task_begin(const char *cgroup, const char *controller, void **handle, pid_t *pid): api.c']]],
+ ['cgroup_5fget_5ftask_5fend_67',['cgroup_get_task_end',['../group__group__iterators.html#gaeb955e5f4da551268380b1271d478816',1,'cgroup_get_task_end(void **handle): api.c'],['../group__group__iterators.html#gaeb955e5f4da551268380b1271d478816',1,'cgroup_get_task_end(void **handle): api.c']]],
+ ['cgroup_5fget_5ftask_5fnext_68',['cgroup_get_task_next',['../group__group__iterators.html#gaf3a0364682b7449ddccfb0862bbb565e',1,'cgroup_get_task_next(void **handle, pid_t *pid): api.c'],['../group__group__iterators.html#gaf3a0364682b7449ddccfb0862bbb565e',1,'cgroup_get_task_next(void **handle, pid_t *pid): api.c']]],
+ ['cgroup_5fget_5fuid_5fgid_69',['cgroup_get_uid_gid',['../group__group__groups.html#ga007d21c304d9cc6e948dc0ae51ecfa86',1,'cgroup_get_uid_gid(struct cgroup *cgroup, uid_t *tasks_uid, gid_t *tasks_gid, uid_t *control_uid, gid_t *control_gid): wrapper.c'],['../group__group__groups.html#ga007d21c304d9cc6e948dc0ae51ecfa86',1,'cgroup_get_uid_gid(struct cgroup *cgroup, uid_t *tasks_uid, gid_t *tasks_gid, uid_t *control_uid, gid_t *control_gid): wrapper.c']]],
+ ['cgroup_5fget_5fvalue_5fbool_70',['cgroup_get_value_bool',['../group__group__groups.html#gab95007148eac89b7e935d93a4524787b',1,'cgroup_get_value_bool(struct cgroup_controller *controller, const char *name, bool *value): wrapper.c'],['../group__group__groups.html#gab95007148eac89b7e935d93a4524787b',1,'cgroup_get_value_bool(struct cgroup_controller *controller, const char *name, bool *value): wrapper.c']]],
+ ['cgroup_5fget_5fvalue_5fint64_71',['cgroup_get_value_int64',['../group__group__groups.html#ga0fe9b05f26b3cab21fc446c9a2700526',1,'cgroup_get_value_int64(struct cgroup_controller *controller, const char *name, int64_t *value): wrapper.c'],['../group__group__groups.html#ga0fe9b05f26b3cab21fc446c9a2700526',1,'cgroup_get_value_int64(struct cgroup_controller *controller, const char *name, int64_t *value): wrapper.c']]],
+ ['cgroup_5fget_5fvalue_5fname_72',['cgroup_get_value_name',['../group__group__groups.html#ga16ca75fd16eda7cfc642421111e9a331',1,'cgroup_get_value_name(struct cgroup_controller *controller, int index): wrapper.c'],['../group__group__groups.html#ga16ca75fd16eda7cfc642421111e9a331',1,'cgroup_get_value_name(struct cgroup_controller *controller, int index): wrapper.c']]],
+ ['cgroup_5fget_5fvalue_5fname_5fcount_73',['cgroup_get_value_name_count',['../group__group__groups.html#ga25115085978ce2a8d671e7876cc49c1d',1,'cgroup_get_value_name_count(struct cgroup_controller *controller): wrapper.c'],['../group__group__groups.html#ga25115085978ce2a8d671e7876cc49c1d',1,'cgroup_get_value_name_count(struct cgroup_controller *controller): wrapper.c']]],
+ ['cgroup_5fget_5fvalue_5fstring_74',['cgroup_get_value_string',['../group__group__groups.html#gafaa51e5ffe09f8ad05585a1d3b6f7fa9',1,'cgroup_get_value_string(struct cgroup_controller *controller, const char *name, char **value): wrapper.c'],['../group__group__groups.html#gafaa51e5ffe09f8ad05585a1d3b6f7fa9',1,'cgroup_get_value_string(struct cgroup_controller *controller, const char *name, char **value): wrapper.c']]],
+ ['cgroup_5fget_5fvalue_5fuint64_75',['cgroup_get_value_uint64',['../group__group__groups.html#ga951861259c0373895bfb637fce337312',1,'cgroup_get_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t *value): wrapper.c'],['../group__group__groups.html#ga951861259c0373895bfb637fce337312',1,'cgroup_get_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t *value): wrapper.c']]],
+ ['cgroup_5fgroup_5fspec_76',['cgroup_group_spec',['../structcgroup__group__spec.html',1,'']]],
+ ['cgroup_5finit_5frules_5fcache_77',['cgroup_init_rules_cache',['../group__group__tasks.html#gad7fa5a2c4db08d31da5bfbecaf482d3d',1,'cgroup_init_rules_cache(void): api.c'],['../group__group__tasks.html#gad7fa5a2c4db08d31da5bfbecaf482d3d',1,'cgroup_init_rules_cache(void): api.c']]],
+ ['cgroup_5finit_5ftemplates_5fcache_78',['cgroup_init_templates_cache',['../group__group__config.html#ga6f8c41bb920565e674787fe6dabaef00',1,'cgroup_init_templates_cache(char *pathname): config.c'],['../group__group__config.html#ga6f8c41bb920565e674787fe6dabaef00',1,'cgroup_init_templates_cache(char *pathname): config.c']]],
+ ['cgroup_5fload_5ftemplates_5fcache_5ffrom_5ffiles_79',['cgroup_load_templates_cache_from_files',['../group__group__config.html#ga924860998c37da53cababe24163fc89b',1,'cgroup_load_templates_cache_from_files(int *file_index): config.c'],['../group__group__config.html#ga924860998c37da53cababe24163fc89b',1,'cgroup_load_templates_cache_from_files(int *file_index): config.c']]],
+ ['cgroup_5flog_80',['cgroup_log',['../group__group__log.html#gab514ad5d83422ddfe479bdf651e80958',1,'cgroup_log(int loglevel, const char *fmt,...): log.c'],['../group__group__log.html#gab514ad5d83422ddfe479bdf651e80958',1,'cgroup_log(int level, const char *fmt,...): log.c']]],
+ ['cgroup_5flog_5fdebug_81',['CGROUP_LOG_DEBUG',['../group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa86b4157fb38d9f8053c6b7429bd26c72',1,'log.h']]],
+ ['cgroup_5flog_5ferror_82',['CGROUP_LOG_ERROR',['../group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa4dd44215cd3553e79dbf91eb9ca418a2',1,'log.h']]],
+ ['cgroup_5flog_5finfo_83',['CGROUP_LOG_INFO',['../group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aad66ab51dba078ffc3b1c6d397053f9e2',1,'log.h']]],
+ ['cgroup_5flog_5flevel_84',['cgroup_log_level',['../group__group__log.html#ga98b7aea5d23411e70c7e3da54d90233a',1,'log.h']]],
+ ['cgroup_5flog_5fwarning_85',['CGROUP_LOG_WARNING',['../group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aaa99ec9e854a543901bddf854d1960057',1,'log.h']]],
+ ['cgroup_5fmodify_5fcgroup_86',['cgroup_modify_cgroup',['../group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071',1,'cgroup_modify_cgroup(struct cgroup *cgroup): api.c'],['../group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071',1,'cgroup_modify_cgroup(struct cgroup *cgroup): api.c']]],
+ ['cgroup_5fmount_5fpoint_87',['cgroup_mount_point',['../structcgroup__mount__point.html',1,'']]],
+ ['cgroup_5fnew_5fcgroup_88',['cgroup_new_cgroup',['../group__group__groups.html#ga6cd4733e5982ac2c92ee3cb3dbd10a31',1,'cgroup_new_cgroup(const char *name): wrapper.c'],['../group__group__groups.html#ga6cd4733e5982ac2c92ee3cb3dbd10a31',1,'cgroup_new_cgroup(const char *name): wrapper.c']]],
+ ['cgroup_5fparse_5flog_5flevel_5fstr_89',['cgroup_parse_log_level_str',['../group__group__log.html#gaa364a06aee0e99228a1e6a26b25a9794',1,'cgroup_parse_log_level_str(const char *levelstr): log.c'],['../group__group__log.html#gaa364a06aee0e99228a1e6a26b25a9794',1,'cgroup_parse_log_level_str(const char *levelstr): log.c']]],
+ ['cgroup_5fprint_5frules_5fconfig_90',['cgroup_print_rules_config',['../group__group__tasks.html#gac4e3f29cfbdc3d77f08c9fe60857274a',1,'cgroup_print_rules_config(FILE *fp): api.c'],['../group__group__tasks.html#gac4e3f29cfbdc3d77f08c9fe60857274a',1,'cgroup_print_rules_config(FILE *fp): api.c']]],
+ ['cgroup_5fread_5fstats_5fbegin_91',['cgroup_read_stats_begin',['../group__group__iterators.html#ga1138e47f124f0f634586db5e0c4ae5de',1,'cgroup_read_stats_begin(const char *controller, const char *path, void **handle, struct cgroup_stat *stat): api.c'],['../group__group__iterators.html#ga1138e47f124f0f634586db5e0c4ae5de',1,'cgroup_read_stats_begin(const char *controller, const char *path, void **handle, struct cgroup_stat *cgroup_stat): api.c']]],
+ ['cgroup_5fread_5fstats_5fend_92',['cgroup_read_stats_end',['../group__group__iterators.html#gaba386d9db6cadc6ad85c2552f63447bb',1,'cgroup_read_stats_end(void **handle): api.c'],['../group__group__iterators.html#gaba386d9db6cadc6ad85c2552f63447bb',1,'cgroup_read_stats_end(void **handle): api.c']]],
+ ['cgroup_5fread_5fstats_5fnext_93',['cgroup_read_stats_next',['../group__group__iterators.html#gaf95587508fc15d74fd5ed0df58024be7',1,'cgroup_read_stats_next(void **handle, struct cgroup_stat *stat): api.c'],['../group__group__iterators.html#gaf95587508fc15d74fd5ed0df58024be7',1,'cgroup_read_stats_next(void **handle, struct cgroup_stat *cgroup_stat): api.c']]],
+ ['cgroup_5fread_5fvalue_5fbegin_94',['cgroup_read_value_begin',['../group__group__iterators.html#ga9378ee0f1f6e65900df8e25b3d7ce236',1,'cgroup_read_value_begin(const char *const controller, const char *path, const char *const name, void **handle, char *buffer, int max): api.c'],['../group__group__iterators.html#ga9378ee0f1f6e65900df8e25b3d7ce236',1,'cgroup_read_value_begin(const char *const controller, const char *path, const char *const name, void **handle, char *buffer, int max): api.c']]],
+ ['cgroup_5fread_5fvalue_5fend_95',['cgroup_read_value_end',['../group__group__iterators.html#gad348f041e283860cbf6bcea567e23a21',1,'cgroup_read_value_end(void **handle): api.c'],['../group__group__iterators.html#gad348f041e283860cbf6bcea567e23a21',1,'cgroup_read_value_end(void **handle): api.c']]],
+ ['cgroup_5fread_5fvalue_5fnext_96',['cgroup_read_value_next',['../group__group__iterators.html#gaced2fe331f19d599a3270db2440847cc',1,'cgroup_read_value_next(void **handle, char *buffer, int max): api.c'],['../group__group__iterators.html#gaced2fe331f19d599a3270db2440847cc',1,'cgroup_read_value_next(void **handle, char *buffer, int max): api.c']]],
+ ['cgroup_5fregister_5funchanged_5fprocess_97',['cgroup_register_unchanged_process',['../group__group__tasks.html#ga64f7967d6d5edfff9afddaa6a6974b1c',1,'cgroup_register_unchanged_process(pid_t pid, int flags): api.c'],['../group__group__tasks.html#ga64f7967d6d5edfff9afddaa6a6974b1c',1,'cgroup_register_unchanged_process(pid_t pid, int flags): api.c']]],
+ ['cgroup_5freload_5fcached_5frules_98',['cgroup_reload_cached_rules',['../group__group__tasks.html#gaf81ebd9cb5575c75b4c85f385ebda1ce',1,'cgroup_reload_cached_rules(void): api.c'],['../group__group__tasks.html#gaf81ebd9cb5575c75b4c85f385ebda1ce',1,'cgroup_reload_cached_rules(void): api.c']]],
+ ['cgroup_5freload_5fcached_5ftemplates_99',['cgroup_reload_cached_templates',['../group__group__config.html#ga89fe0d7943b29cc10d57b07abcdfa7b5',1,'cgroup_reload_cached_templates(char *pathname): config.c'],['../group__group__config.html#ga89fe0d7943b29cc10d57b07abcdfa7b5',1,'cgroup_reload_cached_templates(char *pathname): config.c']]],
+ ['cgroup_5frule_100',['cgroup_rule',['../structcgroup__rule.html',1,'']]],
+ ['cgroup_5frule_5flist_101',['cgroup_rule_list',['../structcgroup__rule__list.html',1,'']]],
+ ['cgroup_5frules_5fdata_102',['cgroup_rules_data',['../structcgroup__rules__data.html',1,'']]],
+ ['cgroup_5fset_5fdefault_5flogger_103',['cgroup_set_default_logger',['../group__group__log.html#gab1457ce518dcde0b9f3c14ec9efa2de7',1,'cgroup_set_default_logger(int loglevel): log.c'],['../group__group__log.html#gab1457ce518dcde0b9f3c14ec9efa2de7',1,'cgroup_set_default_logger(int level): log.c']]],
+ ['cgroup_5fset_5flogger_104',['cgroup_set_logger',['../group__group__log.html#ga76d7032206f9b9d1c0be1a71a68c43d0',1,'cgroup_set_logger(cgroup_logger_callback logger, int loglevel, void *userdata): log.c'],['../group__group__log.html#ga76d7032206f9b9d1c0be1a71a68c43d0',1,'cgroup_set_logger(cgroup_logger_callback logger, int loglevel, void *userdata): log.c']]],
+ ['cgroup_5fset_5floglevel_105',['cgroup_set_loglevel',['../group__group__log.html#gaac5fe2352800ff62465a5abe649d5b8c',1,'cgroup_set_loglevel(int loglevel): log.c'],['../group__group__log.html#gaac5fe2352800ff62465a5abe649d5b8c',1,'cgroup_set_loglevel(int loglevel): log.c']]],
+ ['cgroup_5fset_5fpermissions_106',['cgroup_set_permissions',['../group__group__groups.html#gaa0400f1ff2fba7fbb6db82d97039d92b',1,'cgroup_set_permissions(struct cgroup *cgroup, mode_t control_dperm, mode_t control_fperm, mode_t task_fperm): api.c'],['../group__group__groups.html#gaa0400f1ff2fba7fbb6db82d97039d92b',1,'cgroup_set_permissions(struct cgroup *cgroup, mode_t control_dperm, mode_t control_fperm, mode_t task_fperm): api.c']]],
+ ['cgroup_5fset_5fuid_5fgid_107',['cgroup_set_uid_gid',['../group__group__groups.html#ga53b9e13e30660c805ab5773d69397a43',1,'cgroup_set_uid_gid(struct cgroup *cgroup, uid_t tasks_uid, gid_t tasks_gid, uid_t control_uid, gid_t control_gid): wrapper.c'],['../group__group__groups.html#ga53b9e13e30660c805ab5773d69397a43',1,'cgroup_set_uid_gid(struct cgroup *cgroup, uid_t tasks_uid, gid_t tasks_gid, uid_t control_uid, gid_t control_gid): wrapper.c']]],
+ ['cgroup_5fset_5fvalue_5fbool_108',['cgroup_set_value_bool',['../group__group__groups.html#gafb24892bc221cffee0f5fe07f64d54d7',1,'cgroup_set_value_bool(struct cgroup_controller *controller, const char *name, bool value): wrapper.c'],['../group__group__groups.html#gafb24892bc221cffee0f5fe07f64d54d7',1,'cgroup_set_value_bool(struct cgroup_controller *controller, const char *name, bool value): wrapper.c']]],
+ ['cgroup_5fset_5fvalue_5fint64_109',['cgroup_set_value_int64',['../group__group__groups.html#gaa5c39e51035cc43dd26a3c620441a956',1,'cgroup_set_value_int64(struct cgroup_controller *controller, const char *name, int64_t value): wrapper.c'],['../group__group__groups.html#gaa5c39e51035cc43dd26a3c620441a956',1,'cgroup_set_value_int64(struct cgroup_controller *controller, const char *name, int64_t value): wrapper.c']]],
+ ['cgroup_5fset_5fvalue_5fstring_110',['cgroup_set_value_string',['../group__group__groups.html#ga938febc02b59cbeb8e4ceb2dc7fdac82',1,'cgroup_set_value_string(struct cgroup_controller *controller, const char *name, const char *value): wrapper.c'],['../group__group__groups.html#ga938febc02b59cbeb8e4ceb2dc7fdac82',1,'cgroup_set_value_string(struct cgroup_controller *controller, const char *name, const char *value): wrapper.c']]],
+ ['cgroup_5fset_5fvalue_5fuint64_111',['cgroup_set_value_uint64',['../group__group__groups.html#gade01aa1fe30ccc968af9fe8a3bc821e5',1,'cgroup_set_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value): wrapper.c'],['../group__group__groups.html#gade01aa1fe30ccc968af9fe8a3bc821e5',1,'cgroup_set_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value): wrapper.c']]],
+ ['cgroup_5fstat_112',['cgroup_stat',['../structcgroup__stat.html',1,'']]],
+ ['cgroup_5fstrerror_113',['cgroup_strerror',['../group__group__errors.html#gaeae1d51db8528c89d84501c745020e6b',1,'cgroup_strerror(int code): api.c'],['../group__group__errors.html#gaeae1d51db8528c89d84501c745020e6b',1,'cgroup_strerror(int code): api.c']]],
+ ['cgroup_5fstring_5flist_114',['cgroup_string_list',['../structcgroup__string__list.html',1,'']]],
+ ['cgroup_5ftemplates_5fcache_5fset_5fsource_5ffiles_115',['cgroup_templates_cache_set_source_files',['../group__group__config.html#gacb09024dc469a1a1ff8cdebd8d0ab422',1,'cgroup_templates_cache_set_source_files(struct cgroup_string_list *tmpl_files): config.c'],['../group__group__config.html#gacb09024dc469a1a1ff8cdebd8d0ab422',1,'cgroup_templates_cache_set_source_files(struct cgroup_string_list *tmpl_files): config.c']]],
+ ['cgroup_5ftree_5fhandle_116',['cgroup_tree_handle',['../structcgroup__tree__handle.html',1,'']]],
+ ['cgroup_5funload_5fcgroups_117',['cgroup_unload_cgroups',['../group__group__config.html#ga85b285712354faca495193075035938d',1,'cgroup_unload_cgroups(void): config.c'],['../group__group__config.html#ga85b285712354faca495193075035938d',1,'cgroup_unload_cgroups(void): config.c']]],
+ ['cgroup_5fwalk_5ftree_5fbegin_118',['cgroup_walk_tree_begin',['../group__group__iterators.html#ga7b19f10c06abb96d8c8ae88a04888a68',1,'cgroup_walk_tree_begin(const char *controller, const char *base_path, int depth, void **handle, struct cgroup_file_info *info, int *base_level): api.c'],['../group__group__iterators.html#ga7b19f10c06abb96d8c8ae88a04888a68',1,'cgroup_walk_tree_begin(const char *controller, const char *base_path, int depth, void **handle, struct cgroup_file_info *info, int *base_level): api.c']]],
+ ['cgroup_5fwalk_5ftree_5fend_119',['cgroup_walk_tree_end',['../group__group__iterators.html#ga09a70990837a58e506a264f8c50d4cde',1,'cgroup_walk_tree_end(void **handle): api.c'],['../group__group__iterators.html#ga09a70990837a58e506a264f8c50d4cde',1,'cgroup_walk_tree_end(void **handle): api.c']]],
+ ['cgroup_5fwalk_5ftree_5fnext_120',['cgroup_walk_tree_next',['../group__group__iterators.html#ga527f5499b0aa04d325074435baebdff1',1,'cgroup_walk_tree_next(int depth, void **handle, struct cgroup_file_info *info, int base_level): api.c'],['../group__group__iterators.html#ga527f5499b0aa04d325074435baebdff1',1,'cgroup_walk_tree_next(int depth, void **handle, struct cgroup_file_info *info, int base_level): api.c']]],
+ ['cgroup_5fwalk_5ftree_5fset_5fflags_121',['cgroup_walk_tree_set_flags',['../group__group__iterators.html#ga645ec7a6206dffb32667e7a0e148edc8',1,'cgroup_walk_tree_set_flags(void **handle, int flags): api.c'],['../group__group__iterators.html#ga645ec7a6206dffb32667e7a0e148edc8',1,'cgroup_walk_tree_set_flags(void **handle, int flags): api.c']]],
+ ['cgroup_5fwalk_5ftype_122',['cgroup_walk_type',['../group__group__iterators.html#ga29a572cbc0c07e2b02dfa0f1ac0067d3',1,'iterators.h']]],
+ ['cgroup_5fwalk_5ftype_5fpost_5fdir_123',['CGROUP_WALK_TYPE_POST_DIR',['../group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3abf3c31227768960bd6622d2562aae3e1',1,'iterators.h']]],
+ ['cgroup_5fwalk_5ftype_5fpre_5fdir_124',['CGROUP_WALK_TYPE_PRE_DIR',['../group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3af865296e6a0e55cff574fbb132b9f913',1,'iterators.h']]],
+ ['control_5fvalue_125',['control_value',['../structcontrol__value.html',1,'']]],
+ ['controller_5fdata_126',['controller_data',['../structcontroller__data.html',1,'']]]
];
var searchData=
[
- ['cg_5fchmod_5frecursive_10',['cg_chmod_recursive',['../group__group__groups.html#gaef0bf6cd480f2dcb5e964de151a27dd1',1,'cg_chmod_recursive(struct cgroup *cgroup, mode_t dir_mode, int dirm_change, mode_t file_mode, int filem_change): api.c'],['../group__group__groups.html#gaef0bf6cd480f2dcb5e964de151a27dd1',1,'cg_chmod_recursive(struct cgroup *cgroup, mode_t dir_mode, int dirm_change, mode_t file_mode, int filem_change): api.c']]],
- ['cg_5fmount_5fpoint_11',['cg_mount_point',['../structcg__mount__point.html',1,'']]],
- ['cg_5fmount_5ftable_5fs_12',['cg_mount_table_s',['../structcg__mount__table__s.html',1,'']]],
- ['cg_5fvalue_5fmax_13',['CG_VALUE_MAX',['../group__group__iterators.html#ga55d2eac2af703794651d344c073566f5',1,'iterators.h']]],
- ['cgroup_14',['cgroup',['../structcgroup.html',1,'']]],
- ['cgroup_5fadd_5fall_5fcontrollers_15',['cgroup_add_all_controllers',['../group__group__groups.html#gae870d271b789b5c54c2e3d35de3cd6f9',1,'cgroup_add_all_controllers(struct cgroup *cgroup): wrapper.c'],['../group__group__groups.html#gae870d271b789b5c54c2e3d35de3cd6f9',1,'cgroup_add_all_controllers(struct cgroup *cgroup): wrapper.c']]],
- ['cgroup_5fadd_5fcontroller_16',['cgroup_add_controller',['../group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130',1,'cgroup_add_controller(struct cgroup *cgroup, const char *name): wrapper.c'],['../group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130',1,'cgroup_add_controller(struct cgroup *cgroup, const char *name): wrapper.c']]],
- ['cgroup_5fadd_5fvalue_5fbool_17',['cgroup_add_value_bool',['../group__group__groups.html#ga4b191a600f84b00ea7afd12c01d918f3',1,'cgroup_add_value_bool(struct cgroup_controller *controller, const char *name, bool value): wrapper.c'],['../group__group__groups.html#ga4b191a600f84b00ea7afd12c01d918f3',1,'cgroup_add_value_bool(struct cgroup_controller *controller, const char *name, bool value): wrapper.c']]],
- ['cgroup_5fadd_5fvalue_5fint64_18',['cgroup_add_value_int64',['../group__group__groups.html#ga6c973bb5ce99e7a91def2032f23d7087',1,'cgroup_add_value_int64(struct cgroup_controller *controller, const char *name, int64_t value): wrapper.c'],['../group__group__groups.html#ga6c973bb5ce99e7a91def2032f23d7087',1,'cgroup_add_value_int64(struct cgroup_controller *controller, const char *name, int64_t value): wrapper.c']]],
- ['cgroup_5fadd_5fvalue_5fstring_19',['cgroup_add_value_string',['../group__group__groups.html#ga4817c68ab791c09c07b663c29b3fb029',1,'cgroup_add_value_string(struct cgroup_controller *controller, const char *name, const char *value): wrapper.c'],['../group__group__groups.html#ga4817c68ab791c09c07b663c29b3fb029',1,'cgroup_add_value_string(struct cgroup_controller *controller, const char *name, const char *value): wrapper.c']]],
- ['cgroup_5fadd_5fvalue_5fuint64_20',['cgroup_add_value_uint64',['../group__group__groups.html#gad9d2216205b96278c626122f8d5e63bb',1,'cgroup_add_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value): wrapper.c'],['../group__group__groups.html#gad9d2216205b96278c626122f8d5e63bb',1,'cgroup_add_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value): wrapper.c']]],
- ['cgroup_5fattach_5ftask_21',['cgroup_attach_task',['../group__group__tasks.html#ga43414ac2b1fc73bbb46b6278c7500188',1,'cgroup_attach_task(struct cgroup *cgroup): api.c'],['../group__group__tasks.html#ga43414ac2b1fc73bbb46b6278c7500188',1,'cgroup_attach_task(struct cgroup *cgroup): api.c']]],
- ['cgroup_5fattach_5ftask_5fpid_22',['cgroup_attach_task_pid',['../group__group__tasks.html#ga9c7532681986d156ac3f6bac1fcf6aab',1,'cgroup_attach_task_pid(struct cgroup *cgroup, pid_t tid): api.c'],['../group__group__tasks.html#ga9c7532681986d156ac3f6bac1fcf6aab',1,'cgroup_attach_task_pid(struct cgroup *cgroup, pid_t tid): api.c']]],
- ['cgroup_5fchange_5fall_5fcgroups_23',['cgroup_change_all_cgroups',['../group__group__tasks.html#gafc69658b012b6f1c11ba078ffccd70a2',1,'cgroup_change_all_cgroups(void): api.c'],['../group__group__tasks.html#gafc69658b012b6f1c11ba078ffccd70a2',1,'cgroup_change_all_cgroups(void): api.c']]],
- ['cgroup_5fchange_5fcgroup_5fflags_24',['cgroup_change_cgroup_flags',['../group__group__tasks.html#ga368e7b8e19b3943ab6fb50e76a09e6ea',1,'cgroup_change_cgroup_flags(uid_t uid, gid_t gid, const char *procname, pid_t pid, int flags): api.c'],['../group__group__tasks.html#ga368e7b8e19b3943ab6fb50e76a09e6ea',1,'cgroup_change_cgroup_flags(uid_t uid, gid_t gid, const char *procname, pid_t pid, int flags): api.c']]],
- ['cgroup_5fchange_5fcgroup_5fpath_25',['cgroup_change_cgroup_path',['../group__group__tasks.html#ga2d4677baef780c003fc6fba6b5dc78f2',1,'cgroup_change_cgroup_path(const char *path, pid_t pid, const char *const controllers[]): api.c'],['../group__group__tasks.html#ga2d4677baef780c003fc6fba6b5dc78f2',1,'cgroup_change_cgroup_path(const char *dest, pid_t pid, const char *const controllers[]): api.c']]],
- ['cgroup_5fchange_5fcgroup_5fuid_5fgid_26',['cgroup_change_cgroup_uid_gid',['../group__group__tasks.html#ga5eab78a922dbacd368360f03c70146be',1,'cgroup_change_cgroup_uid_gid(uid_t uid, gid_t gid, pid_t pid): api.c'],['../group__group__tasks.html#ga5eab78a922dbacd368360f03c70146be',1,'cgroup_change_cgroup_uid_gid(uid_t uid, gid_t gid, pid_t pid): api.c']]],
- ['cgroup_5fchange_5fcgroup_5fuid_5fgid_5fflags_27',['cgroup_change_cgroup_uid_gid_flags',['../group__group__tasks.html#gae472183a7c9a37826ef15c77014c47fb',1,'cgroup_change_cgroup_uid_gid_flags(uid_t uid, gid_t gid, pid_t pid, int flags): api.c'],['../group__group__tasks.html#gae472183a7c9a37826ef15c77014c47fb',1,'cgroup_change_cgroup_uid_gid_flags(uid_t uid, gid_t gid, pid_t pid, int flags): api.c']]],
- ['cgroup_5fcompare_5fcgroup_28',['cgroup_compare_cgroup',['../group__group__groups.html#ga86898b59e50335f99fe84a11fa38d3fc',1,'cgroup_compare_cgroup(struct cgroup *cgroup_a, struct cgroup *cgroup_b): wrapper.c'],['../group__group__groups.html#ga86898b59e50335f99fe84a11fa38d3fc',1,'cgroup_compare_cgroup(struct cgroup *cgroup_a, struct cgroup *cgroup_b): wrapper.c']]],
- ['cgroup_5fcompare_5fcontrollers_29',['cgroup_compare_controllers',['../group__group__groups.html#gab1725c50c49cec4b0bdad1f26b150ca7',1,'cgroup_compare_controllers(struct cgroup_controller *cgca, struct cgroup_controller *cgcb): wrapper.c'],['../group__group__groups.html#gab1725c50c49cec4b0bdad1f26b150ca7',1,'cgroup_compare_controllers(struct cgroup_controller *cgca, struct cgroup_controller *cgcb): wrapper.c']]],
- ['cgroup_5fconfig_5fcreate_5ftemplate_5fgroup_30',['cgroup_config_create_template_group',['../group__group__config.html#ga72066260cd31ceed7ecc1a648eba37f2',1,'cgroup_config_create_template_group(struct cgroup *cgroup, char *template_name, int flags): config.c'],['../group__group__config.html#ga72066260cd31ceed7ecc1a648eba37f2',1,'cgroup_config_create_template_group(struct cgroup *cgroup, char *template_name, int flags): config.c']]],
- ['cgroup_5fconfig_5fload_5fconfig_31',['cgroup_config_load_config',['../group__group__config.html#ga8adfaca013333acf922a167f55b84140',1,'cgroup_config_load_config(const char *pathname): config.c'],['../group__group__config.html#ga8adfaca013333acf922a167f55b84140',1,'cgroup_config_load_config(const char *pathname): config.c']]],
- ['cgroup_5fconfig_5fset_5fdefault_32',['cgroup_config_set_default',['../group__group__config.html#ga2d3a252b2c0c61c8f64cb1fc41e370ea',1,'cgroup_config_set_default(struct cgroup *new_default): config.c'],['../group__group__config.html#ga2d3a252b2c0c61c8f64cb1fc41e370ea',1,'cgroup_config_set_default(struct cgroup *new_default): config.c']]],
- ['cgroup_5fconfig_5funload_5fconfig_33',['cgroup_config_unload_config',['../group__group__config.html#gaff77affa0b80ccf507b4b46cc0a8c085',1,'cgroup_config_unload_config(const char *pathname, int flags): config.c'],['../group__group__config.html#gaff77affa0b80ccf507b4b46cc0a8c085',1,'cgroup_config_unload_config(const char *pathname, int flags): config.c']]],
- ['cgroup_5fcontroller_34',['cgroup_controller',['../structcgroup__controller.html',1,'']]],
- ['cgroup_5fcopy_5fcgroup_35',['cgroup_copy_cgroup',['../group__group__groups.html#gaa981a95e0917d3167601a4c1b392336a',1,'cgroup_copy_cgroup(struct cgroup *dst, struct cgroup *src): api.c'],['../group__group__groups.html#gaa981a95e0917d3167601a4c1b392336a',1,'cgroup_copy_cgroup(struct cgroup *dst, struct cgroup *src): api.c']]],
- ['cgroup_5fcreate_5fcgroup_36',['cgroup_create_cgroup',['../group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7',1,'cgroup_create_cgroup(struct cgroup *cgroup, int ignore_ownership): api.c'],['../group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7',1,'cgroup_create_cgroup(struct cgroup *cgroup, int ignore_ownership): api.c']]],
- ['cgroup_5fcreate_5fcgroup_5ffrom_5fparent_37',['cgroup_create_cgroup_from_parent',['../group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62',1,'cgroup_create_cgroup_from_parent(struct cgroup *cgroup, int ignore_ownership): api.c'],['../group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62',1,'cgroup_create_cgroup_from_parent(struct cgroup *cgroup, int ignore_ownership): api.c']]],
- ['cgroup_5fdelete_5fcgroup_38',['cgroup_delete_cgroup',['../group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565',1,'cgroup_delete_cgroup(struct cgroup *cgroup, int ignore_migration): api.c'],['../group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565',1,'cgroup_delete_cgroup(struct cgroup *cgroup, int ignore_migration): api.c']]],
- ['cgroup_5fdelete_5fcgroup_5fext_39',['cgroup_delete_cgroup_ext',['../group__group__groups.html#ga860c1ec70189c969b2c8373fc1e96d36',1,'cgroup_delete_cgroup_ext(struct cgroup *cgroup, int flags): api.c'],['../group__group__groups.html#ga860c1ec70189c969b2c8373fc1e96d36',1,'cgroup_delete_cgroup_ext(struct cgroup *cgroup, int flags): api.c']]],
- ['cgroup_5fdictionary_40',['cgroup_dictionary',['../structcgroup__dictionary.html',1,'']]],
- ['cgroup_5fdictionary_5fitem_41',['cgroup_dictionary_item',['../structcgroup__dictionary__item.html',1,'']]],
- ['cgroup_5fdictionary_5fiterator_42',['cgroup_dictionary_iterator',['../structcgroup__dictionary__iterator.html',1,'']]],
- ['cgroup_5ffile_5finfo_43',['cgroup_file_info',['../structcgroup__file__info.html',1,'']]],
- ['cgroup_5ffile_5ftype_44',['cgroup_file_type',['../group__group__iterators.html#ga608b4aa32e2db58fed34771a6a272444',1,'iterators.h']]],
- ['cgroup_5ffile_5ftype_5fdir_45',['CGROUP_FILE_TYPE_DIR',['../group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a5418798fc4bf9634429c6af167a0e7c3',1,'iterators.h']]],
- ['cgroup_5ffile_5ftype_5ffile_46',['CGROUP_FILE_TYPE_FILE',['../group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444ad925cc45f1b34fe80e14fc6b05269740',1,'iterators.h']]],
- ['cgroup_5ffile_5ftype_5fother_47',['CGROUP_FILE_TYPE_OTHER',['../group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a24e202c59f318e63ad8cafcc1b4b102b',1,'iterators.h']]],
- ['cgroup_5ffree_48',['cgroup_free',['../group__group__groups.html#gab20fdb1ae479f8baac482336abf73900',1,'cgroup_free(struct cgroup **cgroup): wrapper.c'],['../group__group__groups.html#gab20fdb1ae479f8baac482336abf73900',1,'cgroup_free(struct cgroup **cgroup): wrapper.c']]],
- ['cgroup_5ffree_5fcontrollers_49',['cgroup_free_controllers',['../group__group__groups.html#ga92d27c9ff0d655838642a7aa68497596',1,'cgroup_free_controllers(struct cgroup *cgroup): wrapper.c'],['../group__group__groups.html#ga92d27c9ff0d655838642a7aa68497596',1,'cgroup_free_controllers(struct cgroup *cgroup): wrapper.c']]],
- ['cgroup_5fget_5fall_5fcontroller_5fbegin_50',['cgroup_get_all_controller_begin',['../group__group__iterators.html#gad48ef653388ca6739a9b6bbb9d7da82e',1,'cgroup_get_all_controller_begin(void **handle, struct controller_data *info): api.c'],['../group__group__iterators.html#gad48ef653388ca6739a9b6bbb9d7da82e',1,'cgroup_get_all_controller_begin(void **handle, struct controller_data *info): api.c']]],
- ['cgroup_5fget_5fall_5fcontroller_5fend_51',['cgroup_get_all_controller_end',['../group__group__iterators.html#ga0c467d42a2c9a916a0edd339a6d7afc8',1,'cgroup_get_all_controller_end(void **handle): api.c'],['../group__group__iterators.html#ga0c467d42a2c9a916a0edd339a6d7afc8',1,'cgroup_get_all_controller_end(void **handle): api.c']]],
- ['cgroup_5fget_5fall_5fcontroller_5fnext_52',['cgroup_get_all_controller_next',['../group__group__iterators.html#ga3d98a04b29b1fe409db1114b7aa76809',1,'cgroup_get_all_controller_next(void **handle, struct controller_data *info): api.c'],['../group__group__iterators.html#ga3d98a04b29b1fe409db1114b7aa76809',1,'cgroup_get_all_controller_next(void **handle, struct controller_data *info): api.c']]],
- ['cgroup_5fget_5fcgroup_53',['cgroup_get_cgroup',['../group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6',1,'cgroup_get_cgroup(struct cgroup *cgroup): api.c'],['../group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6',1,'cgroup_get_cgroup(struct cgroup *cgroup): api.c']]],
- ['cgroup_5fget_5fcgroup_5fname_54',['cgroup_get_cgroup_name',['../group__group__groups.html#gac9b5ff481de08ba8fdfcbd42940d2cbf',1,'cgroup_get_cgroup_name(struct cgroup *cgroup): wrapper.c'],['../group__group__groups.html#gac9b5ff481de08ba8fdfcbd42940d2cbf',1,'cgroup_get_cgroup_name(struct cgroup *cgroup): wrapper.c']]],
- ['cgroup_5fget_5fcontroller_55',['cgroup_get_controller',['../group__group__groups.html#ga8335b0aec59c8f845639a7404affce05',1,'cgroup_get_controller(struct cgroup *cgroup, const char *name): wrapper.c'],['../group__group__groups.html#ga8335b0aec59c8f845639a7404affce05',1,'cgroup_get_controller(struct cgroup *cgroup, const char *name): wrapper.c']]],
- ['cgroup_5fget_5fcontroller_5fbegin_56',['cgroup_get_controller_begin',['../group__group__iterators.html#ga5f9f21138f9b18912a16b21a45b53c44',1,'cgroup_get_controller_begin(void **handle, struct cgroup_mount_point *info): api.c'],['../group__group__iterators.html#ga5f9f21138f9b18912a16b21a45b53c44',1,'cgroup_get_controller_begin(void **handle, struct cgroup_mount_point *info): api.c']]],
- ['cgroup_5fget_5fcontroller_5fend_57',['cgroup_get_controller_end',['../group__group__iterators.html#gab485cda2bc9640bacbf61f1953ae750c',1,'cgroup_get_controller_end(void **handle): api.c'],['../group__group__iterators.html#gab485cda2bc9640bacbf61f1953ae750c',1,'cgroup_get_controller_end(void **handle): api.c']]],
- ['cgroup_5fget_5fcontroller_5fnext_58',['cgroup_get_controller_next',['../group__group__iterators.html#ga926b70423b6c087c21a14670cd23cd7d',1,'cgroup_get_controller_next(void **handle, struct cgroup_mount_point *info): api.c'],['../group__group__iterators.html#ga926b70423b6c087c21a14670cd23cd7d',1,'cgroup_get_controller_next(void **handle, struct cgroup_mount_point *info): api.c']]],
- ['cgroup_5fget_5fcurrent_5fcontroller_5fpath_59',['cgroup_get_current_controller_path',['../group__group__tasks.html#ga6f2c17b99cf2526cb46df4769eb3f46e',1,'cgroup_get_current_controller_path(pid_t pid, const char *controller, char **current_path): api.c'],['../group__group__tasks.html#ga6f2c17b99cf2526cb46df4769eb3f46e',1,'cgroup_get_current_controller_path(pid_t pid, const char *controller, char **current_path): api.c']]],
- ['cgroup_5fget_5flast_5ferrno_60',['cgroup_get_last_errno',['../group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46',1,'cgroup_get_last_errno(void): api.c'],['../group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46',1,'cgroup_get_last_errno(void): api.c']]],
- ['cgroup_5fget_5fprocs_61',['cgroup_get_procs',['../group__group__groups.html#ga08a4fe913d59f61a39e61b8b02537dc2',1,'cgroup_get_procs(char *name, char *controller, pid_t **pids, int *size): api.c'],['../group__group__groups.html#ga08a4fe913d59f61a39e61b8b02537dc2',1,'cgroup_get_procs(char *name, char *controller, pid_t **pids, int *size): api.c']]],
- ['cgroup_5fget_5fsubsys_5fmount_5fpoint_62',['cgroup_get_subsys_mount_point',['../group__group__init.html#ga4f061b353321b81869057970d96f09f7',1,'cgroup_get_subsys_mount_point(const char *controller, char **mount_point): api.c'],['../group__group__init.html#ga4f061b353321b81869057970d96f09f7',1,'cgroup_get_subsys_mount_point(const char *controller, char **mount_point): api.c']]],
- ['cgroup_5fget_5fsubsys_5fmount_5fpoint_5fbegin_63',['cgroup_get_subsys_mount_point_begin',['../group__group__iterators.html#ga18a3c6fe7da42b9da96ce34dce1e31b8',1,'cgroup_get_subsys_mount_point_begin(const char *controller, void **handle, char *path): api.c'],['../group__group__iterators.html#ga18a3c6fe7da42b9da96ce34dce1e31b8',1,'cgroup_get_subsys_mount_point_begin(const char *controller, void **handle, char *path): api.c']]],
- ['cgroup_5fget_5fsubsys_5fmount_5fpoint_5fend_64',['cgroup_get_subsys_mount_point_end',['../group__group__iterators.html#ga9c9b0f1921c205bd25bfc6c1d20486eb',1,'cgroup_get_subsys_mount_point_end(void **handle): api.c'],['../group__group__iterators.html#ga9c9b0f1921c205bd25bfc6c1d20486eb',1,'cgroup_get_subsys_mount_point_end(void **handle): api.c']]],
- ['cgroup_5fget_5fsubsys_5fmount_5fpoint_5fnext_65',['cgroup_get_subsys_mount_point_next',['../group__group__iterators.html#ga3d66997158cb8a334317923ad94cc789',1,'cgroup_get_subsys_mount_point_next(void **handle, char *path): api.c'],['../group__group__iterators.html#ga3d66997158cb8a334317923ad94cc789',1,'cgroup_get_subsys_mount_point_next(void **handle, char *path): api.c']]],
- ['cgroup_5fget_5ftask_5fbegin_66',['cgroup_get_task_begin',['../group__group__iterators.html#gad7218154192f733120e1025cc19d0a36',1,'cgroup_get_task_begin(const char *cgroup, const char *controller, void **handle, pid_t *pid): api.c'],['../group__group__iterators.html#gad7218154192f733120e1025cc19d0a36',1,'cgroup_get_task_begin(const char *cgroup, const char *controller, void **handle, pid_t *pid): api.c']]],
- ['cgroup_5fget_5ftask_5fend_67',['cgroup_get_task_end',['../group__group__iterators.html#gaeb955e5f4da551268380b1271d478816',1,'cgroup_get_task_end(void **handle): api.c'],['../group__group__iterators.html#gaeb955e5f4da551268380b1271d478816',1,'cgroup_get_task_end(void **handle): api.c']]],
- ['cgroup_5fget_5ftask_5fnext_68',['cgroup_get_task_next',['../group__group__iterators.html#gaf3a0364682b7449ddccfb0862bbb565e',1,'cgroup_get_task_next(void **handle, pid_t *pid): api.c'],['../group__group__iterators.html#gaf3a0364682b7449ddccfb0862bbb565e',1,'cgroup_get_task_next(void **handle, pid_t *pid): api.c']]],
- ['cgroup_5fget_5fuid_5fgid_69',['cgroup_get_uid_gid',['../group__group__groups.html#ga007d21c304d9cc6e948dc0ae51ecfa86',1,'cgroup_get_uid_gid(struct cgroup *cgroup, uid_t *tasks_uid, gid_t *tasks_gid, uid_t *control_uid, gid_t *control_gid): wrapper.c'],['../group__group__groups.html#ga007d21c304d9cc6e948dc0ae51ecfa86',1,'cgroup_get_uid_gid(struct cgroup *cgroup, uid_t *tasks_uid, gid_t *tasks_gid, uid_t *control_uid, gid_t *control_gid): wrapper.c']]],
- ['cgroup_5fget_5fvalue_5fbool_70',['cgroup_get_value_bool',['../group__group__groups.html#gab95007148eac89b7e935d93a4524787b',1,'cgroup_get_value_bool(struct cgroup_controller *controller, const char *name, bool *value): wrapper.c'],['../group__group__groups.html#gab95007148eac89b7e935d93a4524787b',1,'cgroup_get_value_bool(struct cgroup_controller *controller, const char *name, bool *value): wrapper.c']]],
- ['cgroup_5fget_5fvalue_5fint64_71',['cgroup_get_value_int64',['../group__group__groups.html#ga0fe9b05f26b3cab21fc446c9a2700526',1,'cgroup_get_value_int64(struct cgroup_controller *controller, const char *name, int64_t *value): wrapper.c'],['../group__group__groups.html#ga0fe9b05f26b3cab21fc446c9a2700526',1,'cgroup_get_value_int64(struct cgroup_controller *controller, const char *name, int64_t *value): wrapper.c']]],
- ['cgroup_5fget_5fvalue_5fname_72',['cgroup_get_value_name',['../group__group__groups.html#ga16ca75fd16eda7cfc642421111e9a331',1,'cgroup_get_value_name(struct cgroup_controller *controller, int index): wrapper.c'],['../group__group__groups.html#ga16ca75fd16eda7cfc642421111e9a331',1,'cgroup_get_value_name(struct cgroup_controller *controller, int index): wrapper.c']]],
- ['cgroup_5fget_5fvalue_5fname_5fcount_73',['cgroup_get_value_name_count',['../group__group__groups.html#ga25115085978ce2a8d671e7876cc49c1d',1,'cgroup_get_value_name_count(struct cgroup_controller *controller): wrapper.c'],['../group__group__groups.html#ga25115085978ce2a8d671e7876cc49c1d',1,'cgroup_get_value_name_count(struct cgroup_controller *controller): wrapper.c']]],
- ['cgroup_5fget_5fvalue_5fstring_74',['cgroup_get_value_string',['../group__group__groups.html#gafaa51e5ffe09f8ad05585a1d3b6f7fa9',1,'cgroup_get_value_string(struct cgroup_controller *controller, const char *name, char **value): wrapper.c'],['../group__group__groups.html#gafaa51e5ffe09f8ad05585a1d3b6f7fa9',1,'cgroup_get_value_string(struct cgroup_controller *controller, const char *name, char **value): wrapper.c']]],
- ['cgroup_5fget_5fvalue_5fuint64_75',['cgroup_get_value_uint64',['../group__group__groups.html#ga951861259c0373895bfb637fce337312',1,'cgroup_get_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t *value): wrapper.c'],['../group__group__groups.html#ga951861259c0373895bfb637fce337312',1,'cgroup_get_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t *value): wrapper.c']]],
- ['cgroup_5fgroup_5fspec_76',['cgroup_group_spec',['../structcgroup__group__spec.html',1,'']]],
- ['cgroup_5finit_77',['cgroup_init',['../group__group__init.html#ga37740e2f5f298edf13e18fcd7632b75a',1,'cgroup_init(void): api.c'],['../group__group__init.html#ga37740e2f5f298edf13e18fcd7632b75a',1,'cgroup_init(void): api.c']]],
- ['cgroup_5finit_5frules_5fcache_78',['cgroup_init_rules_cache',['../group__group__tasks.html#gad7fa5a2c4db08d31da5bfbecaf482d3d',1,'cgroup_init_rules_cache(void): api.c'],['../group__group__tasks.html#gad7fa5a2c4db08d31da5bfbecaf482d3d',1,'cgroup_init_rules_cache(void): api.c']]],
- ['cgroup_5finit_5ftemplates_5fcache_79',['cgroup_init_templates_cache',['../group__group__config.html#ga6f8c41bb920565e674787fe6dabaef00',1,'cgroup_init_templates_cache(char *pathname): config.c'],['../group__group__config.html#ga6f8c41bb920565e674787fe6dabaef00',1,'cgroup_init_templates_cache(char *pathname): config.c']]],
- ['cgroup_5fload_5ftemplates_5fcache_5ffrom_5ffiles_80',['cgroup_load_templates_cache_from_files',['../group__group__config.html#ga924860998c37da53cababe24163fc89b',1,'cgroup_load_templates_cache_from_files(int *file_index): config.c'],['../group__group__config.html#ga924860998c37da53cababe24163fc89b',1,'cgroup_load_templates_cache_from_files(int *file_index): config.c']]],
- ['cgroup_5flog_81',['cgroup_log',['../group__group__log.html#gab514ad5d83422ddfe479bdf651e80958',1,'cgroup_log(int loglevel, const char *fmt,...): log.c'],['../group__group__log.html#gab514ad5d83422ddfe479bdf651e80958',1,'cgroup_log(int level, const char *fmt,...): log.c']]],
- ['cgroup_5flog_5fdebug_82',['CGROUP_LOG_DEBUG',['../group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa86b4157fb38d9f8053c6b7429bd26c72',1,'log.h']]],
- ['cgroup_5flog_5ferror_83',['CGROUP_LOG_ERROR',['../group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa4dd44215cd3553e79dbf91eb9ca418a2',1,'log.h']]],
- ['cgroup_5flog_5finfo_84',['CGROUP_LOG_INFO',['../group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aad66ab51dba078ffc3b1c6d397053f9e2',1,'log.h']]],
- ['cgroup_5flog_5flevel_85',['cgroup_log_level',['../group__group__log.html#ga98b7aea5d23411e70c7e3da54d90233a',1,'log.h']]],
- ['cgroup_5flog_5fwarning_86',['CGROUP_LOG_WARNING',['../group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aaa99ec9e854a543901bddf854d1960057',1,'log.h']]],
- ['cgroup_5fmodify_5fcgroup_87',['cgroup_modify_cgroup',['../group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071',1,'cgroup_modify_cgroup(struct cgroup *cgroup): api.c'],['../group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071',1,'cgroup_modify_cgroup(struct cgroup *cgroup): api.c']]],
- ['cgroup_5fmount_5fpoint_88',['cgroup_mount_point',['../structcgroup__mount__point.html',1,'']]],
- ['cgroup_5fnew_5fcgroup_89',['cgroup_new_cgroup',['../group__group__groups.html#ga6cd4733e5982ac2c92ee3cb3dbd10a31',1,'cgroup_new_cgroup(const char *name): wrapper.c'],['../group__group__groups.html#ga6cd4733e5982ac2c92ee3cb3dbd10a31',1,'cgroup_new_cgroup(const char *name): wrapper.c']]],
- ['cgroup_5fparse_5flog_5flevel_5fstr_90',['cgroup_parse_log_level_str',['../group__group__log.html#gaa364a06aee0e99228a1e6a26b25a9794',1,'cgroup_parse_log_level_str(const char *levelstr): log.c'],['../group__group__log.html#gaa364a06aee0e99228a1e6a26b25a9794',1,'cgroup_parse_log_level_str(const char *levelstr): log.c']]],
- ['cgroup_5fprint_5frules_5fconfig_91',['cgroup_print_rules_config',['../group__group__tasks.html#gac4e3f29cfbdc3d77f08c9fe60857274a',1,'cgroup_print_rules_config(FILE *fp): api.c'],['../group__group__tasks.html#gac4e3f29cfbdc3d77f08c9fe60857274a',1,'cgroup_print_rules_config(FILE *fp): api.c']]],
- ['cgroup_5fread_5fstats_5fbegin_92',['cgroup_read_stats_begin',['../group__group__iterators.html#ga1138e47f124f0f634586db5e0c4ae5de',1,'cgroup_read_stats_begin(const char *controller, const char *path, void **handle, struct cgroup_stat *stat): api.c'],['../group__group__iterators.html#ga1138e47f124f0f634586db5e0c4ae5de',1,'cgroup_read_stats_begin(const char *controller, const char *path, void **handle, struct cgroup_stat *cgroup_stat): api.c']]],
- ['cgroup_5fread_5fstats_5fend_93',['cgroup_read_stats_end',['../group__group__iterators.html#gaba386d9db6cadc6ad85c2552f63447bb',1,'cgroup_read_stats_end(void **handle): api.c'],['../group__group__iterators.html#gaba386d9db6cadc6ad85c2552f63447bb',1,'cgroup_read_stats_end(void **handle): api.c']]],
- ['cgroup_5fread_5fstats_5fnext_94',['cgroup_read_stats_next',['../group__group__iterators.html#gaf95587508fc15d74fd5ed0df58024be7',1,'cgroup_read_stats_next(void **handle, struct cgroup_stat *cgroup_stat): api.c'],['../group__group__iterators.html#gaf95587508fc15d74fd5ed0df58024be7',1,'cgroup_read_stats_next(void **handle, struct cgroup_stat *stat): api.c']]],
- ['cgroup_5fread_5fvalue_5fbegin_95',['cgroup_read_value_begin',['../group__group__iterators.html#ga73edb115af6779644d3371b12cf09140',1,'cgroup_read_value_begin(const char *controller, const char *path, char *name, void **handle, char *buffer, int max): api.c'],['../group__group__iterators.html#ga73edb115af6779644d3371b12cf09140',1,'cgroup_read_value_begin(const char *controller, const char *path, char *name, void **handle, char *buffer, int max): api.c']]],
- ['cgroup_5fread_5fvalue_5fend_96',['cgroup_read_value_end',['../group__group__iterators.html#gad348f041e283860cbf6bcea567e23a21',1,'cgroup_read_value_end(void **handle): api.c'],['../group__group__iterators.html#gad348f041e283860cbf6bcea567e23a21',1,'cgroup_read_value_end(void **handle): api.c']]],
- ['cgroup_5fread_5fvalue_5fnext_97',['cgroup_read_value_next',['../group__group__iterators.html#gaced2fe331f19d599a3270db2440847cc',1,'cgroup_read_value_next(void **handle, char *buffer, int max): api.c'],['../group__group__iterators.html#gaced2fe331f19d599a3270db2440847cc',1,'cgroup_read_value_next(void **handle, char *buffer, int max): api.c']]],
- ['cgroup_5fregister_5funchanged_5fprocess_98',['cgroup_register_unchanged_process',['../group__group__tasks.html#ga64f7967d6d5edfff9afddaa6a6974b1c',1,'cgroup_register_unchanged_process(pid_t pid, int flags): api.c'],['../group__group__tasks.html#ga64f7967d6d5edfff9afddaa6a6974b1c',1,'cgroup_register_unchanged_process(pid_t pid, int flags): api.c']]],
- ['cgroup_5freload_5fcached_5frules_99',['cgroup_reload_cached_rules',['../group__group__tasks.html#gaf81ebd9cb5575c75b4c85f385ebda1ce',1,'cgroup_reload_cached_rules(void): api.c'],['../group__group__tasks.html#gaf81ebd9cb5575c75b4c85f385ebda1ce',1,'cgroup_reload_cached_rules(void): api.c']]],
- ['cgroup_5freload_5fcached_5ftemplates_100',['cgroup_reload_cached_templates',['../group__group__config.html#ga89fe0d7943b29cc10d57b07abcdfa7b5',1,'cgroup_reload_cached_templates(char *pathname): config.c'],['../group__group__config.html#ga89fe0d7943b29cc10d57b07abcdfa7b5',1,'cgroup_reload_cached_templates(char *pathname): config.c']]],
- ['cgroup_5frule_101',['cgroup_rule',['../structcgroup__rule.html',1,'']]],
- ['cgroup_5frule_5flist_102',['cgroup_rule_list',['../structcgroup__rule__list.html',1,'']]],
- ['cgroup_5frules_5fdata_103',['cgroup_rules_data',['../structcgroup__rules__data.html',1,'']]],
- ['cgroup_5fset_5fdefault_5flogger_104',['cgroup_set_default_logger',['../group__group__log.html#gab1457ce518dcde0b9f3c14ec9efa2de7',1,'cgroup_set_default_logger(int loglevel): log.c'],['../group__group__log.html#gab1457ce518dcde0b9f3c14ec9efa2de7',1,'cgroup_set_default_logger(int level): log.c']]],
- ['cgroup_5fset_5flogger_105',['cgroup_set_logger',['../group__group__log.html#ga76d7032206f9b9d1c0be1a71a68c43d0',1,'cgroup_set_logger(cgroup_logger_callback logger, int loglevel, void *userdata): log.c'],['../group__group__log.html#ga76d7032206f9b9d1c0be1a71a68c43d0',1,'cgroup_set_logger(cgroup_logger_callback logger, int loglevel, void *userdata): log.c']]],
- ['cgroup_5fset_5floglevel_106',['cgroup_set_loglevel',['../group__group__log.html#gaac5fe2352800ff62465a5abe649d5b8c',1,'cgroup_set_loglevel(int loglevel): log.c'],['../group__group__log.html#gaac5fe2352800ff62465a5abe649d5b8c',1,'cgroup_set_loglevel(int loglevel): log.c']]],
- ['cgroup_5fset_5fpermissions_107',['cgroup_set_permissions',['../group__group__groups.html#gaa0400f1ff2fba7fbb6db82d97039d92b',1,'cgroup_set_permissions(struct cgroup *cgroup, mode_t control_dperm, mode_t control_fperm, mode_t task_fperm): api.c'],['../group__group__groups.html#gaa0400f1ff2fba7fbb6db82d97039d92b',1,'cgroup_set_permissions(struct cgroup *cgroup, mode_t control_dperm, mode_t control_fperm, mode_t task_fperm): api.c']]],
- ['cgroup_5fset_5fuid_5fgid_108',['cgroup_set_uid_gid',['../group__group__groups.html#ga53b9e13e30660c805ab5773d69397a43',1,'cgroup_set_uid_gid(struct cgroup *cgroup, uid_t tasks_uid, gid_t tasks_gid, uid_t control_uid, gid_t control_gid): wrapper.c'],['../group__group__groups.html#ga53b9e13e30660c805ab5773d69397a43',1,'cgroup_set_uid_gid(struct cgroup *cgroup, uid_t tasks_uid, gid_t tasks_gid, uid_t control_uid, gid_t control_gid): wrapper.c']]],
- ['cgroup_5fset_5fvalue_5fbool_109',['cgroup_set_value_bool',['../group__group__groups.html#gafb24892bc221cffee0f5fe07f64d54d7',1,'cgroup_set_value_bool(struct cgroup_controller *controller, const char *name, bool value): wrapper.c'],['../group__group__groups.html#gafb24892bc221cffee0f5fe07f64d54d7',1,'cgroup_set_value_bool(struct cgroup_controller *controller, const char *name, bool value): wrapper.c']]],
- ['cgroup_5fset_5fvalue_5fint64_110',['cgroup_set_value_int64',['../group__group__groups.html#gaa5c39e51035cc43dd26a3c620441a956',1,'cgroup_set_value_int64(struct cgroup_controller *controller, const char *name, int64_t value): wrapper.c'],['../group__group__groups.html#gaa5c39e51035cc43dd26a3c620441a956',1,'cgroup_set_value_int64(struct cgroup_controller *controller, const char *name, int64_t value): wrapper.c']]],
- ['cgroup_5fset_5fvalue_5fstring_111',['cgroup_set_value_string',['../group__group__groups.html#ga938febc02b59cbeb8e4ceb2dc7fdac82',1,'cgroup_set_value_string(struct cgroup_controller *controller, const char *name, const char *value): wrapper.c'],['../group__group__groups.html#ga938febc02b59cbeb8e4ceb2dc7fdac82',1,'cgroup_set_value_string(struct cgroup_controller *controller, const char *name, const char *value): wrapper.c']]],
- ['cgroup_5fset_5fvalue_5fuint64_112',['cgroup_set_value_uint64',['../group__group__groups.html#gade01aa1fe30ccc968af9fe8a3bc821e5',1,'cgroup_set_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value): wrapper.c'],['../group__group__groups.html#gade01aa1fe30ccc968af9fe8a3bc821e5',1,'cgroup_set_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value): wrapper.c']]],
- ['cgroup_5fstat_113',['cgroup_stat',['../structcgroup__stat.html',1,'']]],
- ['cgroup_5fstrerror_114',['cgroup_strerror',['../group__group__errors.html#gaeae1d51db8528c89d84501c745020e6b',1,'cgroup_strerror(int code): api.c'],['../group__group__errors.html#gaeae1d51db8528c89d84501c745020e6b',1,'cgroup_strerror(int code): api.c']]],
- ['cgroup_5fstring_5flist_115',['cgroup_string_list',['../structcgroup__string__list.html',1,'']]],
- ['cgroup_5ftemplates_5fcache_5fset_5fsource_5ffiles_116',['cgroup_templates_cache_set_source_files',['../group__group__config.html#gacb09024dc469a1a1ff8cdebd8d0ab422',1,'cgroup_templates_cache_set_source_files(struct cgroup_string_list *tmpl_files): config.c'],['../group__group__config.html#gacb09024dc469a1a1ff8cdebd8d0ab422',1,'cgroup_templates_cache_set_source_files(struct cgroup_string_list *tmpl_files): config.c']]],
- ['cgroup_5ftree_5fhandle_117',['cgroup_tree_handle',['../structcgroup__tree__handle.html',1,'']]],
- ['cgroup_5funload_5fcgroups_118',['cgroup_unload_cgroups',['../group__group__config.html#ga85b285712354faca495193075035938d',1,'cgroup_unload_cgroups(void): config.c'],['../group__group__config.html#ga85b285712354faca495193075035938d',1,'cgroup_unload_cgroups(void): config.c']]],
- ['cgroup_5fwalk_5ftree_5fbegin_119',['cgroup_walk_tree_begin',['../group__group__iterators.html#ga7b19f10c06abb96d8c8ae88a04888a68',1,'cgroup_walk_tree_begin(const char *controller, const char *base_path, int depth, void **handle, struct cgroup_file_info *info, int *base_level): api.c'],['../group__group__iterators.html#ga7b19f10c06abb96d8c8ae88a04888a68',1,'cgroup_walk_tree_begin(const char *controller, const char *base_path, int depth, void **handle, struct cgroup_file_info *info, int *base_level): api.c']]],
- ['cgroup_5fwalk_5ftree_5fend_120',['cgroup_walk_tree_end',['../group__group__iterators.html#ga09a70990837a58e506a264f8c50d4cde',1,'cgroup_walk_tree_end(void **handle): api.c'],['../group__group__iterators.html#ga09a70990837a58e506a264f8c50d4cde',1,'cgroup_walk_tree_end(void **handle): api.c']]],
- ['cgroup_5fwalk_5ftree_5fnext_121',['cgroup_walk_tree_next',['../group__group__iterators.html#ga527f5499b0aa04d325074435baebdff1',1,'cgroup_walk_tree_next(int depth, void **handle, struct cgroup_file_info *info, int base_level): api.c'],['../group__group__iterators.html#ga527f5499b0aa04d325074435baebdff1',1,'cgroup_walk_tree_next(int depth, void **handle, struct cgroup_file_info *info, int base_level): api.c']]],
- ['cgroup_5fwalk_5ftree_5fset_5fflags_122',['cgroup_walk_tree_set_flags',['../group__group__iterators.html#ga645ec7a6206dffb32667e7a0e148edc8',1,'cgroup_walk_tree_set_flags(void **handle, int flags): api.c'],['../group__group__iterators.html#ga645ec7a6206dffb32667e7a0e148edc8',1,'cgroup_walk_tree_set_flags(void **handle, int flags): api.c']]],
- ['cgroup_5fwalk_5ftype_123',['cgroup_walk_type',['../group__group__iterators.html#ga29a572cbc0c07e2b02dfa0f1ac0067d3',1,'iterators.h']]],
- ['cgroup_5fwalk_5ftype_5fpost_5fdir_124',['CGROUP_WALK_TYPE_POST_DIR',['../group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3abf3c31227768960bd6622d2562aae3e1',1,'iterators.h']]],
- ['cgroup_5fwalk_5ftype_5fpre_5fdir_125',['CGROUP_WALK_TYPE_PRE_DIR',['../group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3af865296e6a0e55cff574fbb132b9f913',1,'iterators.h']]],
- ['control_5fvalue_126',['control_value',['../structcontrol__value.html',1,'']]],
- ['controller_5fdata_127',['controller_data',['../structcontroller__data.html',1,'']]]
+ ['depth_127',['depth',['../structcgroup__file__info.html#ad56dca35266f0f5f5c2666b946d72709',1,'cgroup_file_info']]]
];
var searchData=
[
- ['depth_128',['depth',['../structcgroup__file__info.html#ad56dca35266f0f5f5c2666b946d72709',1,'cgroup_file_info']]]
+ ['ecgconfigparsefail_128',['ECGCONFIGPARSEFAIL',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55baf808b0e31be4bfbe8a21f800f913f9c0',1,'error.h']]],
+ ['ecgeof_129',['ECGEOF',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba2724c2f0af0d3e3cea66027f6bf2e436',1,'error.h']]],
+ ['ecgnonempty_130',['ECGNONEMPTY',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba94dbe90328ef8a212633ec464b9b9b11',1,'error.h']]],
+ ['ecgnoversionconvert_131',['ECGNOVERSIONCONVERT',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba33cc635e4cc4055b2c487f027fbdd960',1,'error.h']]],
+ ['ecgother_132',['ECGOTHER',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba88111f9ca2e967cbf7565724444c0193',1,'error.h']]],
+ ['ecgroupmultimounted_133',['ECGROUPMULTIMOUNTED',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba24a6584dd4238475a4e247bdf6956def',1,'error.h']]],
+ ['ecgroupnorules_134',['ECGROUPNORULES',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba7c23c1a7cbfb7e8e9c66dd96b5c66d21',1,'error.h']]],
+ ['ecgroupparsefail_135',['ECGROUPPARSEFAIL',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55bac62bda67f3029c39ef456100008b1f39',1,'error.h']]],
+ ['ecgrulesparsefail_136',['ECGRULESPARSEFAIL',['../group__group__errors.html#ga515eba7218b187ffe263b7d9ecb3ac1b',1,'error.h']]],
+ ['enabled_137',['enabled',['../structcontroller__data.html#a24be412cfb6c19f7a13a4bff9e55206e',1,'controller_data']]],
+ ['ext_5fcgroup_5frecord_138',['ext_cgroup_record',['../structext__cgroup__record.html',1,'']]]
];
var searchData=
[
- ['ecgconfigparsefail_129',['ECGCONFIGPARSEFAIL',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55baf808b0e31be4bfbe8a21f800f913f9c0',1,'error.h']]],
- ['ecgeof_130',['ECGEOF',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba2724c2f0af0d3e3cea66027f6bf2e436',1,'error.h']]],
- ['ecgnonempty_131',['ECGNONEMPTY',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba94dbe90328ef8a212633ec464b9b9b11',1,'error.h']]],
- ['ecgother_132',['ECGOTHER',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba88111f9ca2e967cbf7565724444c0193',1,'error.h']]],
- ['ecgroupmultimounted_133',['ECGROUPMULTIMOUNTED',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba24a6584dd4238475a4e247bdf6956def',1,'error.h']]],
- ['ecgroupnorules_134',['ECGROUPNORULES',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba7c23c1a7cbfb7e8e9c66dd96b5c66d21',1,'error.h']]],
- ['ecgroupparsefail_135',['ECGROUPPARSEFAIL',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55bac62bda67f3029c39ef456100008b1f39',1,'error.h']]],
- ['ecgrulesparsefail_136',['ECGRULESPARSEFAIL',['../group__group__errors.html#ga515eba7218b187ffe263b7d9ecb3ac1b',1,'error.h']]],
- ['enabled_137',['enabled',['../structcontroller__data.html#a24be412cfb6c19f7a13a4bff9e55206e',1,'controller_data']]],
- ['ext_5fcgroup_5frecord_138',['ext_cgroup_record',['../structext__cgroup__record.html',1,'']]]
+ ['full_5fpath_139',['full_path',['../structcgroup__file__info.html#a4c61dc7f726ba0784ff8c71473dbc6e6',1,'cgroup_file_info']]]
];
var searchData=
[
- ['full_5fpath_139',['full_path',['../structcgroup__file__info.html#a4c61dc7f726ba0784ff8c71473dbc6e6',1,'cgroup_file_info']]]
+ ['hierarchy_140',['hierarchy',['../structcontroller__data.html#a25e316f55473ca2b333b0d7e0ca644b4',1,'controller_data']]],
+ ['how_20to_20contribute_20to_20the_20libcgroup_20project_141',['How to Contribute to the libcgroup Project',['../md_CONTRIBUTING.html',1,'']]]
];
var searchData=
[
- ['hierarchy_140',['hierarchy',['../structcontroller__data.html#a25e316f55473ca2b333b0d7e0ca644b4',1,'controller_data']]],
- ['how_20to_20contribute_20to_20the_20libcgroup_20project_141',['How to Contribute to the libcgroup Project',['../md_CONTRIBUTING.html',1,'']]]
+ ['libcgroup_142',['libcgroup',['../index.html',1,'']]]
];
var searchData=
[
- ['libcgroup_142',['libcgroup',['../index.html',1,'']]]
+ ['mount_143',['mount',['../structcg__mount__table__s.html#a9704fa3ec3674f6d433345ea52b6aeef',1,'cg_mount_table_s']]]
];
var searchData=
[
- ['mount_143',['mount',['../structcg__mount__table__s.html#a9704fa3ec3674f6d433345ea52b6aeef',1,'cg_mount_table_s']]]
+ ['name_144',['name',['../structcgroup__mount__point.html#a849ccf1e77fffd5d45304c6adf0d2100',1,'cgroup_mount_point::name()'],['../structcontroller__data.html#a5474be4d8cc4553c94ca81c6a93f5a18',1,'controller_data::name()'],['../structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6',1,'cg_mount_table_s::name()']]],
+ ['no_5fperms_145',['NO_PERMS',['../group__group__groups.html#gad4ffad2eccf9fcbfa8a551e269e0ad58',1,'groups.h']]],
+ ['no_5fuid_5fgid_146',['NO_UID_GID',['../group__group__groups.html#ga2a7954a987e3fbf8eabcc94cf381353e',1,'groups.h']]],
+ ['num_5fcgroups_147',['num_cgroups',['../structcontroller__data.html#acd075c0bb48062bf720b68d0a30116eb',1,'controller_data']]]
];
['cg_5fmount_5fpoint_159',['cg_mount_point',['../structcg__mount__point.html',1,'']]],
['cg_5fmount_5ftable_5fs_160',['cg_mount_table_s',['../structcg__mount__table__s.html',1,'']]],
['cgroup_161',['cgroup',['../structcgroup.html',1,'']]],
- ['cgroup_5fcontroller_162',['cgroup_controller',['../structcgroup__controller.html',1,'']]],
- ['cgroup_5fdictionary_163',['cgroup_dictionary',['../structcgroup__dictionary.html',1,'']]],
- ['cgroup_5fdictionary_5fitem_164',['cgroup_dictionary_item',['../structcgroup__dictionary__item.html',1,'']]],
- ['cgroup_5fdictionary_5fiterator_165',['cgroup_dictionary_iterator',['../structcgroup__dictionary__iterator.html',1,'']]],
- ['cgroup_5ffile_5finfo_166',['cgroup_file_info',['../structcgroup__file__info.html',1,'']]],
- ['cgroup_5fgroup_5fspec_167',['cgroup_group_spec',['../structcgroup__group__spec.html',1,'']]],
- ['cgroup_5fmount_5fpoint_168',['cgroup_mount_point',['../structcgroup__mount__point.html',1,'']]],
- ['cgroup_5frule_169',['cgroup_rule',['../structcgroup__rule.html',1,'']]],
- ['cgroup_5frule_5flist_170',['cgroup_rule_list',['../structcgroup__rule__list.html',1,'']]],
- ['cgroup_5frules_5fdata_171',['cgroup_rules_data',['../structcgroup__rules__data.html',1,'']]],
- ['cgroup_5fstat_172',['cgroup_stat',['../structcgroup__stat.html',1,'']]],
- ['cgroup_5fstring_5flist_173',['cgroup_string_list',['../structcgroup__string__list.html',1,'']]],
- ['cgroup_5ftree_5fhandle_174',['cgroup_tree_handle',['../structcgroup__tree__handle.html',1,'']]],
- ['control_5fvalue_175',['control_value',['../structcontrol__value.html',1,'']]],
- ['controller_5fdata_176',['controller_data',['../structcontroller__data.html',1,'']]]
+ ['cgroup_5fabstraction_5fmap_162',['cgroup_abstraction_map',['../structcgroup__abstraction__map.html',1,'']]],
+ ['cgroup_5fcontroller_163',['cgroup_controller',['../structcgroup__controller.html',1,'']]],
+ ['cgroup_5fdictionary_164',['cgroup_dictionary',['../structcgroup__dictionary.html',1,'']]],
+ ['cgroup_5fdictionary_5fitem_165',['cgroup_dictionary_item',['../structcgroup__dictionary__item.html',1,'']]],
+ ['cgroup_5fdictionary_5fiterator_166',['cgroup_dictionary_iterator',['../structcgroup__dictionary__iterator.html',1,'']]],
+ ['cgroup_5ffile_5finfo_167',['cgroup_file_info',['../structcgroup__file__info.html',1,'']]],
+ ['cgroup_5fgroup_5fspec_168',['cgroup_group_spec',['../structcgroup__group__spec.html',1,'']]],
+ ['cgroup_5fmount_5fpoint_169',['cgroup_mount_point',['../structcgroup__mount__point.html',1,'']]],
+ ['cgroup_5frule_170',['cgroup_rule',['../structcgroup__rule.html',1,'']]],
+ ['cgroup_5frule_5flist_171',['cgroup_rule_list',['../structcgroup__rule__list.html',1,'']]],
+ ['cgroup_5frules_5fdata_172',['cgroup_rules_data',['../structcgroup__rules__data.html',1,'']]],
+ ['cgroup_5fstat_173',['cgroup_stat',['../structcgroup__stat.html',1,'']]],
+ ['cgroup_5fstring_5flist_174',['cgroup_string_list',['../structcgroup__string__list.html',1,'']]],
+ ['cgroup_5ftree_5fhandle_175',['cgroup_tree_handle',['../structcgroup__tree__handle.html',1,'']]],
+ ['control_5fvalue_176',['control_value',['../structcontrol__value.html',1,'']]],
+ ['controller_5fdata_177',['controller_data',['../structcontroller__data.html',1,'']]]
];
var searchData=
[
- ['ext_5fcgroup_5frecord_177',['ext_cgroup_record',['../structext__cgroup__record.html',1,'']]]
+ ['ext_5fcgroup_5frecord_178',['ext_cgroup_record',['../structext__cgroup__record.html',1,'']]]
];
var searchData=
[
- ['parent_5finfo_178',['parent_info',['../structparent__info.html',1,'']]]
+ ['parent_5finfo_179',['parent_info',['../structparent__info.html',1,'']]]
];
var searchData=
[
- ['unchanged_5fpid_179',['unchanged_pid',['../structunchanged__pid.html',1,'']]]
+ ['unchanged_5fpid_180',['unchanged_pid',['../structunchanged__pid.html',1,'']]]
];
['ecgconfigparsefail_289',['ECGCONFIGPARSEFAIL',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55baf808b0e31be4bfbe8a21f800f913f9c0',1,'error.h']]],
['ecgeof_290',['ECGEOF',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba2724c2f0af0d3e3cea66027f6bf2e436',1,'error.h']]],
['ecgnonempty_291',['ECGNONEMPTY',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba94dbe90328ef8a212633ec464b9b9b11',1,'error.h']]],
- ['ecgother_292',['ECGOTHER',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba88111f9ca2e967cbf7565724444c0193',1,'error.h']]],
- ['ecgroupmultimounted_293',['ECGROUPMULTIMOUNTED',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba24a6584dd4238475a4e247bdf6956def',1,'error.h']]],
- ['ecgroupnorules_294',['ECGROUPNORULES',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba7c23c1a7cbfb7e8e9c66dd96b5c66d21',1,'error.h']]],
- ['ecgroupparsefail_295',['ECGROUPPARSEFAIL',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55bac62bda67f3029c39ef456100008b1f39',1,'error.h']]]
+ ['ecgnoversionconvert_292',['ECGNOVERSIONCONVERT',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba33cc635e4cc4055b2c487f027fbdd960',1,'error.h']]],
+ ['ecgother_293',['ECGOTHER',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba88111f9ca2e967cbf7565724444c0193',1,'error.h']]],
+ ['ecgroupmultimounted_294',['ECGROUPMULTIMOUNTED',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba24a6584dd4238475a4e247bdf6956def',1,'error.h']]],
+ ['ecgroupnorules_295',['ECGROUPNORULES',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba7c23c1a7cbfb7e8e9c66dd96b5c66d21',1,'error.h']]],
+ ['ecgroupparsefail_296',['ECGROUPPARSEFAIL',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55bac62bda67f3029c39ef456100008b1f39',1,'error.h']]]
];
var searchData=
[
- ['cg_5fchmod_5frecursive_180',['cg_chmod_recursive',['../group__group__groups.html#gaef0bf6cd480f2dcb5e964de151a27dd1',1,'cg_chmod_recursive(struct cgroup *cgroup, mode_t dir_mode, int dirm_change, mode_t file_mode, int filem_change): api.c'],['../group__group__groups.html#gaef0bf6cd480f2dcb5e964de151a27dd1',1,'cg_chmod_recursive(struct cgroup *cgroup, mode_t dir_mode, int dirm_change, mode_t file_mode, int filem_change): api.c']]],
- ['cgroup_5fadd_5fall_5fcontrollers_181',['cgroup_add_all_controllers',['../group__group__groups.html#gae870d271b789b5c54c2e3d35de3cd6f9',1,'cgroup_add_all_controllers(struct cgroup *cgroup): wrapper.c'],['../group__group__groups.html#gae870d271b789b5c54c2e3d35de3cd6f9',1,'cgroup_add_all_controllers(struct cgroup *cgroup): wrapper.c']]],
- ['cgroup_5fadd_5fcontroller_182',['cgroup_add_controller',['../group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130',1,'cgroup_add_controller(struct cgroup *cgroup, const char *name): wrapper.c'],['../group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130',1,'cgroup_add_controller(struct cgroup *cgroup, const char *name): wrapper.c']]],
- ['cgroup_5fadd_5fvalue_5fbool_183',['cgroup_add_value_bool',['../group__group__groups.html#ga4b191a600f84b00ea7afd12c01d918f3',1,'cgroup_add_value_bool(struct cgroup_controller *controller, const char *name, bool value): wrapper.c'],['../group__group__groups.html#ga4b191a600f84b00ea7afd12c01d918f3',1,'cgroup_add_value_bool(struct cgroup_controller *controller, const char *name, bool value): wrapper.c']]],
- ['cgroup_5fadd_5fvalue_5fint64_184',['cgroup_add_value_int64',['../group__group__groups.html#ga6c973bb5ce99e7a91def2032f23d7087',1,'cgroup_add_value_int64(struct cgroup_controller *controller, const char *name, int64_t value): wrapper.c'],['../group__group__groups.html#ga6c973bb5ce99e7a91def2032f23d7087',1,'cgroup_add_value_int64(struct cgroup_controller *controller, const char *name, int64_t value): wrapper.c']]],
- ['cgroup_5fadd_5fvalue_5fstring_185',['cgroup_add_value_string',['../group__group__groups.html#ga4817c68ab791c09c07b663c29b3fb029',1,'cgroup_add_value_string(struct cgroup_controller *controller, const char *name, const char *value): wrapper.c'],['../group__group__groups.html#ga4817c68ab791c09c07b663c29b3fb029',1,'cgroup_add_value_string(struct cgroup_controller *controller, const char *name, const char *value): wrapper.c']]],
- ['cgroup_5fadd_5fvalue_5fuint64_186',['cgroup_add_value_uint64',['../group__group__groups.html#gad9d2216205b96278c626122f8d5e63bb',1,'cgroup_add_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value): wrapper.c'],['../group__group__groups.html#gad9d2216205b96278c626122f8d5e63bb',1,'cgroup_add_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value): wrapper.c']]],
- ['cgroup_5fattach_5ftask_187',['cgroup_attach_task',['../group__group__tasks.html#ga43414ac2b1fc73bbb46b6278c7500188',1,'cgroup_attach_task(struct cgroup *cgroup): api.c'],['../group__group__tasks.html#ga43414ac2b1fc73bbb46b6278c7500188',1,'cgroup_attach_task(struct cgroup *cgroup): api.c']]],
- ['cgroup_5fattach_5ftask_5fpid_188',['cgroup_attach_task_pid',['../group__group__tasks.html#ga9c7532681986d156ac3f6bac1fcf6aab',1,'cgroup_attach_task_pid(struct cgroup *cgroup, pid_t tid): api.c'],['../group__group__tasks.html#ga9c7532681986d156ac3f6bac1fcf6aab',1,'cgroup_attach_task_pid(struct cgroup *cgroup, pid_t tid): api.c']]],
- ['cgroup_5fchange_5fall_5fcgroups_189',['cgroup_change_all_cgroups',['../group__group__tasks.html#gafc69658b012b6f1c11ba078ffccd70a2',1,'cgroup_change_all_cgroups(void): api.c'],['../group__group__tasks.html#gafc69658b012b6f1c11ba078ffccd70a2',1,'cgroup_change_all_cgroups(void): api.c']]],
- ['cgroup_5fchange_5fcgroup_5fflags_190',['cgroup_change_cgroup_flags',['../group__group__tasks.html#ga368e7b8e19b3943ab6fb50e76a09e6ea',1,'cgroup_change_cgroup_flags(uid_t uid, gid_t gid, const char *procname, pid_t pid, int flags): api.c'],['../group__group__tasks.html#ga368e7b8e19b3943ab6fb50e76a09e6ea',1,'cgroup_change_cgroup_flags(uid_t uid, gid_t gid, const char *procname, pid_t pid, int flags): api.c']]],
- ['cgroup_5fchange_5fcgroup_5fpath_191',['cgroup_change_cgroup_path',['../group__group__tasks.html#ga2d4677baef780c003fc6fba6b5dc78f2',1,'cgroup_change_cgroup_path(const char *path, pid_t pid, const char *const controllers[]): api.c'],['../group__group__tasks.html#ga2d4677baef780c003fc6fba6b5dc78f2',1,'cgroup_change_cgroup_path(const char *dest, pid_t pid, const char *const controllers[]): api.c']]],
- ['cgroup_5fchange_5fcgroup_5fuid_5fgid_192',['cgroup_change_cgroup_uid_gid',['../group__group__tasks.html#ga5eab78a922dbacd368360f03c70146be',1,'cgroup_change_cgroup_uid_gid(uid_t uid, gid_t gid, pid_t pid): api.c'],['../group__group__tasks.html#ga5eab78a922dbacd368360f03c70146be',1,'cgroup_change_cgroup_uid_gid(uid_t uid, gid_t gid, pid_t pid): api.c']]],
- ['cgroup_5fchange_5fcgroup_5fuid_5fgid_5fflags_193',['cgroup_change_cgroup_uid_gid_flags',['../group__group__tasks.html#gae472183a7c9a37826ef15c77014c47fb',1,'cgroup_change_cgroup_uid_gid_flags(uid_t uid, gid_t gid, pid_t pid, int flags): api.c'],['../group__group__tasks.html#gae472183a7c9a37826ef15c77014c47fb',1,'cgroup_change_cgroup_uid_gid_flags(uid_t uid, gid_t gid, pid_t pid, int flags): api.c']]],
- ['cgroup_5fcompare_5fcgroup_194',['cgroup_compare_cgroup',['../group__group__groups.html#ga86898b59e50335f99fe84a11fa38d3fc',1,'cgroup_compare_cgroup(struct cgroup *cgroup_a, struct cgroup *cgroup_b): wrapper.c'],['../group__group__groups.html#ga86898b59e50335f99fe84a11fa38d3fc',1,'cgroup_compare_cgroup(struct cgroup *cgroup_a, struct cgroup *cgroup_b): wrapper.c']]],
- ['cgroup_5fcompare_5fcontrollers_195',['cgroup_compare_controllers',['../group__group__groups.html#gab1725c50c49cec4b0bdad1f26b150ca7',1,'cgroup_compare_controllers(struct cgroup_controller *cgca, struct cgroup_controller *cgcb): wrapper.c'],['../group__group__groups.html#gab1725c50c49cec4b0bdad1f26b150ca7',1,'cgroup_compare_controllers(struct cgroup_controller *cgca, struct cgroup_controller *cgcb): wrapper.c']]],
- ['cgroup_5fconfig_5fcreate_5ftemplate_5fgroup_196',['cgroup_config_create_template_group',['../group__group__config.html#ga72066260cd31ceed7ecc1a648eba37f2',1,'cgroup_config_create_template_group(struct cgroup *cgroup, char *template_name, int flags): config.c'],['../group__group__config.html#ga72066260cd31ceed7ecc1a648eba37f2',1,'cgroup_config_create_template_group(struct cgroup *cgroup, char *template_name, int flags): config.c']]],
- ['cgroup_5fconfig_5fload_5fconfig_197',['cgroup_config_load_config',['../group__group__config.html#ga8adfaca013333acf922a167f55b84140',1,'cgroup_config_load_config(const char *pathname): config.c'],['../group__group__config.html#ga8adfaca013333acf922a167f55b84140',1,'cgroup_config_load_config(const char *pathname): config.c']]],
- ['cgroup_5fconfig_5fset_5fdefault_198',['cgroup_config_set_default',['../group__group__config.html#ga2d3a252b2c0c61c8f64cb1fc41e370ea',1,'cgroup_config_set_default(struct cgroup *new_default): config.c'],['../group__group__config.html#ga2d3a252b2c0c61c8f64cb1fc41e370ea',1,'cgroup_config_set_default(struct cgroup *new_default): config.c']]],
- ['cgroup_5fconfig_5funload_5fconfig_199',['cgroup_config_unload_config',['../group__group__config.html#gaff77affa0b80ccf507b4b46cc0a8c085',1,'cgroup_config_unload_config(const char *pathname, int flags): config.c'],['../group__group__config.html#gaff77affa0b80ccf507b4b46cc0a8c085',1,'cgroup_config_unload_config(const char *pathname, int flags): config.c']]],
- ['cgroup_5fcopy_5fcgroup_200',['cgroup_copy_cgroup',['../group__group__groups.html#gaa981a95e0917d3167601a4c1b392336a',1,'cgroup_copy_cgroup(struct cgroup *dst, struct cgroup *src): api.c'],['../group__group__groups.html#gaa981a95e0917d3167601a4c1b392336a',1,'cgroup_copy_cgroup(struct cgroup *dst, struct cgroup *src): api.c']]],
- ['cgroup_5fcreate_5fcgroup_201',['cgroup_create_cgroup',['../group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7',1,'cgroup_create_cgroup(struct cgroup *cgroup, int ignore_ownership): api.c'],['../group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7',1,'cgroup_create_cgroup(struct cgroup *cgroup, int ignore_ownership): api.c']]],
- ['cgroup_5fcreate_5fcgroup_5ffrom_5fparent_202',['cgroup_create_cgroup_from_parent',['../group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62',1,'cgroup_create_cgroup_from_parent(struct cgroup *cgroup, int ignore_ownership): api.c'],['../group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62',1,'cgroup_create_cgroup_from_parent(struct cgroup *cgroup, int ignore_ownership): api.c']]],
- ['cgroup_5fdelete_5fcgroup_203',['cgroup_delete_cgroup',['../group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565',1,'cgroup_delete_cgroup(struct cgroup *cgroup, int ignore_migration): api.c'],['../group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565',1,'cgroup_delete_cgroup(struct cgroup *cgroup, int ignore_migration): api.c']]],
- ['cgroup_5fdelete_5fcgroup_5fext_204',['cgroup_delete_cgroup_ext',['../group__group__groups.html#ga860c1ec70189c969b2c8373fc1e96d36',1,'cgroup_delete_cgroup_ext(struct cgroup *cgroup, int flags): api.c'],['../group__group__groups.html#ga860c1ec70189c969b2c8373fc1e96d36',1,'cgroup_delete_cgroup_ext(struct cgroup *cgroup, int flags): api.c']]],
- ['cgroup_5ffree_205',['cgroup_free',['../group__group__groups.html#gab20fdb1ae479f8baac482336abf73900',1,'cgroup_free(struct cgroup **cgroup): wrapper.c'],['../group__group__groups.html#gab20fdb1ae479f8baac482336abf73900',1,'cgroup_free(struct cgroup **cgroup): wrapper.c']]],
- ['cgroup_5ffree_5fcontrollers_206',['cgroup_free_controllers',['../group__group__groups.html#ga92d27c9ff0d655838642a7aa68497596',1,'cgroup_free_controllers(struct cgroup *cgroup): wrapper.c'],['../group__group__groups.html#ga92d27c9ff0d655838642a7aa68497596',1,'cgroup_free_controllers(struct cgroup *cgroup): wrapper.c']]],
- ['cgroup_5fget_5fall_5fcontroller_5fbegin_207',['cgroup_get_all_controller_begin',['../group__group__iterators.html#gad48ef653388ca6739a9b6bbb9d7da82e',1,'cgroup_get_all_controller_begin(void **handle, struct controller_data *info): api.c'],['../group__group__iterators.html#gad48ef653388ca6739a9b6bbb9d7da82e',1,'cgroup_get_all_controller_begin(void **handle, struct controller_data *info): api.c']]],
- ['cgroup_5fget_5fall_5fcontroller_5fend_208',['cgroup_get_all_controller_end',['../group__group__iterators.html#ga0c467d42a2c9a916a0edd339a6d7afc8',1,'cgroup_get_all_controller_end(void **handle): api.c'],['../group__group__iterators.html#ga0c467d42a2c9a916a0edd339a6d7afc8',1,'cgroup_get_all_controller_end(void **handle): api.c']]],
- ['cgroup_5fget_5fall_5fcontroller_5fnext_209',['cgroup_get_all_controller_next',['../group__group__iterators.html#ga3d98a04b29b1fe409db1114b7aa76809',1,'cgroup_get_all_controller_next(void **handle, struct controller_data *info): api.c'],['../group__group__iterators.html#ga3d98a04b29b1fe409db1114b7aa76809',1,'cgroup_get_all_controller_next(void **handle, struct controller_data *info): api.c']]],
- ['cgroup_5fget_5fcgroup_210',['cgroup_get_cgroup',['../group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6',1,'cgroup_get_cgroup(struct cgroup *cgroup): api.c'],['../group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6',1,'cgroup_get_cgroup(struct cgroup *cgroup): api.c']]],
- ['cgroup_5fget_5fcgroup_5fname_211',['cgroup_get_cgroup_name',['../group__group__groups.html#gac9b5ff481de08ba8fdfcbd42940d2cbf',1,'cgroup_get_cgroup_name(struct cgroup *cgroup): wrapper.c'],['../group__group__groups.html#gac9b5ff481de08ba8fdfcbd42940d2cbf',1,'cgroup_get_cgroup_name(struct cgroup *cgroup): wrapper.c']]],
- ['cgroup_5fget_5fcontroller_212',['cgroup_get_controller',['../group__group__groups.html#ga8335b0aec59c8f845639a7404affce05',1,'cgroup_get_controller(struct cgroup *cgroup, const char *name): wrapper.c'],['../group__group__groups.html#ga8335b0aec59c8f845639a7404affce05',1,'cgroup_get_controller(struct cgroup *cgroup, const char *name): wrapper.c']]],
- ['cgroup_5fget_5fcontroller_5fbegin_213',['cgroup_get_controller_begin',['../group__group__iterators.html#ga5f9f21138f9b18912a16b21a45b53c44',1,'cgroup_get_controller_begin(void **handle, struct cgroup_mount_point *info): api.c'],['../group__group__iterators.html#ga5f9f21138f9b18912a16b21a45b53c44',1,'cgroup_get_controller_begin(void **handle, struct cgroup_mount_point *info): api.c']]],
- ['cgroup_5fget_5fcontroller_5fend_214',['cgroup_get_controller_end',['../group__group__iterators.html#gab485cda2bc9640bacbf61f1953ae750c',1,'cgroup_get_controller_end(void **handle): api.c'],['../group__group__iterators.html#gab485cda2bc9640bacbf61f1953ae750c',1,'cgroup_get_controller_end(void **handle): api.c']]],
- ['cgroup_5fget_5fcontroller_5fnext_215',['cgroup_get_controller_next',['../group__group__iterators.html#ga926b70423b6c087c21a14670cd23cd7d',1,'cgroup_get_controller_next(void **handle, struct cgroup_mount_point *info): api.c'],['../group__group__iterators.html#ga926b70423b6c087c21a14670cd23cd7d',1,'cgroup_get_controller_next(void **handle, struct cgroup_mount_point *info): api.c']]],
- ['cgroup_5fget_5fcurrent_5fcontroller_5fpath_216',['cgroup_get_current_controller_path',['../group__group__tasks.html#ga6f2c17b99cf2526cb46df4769eb3f46e',1,'cgroup_get_current_controller_path(pid_t pid, const char *controller, char **current_path): api.c'],['../group__group__tasks.html#ga6f2c17b99cf2526cb46df4769eb3f46e',1,'cgroup_get_current_controller_path(pid_t pid, const char *controller, char **current_path): api.c']]],
- ['cgroup_5fget_5flast_5ferrno_217',['cgroup_get_last_errno',['../group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46',1,'cgroup_get_last_errno(void): api.c'],['../group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46',1,'cgroup_get_last_errno(void): api.c']]],
- ['cgroup_5fget_5fprocs_218',['cgroup_get_procs',['../group__group__groups.html#ga08a4fe913d59f61a39e61b8b02537dc2',1,'cgroup_get_procs(char *name, char *controller, pid_t **pids, int *size): api.c'],['../group__group__groups.html#ga08a4fe913d59f61a39e61b8b02537dc2',1,'cgroup_get_procs(char *name, char *controller, pid_t **pids, int *size): api.c']]],
- ['cgroup_5fget_5fsubsys_5fmount_5fpoint_219',['cgroup_get_subsys_mount_point',['../group__group__init.html#ga4f061b353321b81869057970d96f09f7',1,'cgroup_get_subsys_mount_point(const char *controller, char **mount_point): api.c'],['../group__group__init.html#ga4f061b353321b81869057970d96f09f7',1,'cgroup_get_subsys_mount_point(const char *controller, char **mount_point): api.c']]],
- ['cgroup_5fget_5fsubsys_5fmount_5fpoint_5fbegin_220',['cgroup_get_subsys_mount_point_begin',['../group__group__iterators.html#ga18a3c6fe7da42b9da96ce34dce1e31b8',1,'cgroup_get_subsys_mount_point_begin(const char *controller, void **handle, char *path): api.c'],['../group__group__iterators.html#ga18a3c6fe7da42b9da96ce34dce1e31b8',1,'cgroup_get_subsys_mount_point_begin(const char *controller, void **handle, char *path): api.c']]],
- ['cgroup_5fget_5fsubsys_5fmount_5fpoint_5fend_221',['cgroup_get_subsys_mount_point_end',['../group__group__iterators.html#ga9c9b0f1921c205bd25bfc6c1d20486eb',1,'cgroup_get_subsys_mount_point_end(void **handle): api.c'],['../group__group__iterators.html#ga9c9b0f1921c205bd25bfc6c1d20486eb',1,'cgroup_get_subsys_mount_point_end(void **handle): api.c']]],
- ['cgroup_5fget_5fsubsys_5fmount_5fpoint_5fnext_222',['cgroup_get_subsys_mount_point_next',['../group__group__iterators.html#ga3d66997158cb8a334317923ad94cc789',1,'cgroup_get_subsys_mount_point_next(void **handle, char *path): api.c'],['../group__group__iterators.html#ga3d66997158cb8a334317923ad94cc789',1,'cgroup_get_subsys_mount_point_next(void **handle, char *path): api.c']]],
- ['cgroup_5fget_5ftask_5fbegin_223',['cgroup_get_task_begin',['../group__group__iterators.html#gad7218154192f733120e1025cc19d0a36',1,'cgroup_get_task_begin(const char *cgroup, const char *controller, void **handle, pid_t *pid): api.c'],['../group__group__iterators.html#gad7218154192f733120e1025cc19d0a36',1,'cgroup_get_task_begin(const char *cgroup, const char *controller, void **handle, pid_t *pid): api.c']]],
- ['cgroup_5fget_5ftask_5fend_224',['cgroup_get_task_end',['../group__group__iterators.html#gaeb955e5f4da551268380b1271d478816',1,'cgroup_get_task_end(void **handle): api.c'],['../group__group__iterators.html#gaeb955e5f4da551268380b1271d478816',1,'cgroup_get_task_end(void **handle): api.c']]],
- ['cgroup_5fget_5ftask_5fnext_225',['cgroup_get_task_next',['../group__group__iterators.html#gaf3a0364682b7449ddccfb0862bbb565e',1,'cgroup_get_task_next(void **handle, pid_t *pid): api.c'],['../group__group__iterators.html#gaf3a0364682b7449ddccfb0862bbb565e',1,'cgroup_get_task_next(void **handle, pid_t *pid): api.c']]],
- ['cgroup_5fget_5fuid_5fgid_226',['cgroup_get_uid_gid',['../group__group__groups.html#ga007d21c304d9cc6e948dc0ae51ecfa86',1,'cgroup_get_uid_gid(struct cgroup *cgroup, uid_t *tasks_uid, gid_t *tasks_gid, uid_t *control_uid, gid_t *control_gid): wrapper.c'],['../group__group__groups.html#ga007d21c304d9cc6e948dc0ae51ecfa86',1,'cgroup_get_uid_gid(struct cgroup *cgroup, uid_t *tasks_uid, gid_t *tasks_gid, uid_t *control_uid, gid_t *control_gid): wrapper.c']]],
- ['cgroup_5fget_5fvalue_5fbool_227',['cgroup_get_value_bool',['../group__group__groups.html#gab95007148eac89b7e935d93a4524787b',1,'cgroup_get_value_bool(struct cgroup_controller *controller, const char *name, bool *value): wrapper.c'],['../group__group__groups.html#gab95007148eac89b7e935d93a4524787b',1,'cgroup_get_value_bool(struct cgroup_controller *controller, const char *name, bool *value): wrapper.c']]],
- ['cgroup_5fget_5fvalue_5fint64_228',['cgroup_get_value_int64',['../group__group__groups.html#ga0fe9b05f26b3cab21fc446c9a2700526',1,'cgroup_get_value_int64(struct cgroup_controller *controller, const char *name, int64_t *value): wrapper.c'],['../group__group__groups.html#ga0fe9b05f26b3cab21fc446c9a2700526',1,'cgroup_get_value_int64(struct cgroup_controller *controller, const char *name, int64_t *value): wrapper.c']]],
- ['cgroup_5fget_5fvalue_5fname_229',['cgroup_get_value_name',['../group__group__groups.html#ga16ca75fd16eda7cfc642421111e9a331',1,'cgroup_get_value_name(struct cgroup_controller *controller, int index): wrapper.c'],['../group__group__groups.html#ga16ca75fd16eda7cfc642421111e9a331',1,'cgroup_get_value_name(struct cgroup_controller *controller, int index): wrapper.c']]],
- ['cgroup_5fget_5fvalue_5fname_5fcount_230',['cgroup_get_value_name_count',['../group__group__groups.html#ga25115085978ce2a8d671e7876cc49c1d',1,'cgroup_get_value_name_count(struct cgroup_controller *controller): wrapper.c'],['../group__group__groups.html#ga25115085978ce2a8d671e7876cc49c1d',1,'cgroup_get_value_name_count(struct cgroup_controller *controller): wrapper.c']]],
- ['cgroup_5fget_5fvalue_5fstring_231',['cgroup_get_value_string',['../group__group__groups.html#gafaa51e5ffe09f8ad05585a1d3b6f7fa9',1,'cgroup_get_value_string(struct cgroup_controller *controller, const char *name, char **value): wrapper.c'],['../group__group__groups.html#gafaa51e5ffe09f8ad05585a1d3b6f7fa9',1,'cgroup_get_value_string(struct cgroup_controller *controller, const char *name, char **value): wrapper.c']]],
- ['cgroup_5fget_5fvalue_5fuint64_232',['cgroup_get_value_uint64',['../group__group__groups.html#ga951861259c0373895bfb637fce337312',1,'cgroup_get_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t *value): wrapper.c'],['../group__group__groups.html#ga951861259c0373895bfb637fce337312',1,'cgroup_get_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t *value): wrapper.c']]],
- ['cgroup_5finit_233',['cgroup_init',['../group__group__init.html#ga37740e2f5f298edf13e18fcd7632b75a',1,'cgroup_init(void): api.c'],['../group__group__init.html#ga37740e2f5f298edf13e18fcd7632b75a',1,'cgroup_init(void): api.c']]],
+ ['cg_5fchmod_5frecursive_181',['cg_chmod_recursive',['../group__group__groups.html#gaef0bf6cd480f2dcb5e964de151a27dd1',1,'cg_chmod_recursive(struct cgroup *cgroup, mode_t dir_mode, int dirm_change, mode_t file_mode, int filem_change): api.c'],['../group__group__groups.html#gaef0bf6cd480f2dcb5e964de151a27dd1',1,'cg_chmod_recursive(struct cgroup *cgroup, mode_t dir_mode, int dirm_change, mode_t file_mode, int filem_change): api.c']]],
+ ['cgroup_5fadd_5fall_5fcontrollers_182',['cgroup_add_all_controllers',['../group__group__groups.html#gae870d271b789b5c54c2e3d35de3cd6f9',1,'cgroup_add_all_controllers(struct cgroup *cgroup): wrapper.c'],['../group__group__groups.html#gae870d271b789b5c54c2e3d35de3cd6f9',1,'cgroup_add_all_controllers(struct cgroup *cgroup): wrapper.c']]],
+ ['cgroup_5fadd_5fcontroller_183',['cgroup_add_controller',['../group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130',1,'cgroup_add_controller(struct cgroup *cgroup, const char *name): wrapper.c'],['../group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130',1,'cgroup_add_controller(struct cgroup *cgroup, const char *name): wrapper.c']]],
+ ['cgroup_5fadd_5fvalue_5fbool_184',['cgroup_add_value_bool',['../group__group__groups.html#ga4b191a600f84b00ea7afd12c01d918f3',1,'cgroup_add_value_bool(struct cgroup_controller *controller, const char *name, bool value): wrapper.c'],['../group__group__groups.html#ga4b191a600f84b00ea7afd12c01d918f3',1,'cgroup_add_value_bool(struct cgroup_controller *controller, const char *name, bool value): wrapper.c']]],
+ ['cgroup_5fadd_5fvalue_5fint64_185',['cgroup_add_value_int64',['../group__group__groups.html#ga6c973bb5ce99e7a91def2032f23d7087',1,'cgroup_add_value_int64(struct cgroup_controller *controller, const char *name, int64_t value): wrapper.c'],['../group__group__groups.html#ga6c973bb5ce99e7a91def2032f23d7087',1,'cgroup_add_value_int64(struct cgroup_controller *controller, const char *name, int64_t value): wrapper.c']]],
+ ['cgroup_5fadd_5fvalue_5fstring_186',['cgroup_add_value_string',['../group__group__groups.html#ga4817c68ab791c09c07b663c29b3fb029',1,'cgroup_add_value_string(struct cgroup_controller *controller, const char *name, const char *value): wrapper.c'],['../group__group__groups.html#ga4817c68ab791c09c07b663c29b3fb029',1,'cgroup_add_value_string(struct cgroup_controller *controller, const char *name, const char *value): wrapper.c']]],
+ ['cgroup_5fadd_5fvalue_5fuint64_187',['cgroup_add_value_uint64',['../group__group__groups.html#gad9d2216205b96278c626122f8d5e63bb',1,'cgroup_add_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value): wrapper.c'],['../group__group__groups.html#gad9d2216205b96278c626122f8d5e63bb',1,'cgroup_add_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value): wrapper.c']]],
+ ['cgroup_5fattach_5ftask_188',['cgroup_attach_task',['../group__group__tasks.html#ga43414ac2b1fc73bbb46b6278c7500188',1,'cgroup_attach_task(struct cgroup *cgroup): api.c'],['../group__group__tasks.html#ga43414ac2b1fc73bbb46b6278c7500188',1,'cgroup_attach_task(struct cgroup *cgroup): api.c']]],
+ ['cgroup_5fattach_5ftask_5fpid_189',['cgroup_attach_task_pid',['../group__group__tasks.html#ga9c7532681986d156ac3f6bac1fcf6aab',1,'cgroup_attach_task_pid(struct cgroup *cgroup, pid_t tid): api.c'],['../group__group__tasks.html#ga9c7532681986d156ac3f6bac1fcf6aab',1,'cgroup_attach_task_pid(struct cgroup *cgroup, pid_t tid): api.c']]],
+ ['cgroup_5fchange_5fall_5fcgroups_190',['cgroup_change_all_cgroups',['../group__group__tasks.html#gafc69658b012b6f1c11ba078ffccd70a2',1,'cgroup_change_all_cgroups(void): api.c'],['../group__group__tasks.html#gafc69658b012b6f1c11ba078ffccd70a2',1,'cgroup_change_all_cgroups(void): api.c']]],
+ ['cgroup_5fchange_5fcgroup_5fflags_191',['cgroup_change_cgroup_flags',['../group__group__tasks.html#ga368e7b8e19b3943ab6fb50e76a09e6ea',1,'cgroup_change_cgroup_flags(uid_t uid, gid_t gid, const char *procname, pid_t pid, int flags): api.c'],['../group__group__tasks.html#ga368e7b8e19b3943ab6fb50e76a09e6ea',1,'cgroup_change_cgroup_flags(uid_t uid, gid_t gid, const char *procname, pid_t pid, int flags): api.c']]],
+ ['cgroup_5fchange_5fcgroup_5fpath_192',['cgroup_change_cgroup_path',['../group__group__tasks.html#ga2d4677baef780c003fc6fba6b5dc78f2',1,'cgroup_change_cgroup_path(const char *path, pid_t pid, const char *const controllers[]): api.c'],['../group__group__tasks.html#ga2d4677baef780c003fc6fba6b5dc78f2',1,'cgroup_change_cgroup_path(const char *dest, pid_t pid, const char *const controllers[]): api.c']]],
+ ['cgroup_5fchange_5fcgroup_5fuid_5fgid_193',['cgroup_change_cgroup_uid_gid',['../group__group__tasks.html#ga5eab78a922dbacd368360f03c70146be',1,'cgroup_change_cgroup_uid_gid(uid_t uid, gid_t gid, pid_t pid): api.c'],['../group__group__tasks.html#ga5eab78a922dbacd368360f03c70146be',1,'cgroup_change_cgroup_uid_gid(uid_t uid, gid_t gid, pid_t pid): api.c']]],
+ ['cgroup_5fchange_5fcgroup_5fuid_5fgid_5fflags_194',['cgroup_change_cgroup_uid_gid_flags',['../group__group__tasks.html#gae472183a7c9a37826ef15c77014c47fb',1,'cgroup_change_cgroup_uid_gid_flags(uid_t uid, gid_t gid, pid_t pid, int flags): api.c'],['../group__group__tasks.html#gae472183a7c9a37826ef15c77014c47fb',1,'cgroup_change_cgroup_uid_gid_flags(uid_t uid, gid_t gid, pid_t pid, int flags): api.c']]],
+ ['cgroup_5fcompare_5fcgroup_195',['cgroup_compare_cgroup',['../group__group__groups.html#ga86898b59e50335f99fe84a11fa38d3fc',1,'cgroup_compare_cgroup(struct cgroup *cgroup_a, struct cgroup *cgroup_b): wrapper.c'],['../group__group__groups.html#ga86898b59e50335f99fe84a11fa38d3fc',1,'cgroup_compare_cgroup(struct cgroup *cgroup_a, struct cgroup *cgroup_b): wrapper.c']]],
+ ['cgroup_5fcompare_5fcontrollers_196',['cgroup_compare_controllers',['../group__group__groups.html#gab1725c50c49cec4b0bdad1f26b150ca7',1,'cgroup_compare_controllers(struct cgroup_controller *cgca, struct cgroup_controller *cgcb): wrapper.c'],['../group__group__groups.html#gab1725c50c49cec4b0bdad1f26b150ca7',1,'cgroup_compare_controllers(struct cgroup_controller *cgca, struct cgroup_controller *cgcb): wrapper.c']]],
+ ['cgroup_5fconfig_5fcreate_5ftemplate_5fgroup_197',['cgroup_config_create_template_group',['../group__group__config.html#ga72066260cd31ceed7ecc1a648eba37f2',1,'cgroup_config_create_template_group(struct cgroup *cgroup, char *template_name, int flags): config.c'],['../group__group__config.html#ga72066260cd31ceed7ecc1a648eba37f2',1,'cgroup_config_create_template_group(struct cgroup *cgroup, char *template_name, int flags): config.c']]],
+ ['cgroup_5fconfig_5fload_5fconfig_198',['cgroup_config_load_config',['../group__group__config.html#ga8adfaca013333acf922a167f55b84140',1,'cgroup_config_load_config(const char *pathname): config.c'],['../group__group__config.html#ga8adfaca013333acf922a167f55b84140',1,'cgroup_config_load_config(const char *pathname): config.c']]],
+ ['cgroup_5fconfig_5fset_5fdefault_199',['cgroup_config_set_default',['../group__group__config.html#ga2d3a252b2c0c61c8f64cb1fc41e370ea',1,'cgroup_config_set_default(struct cgroup *new_default): config.c'],['../group__group__config.html#ga2d3a252b2c0c61c8f64cb1fc41e370ea',1,'cgroup_config_set_default(struct cgroup *new_default): config.c']]],
+ ['cgroup_5fconfig_5funload_5fconfig_200',['cgroup_config_unload_config',['../group__group__config.html#gaff77affa0b80ccf507b4b46cc0a8c085',1,'cgroup_config_unload_config(const char *pathname, int flags): config.c'],['../group__group__config.html#gaff77affa0b80ccf507b4b46cc0a8c085',1,'cgroup_config_unload_config(const char *pathname, int flags): config.c']]],
+ ['cgroup_5fcopy_5fcgroup_201',['cgroup_copy_cgroup',['../group__group__groups.html#gaa981a95e0917d3167601a4c1b392336a',1,'cgroup_copy_cgroup(struct cgroup *dst, struct cgroup *src): api.c'],['../group__group__groups.html#gaa981a95e0917d3167601a4c1b392336a',1,'cgroup_copy_cgroup(struct cgroup *dst, struct cgroup *src): api.c']]],
+ ['cgroup_5fcreate_5fcgroup_202',['cgroup_create_cgroup',['../group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7',1,'cgroup_create_cgroup(struct cgroup *cgroup, int ignore_ownership): api.c'],['../group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7',1,'cgroup_create_cgroup(struct cgroup *cgroup, int ignore_ownership): api.c']]],
+ ['cgroup_5fcreate_5fcgroup_5ffrom_5fparent_203',['cgroup_create_cgroup_from_parent',['../group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62',1,'cgroup_create_cgroup_from_parent(struct cgroup *cgroup, int ignore_ownership): api.c'],['../group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62',1,'cgroup_create_cgroup_from_parent(struct cgroup *cgroup, int ignore_ownership): api.c']]],
+ ['cgroup_5fdelete_5fcgroup_204',['cgroup_delete_cgroup',['../group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565',1,'cgroup_delete_cgroup(struct cgroup *cgroup, int ignore_migration): api.c'],['../group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565',1,'cgroup_delete_cgroup(struct cgroup *cgroup, int ignore_migration): api.c']]],
+ ['cgroup_5fdelete_5fcgroup_5fext_205',['cgroup_delete_cgroup_ext',['../group__group__groups.html#ga860c1ec70189c969b2c8373fc1e96d36',1,'cgroup_delete_cgroup_ext(struct cgroup *cgroup, int flags): api.c'],['../group__group__groups.html#ga860c1ec70189c969b2c8373fc1e96d36',1,'cgroup_delete_cgroup_ext(struct cgroup *cgroup, int flags): api.c']]],
+ ['cgroup_5ffree_206',['cgroup_free',['../group__group__groups.html#gab20fdb1ae479f8baac482336abf73900',1,'cgroup_free(struct cgroup **cgroup): wrapper.c'],['../group__group__groups.html#gab20fdb1ae479f8baac482336abf73900',1,'cgroup_free(struct cgroup **cgroup): wrapper.c']]],
+ ['cgroup_5ffree_5fcontrollers_207',['cgroup_free_controllers',['../group__group__groups.html#ga92d27c9ff0d655838642a7aa68497596',1,'cgroup_free_controllers(struct cgroup *cgroup): wrapper.c'],['../group__group__groups.html#ga92d27c9ff0d655838642a7aa68497596',1,'cgroup_free_controllers(struct cgroup *cgroup): wrapper.c']]],
+ ['cgroup_5fget_5fall_5fcontroller_5fbegin_208',['cgroup_get_all_controller_begin',['../group__group__iterators.html#gad48ef653388ca6739a9b6bbb9d7da82e',1,'cgroup_get_all_controller_begin(void **handle, struct controller_data *info): api.c'],['../group__group__iterators.html#gad48ef653388ca6739a9b6bbb9d7da82e',1,'cgroup_get_all_controller_begin(void **handle, struct controller_data *info): api.c']]],
+ ['cgroup_5fget_5fall_5fcontroller_5fend_209',['cgroup_get_all_controller_end',['../group__group__iterators.html#ga0c467d42a2c9a916a0edd339a6d7afc8',1,'cgroup_get_all_controller_end(void **handle): api.c'],['../group__group__iterators.html#ga0c467d42a2c9a916a0edd339a6d7afc8',1,'cgroup_get_all_controller_end(void **handle): api.c']]],
+ ['cgroup_5fget_5fall_5fcontroller_5fnext_210',['cgroup_get_all_controller_next',['../group__group__iterators.html#ga3d98a04b29b1fe409db1114b7aa76809',1,'cgroup_get_all_controller_next(void **handle, struct controller_data *info): api.c'],['../group__group__iterators.html#ga3d98a04b29b1fe409db1114b7aa76809',1,'cgroup_get_all_controller_next(void **handle, struct controller_data *info): api.c']]],
+ ['cgroup_5fget_5fcgroup_211',['cgroup_get_cgroup',['../group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6',1,'cgroup_get_cgroup(struct cgroup *cgroup): api.c'],['../group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6',1,'cgroup_get_cgroup(struct cgroup *cgroup): api.c']]],
+ ['cgroup_5fget_5fcgroup_5fname_212',['cgroup_get_cgroup_name',['../group__group__groups.html#gac9b5ff481de08ba8fdfcbd42940d2cbf',1,'cgroup_get_cgroup_name(struct cgroup *cgroup): wrapper.c'],['../group__group__groups.html#gac9b5ff481de08ba8fdfcbd42940d2cbf',1,'cgroup_get_cgroup_name(struct cgroup *cgroup): wrapper.c']]],
+ ['cgroup_5fget_5fcontroller_213',['cgroup_get_controller',['../group__group__groups.html#ga8335b0aec59c8f845639a7404affce05',1,'cgroup_get_controller(struct cgroup *cgroup, const char *name): wrapper.c'],['../group__group__groups.html#ga8335b0aec59c8f845639a7404affce05',1,'cgroup_get_controller(struct cgroup *cgroup, const char *name): wrapper.c']]],
+ ['cgroup_5fget_5fcontroller_5fbegin_214',['cgroup_get_controller_begin',['../group__group__iterators.html#ga5f9f21138f9b18912a16b21a45b53c44',1,'cgroup_get_controller_begin(void **handle, struct cgroup_mount_point *info): api.c'],['../group__group__iterators.html#ga5f9f21138f9b18912a16b21a45b53c44',1,'cgroup_get_controller_begin(void **handle, struct cgroup_mount_point *info): api.c']]],
+ ['cgroup_5fget_5fcontroller_5fend_215',['cgroup_get_controller_end',['../group__group__iterators.html#gab485cda2bc9640bacbf61f1953ae750c',1,'cgroup_get_controller_end(void **handle): api.c'],['../group__group__iterators.html#gab485cda2bc9640bacbf61f1953ae750c',1,'cgroup_get_controller_end(void **handle): api.c']]],
+ ['cgroup_5fget_5fcontroller_5fnext_216',['cgroup_get_controller_next',['../group__group__iterators.html#ga926b70423b6c087c21a14670cd23cd7d',1,'cgroup_get_controller_next(void **handle, struct cgroup_mount_point *info): api.c'],['../group__group__iterators.html#ga926b70423b6c087c21a14670cd23cd7d',1,'cgroup_get_controller_next(void **handle, struct cgroup_mount_point *info): api.c']]],
+ ['cgroup_5fget_5fcontroller_5fversion_217',['cgroup_get_controller_version',['../group__group__groups.html#ga452d8c5e95c8d694e26e7efda045360f',1,'cgroup_get_controller_version(const char *const controller, enum cg_version_t *const version): api.c'],['../group__group__groups.html#ga452d8c5e95c8d694e26e7efda045360f',1,'cgroup_get_controller_version(const char *const controller, enum cg_version_t *const version): api.c']]],
+ ['cgroup_5fget_5fcurrent_5fcontroller_5fpath_218',['cgroup_get_current_controller_path',['../group__group__tasks.html#ga6f2c17b99cf2526cb46df4769eb3f46e',1,'cgroup_get_current_controller_path(pid_t pid, const char *controller, char **current_path): api.c'],['../group__group__tasks.html#ga6f2c17b99cf2526cb46df4769eb3f46e',1,'cgroup_get_current_controller_path(pid_t pid, const char *controller, char **current_path): api.c']]],
+ ['cgroup_5fget_5flast_5ferrno_219',['cgroup_get_last_errno',['../group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46',1,'cgroup_get_last_errno(void): api.c'],['../group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46',1,'cgroup_get_last_errno(void): api.c']]],
+ ['cgroup_5fget_5fprocs_220',['cgroup_get_procs',['../group__group__groups.html#ga08a4fe913d59f61a39e61b8b02537dc2',1,'cgroup_get_procs(char *name, char *controller, pid_t **pids, int *size): api.c'],['../group__group__groups.html#ga08a4fe913d59f61a39e61b8b02537dc2',1,'cgroup_get_procs(char *name, char *controller, pid_t **pids, int *size): api.c']]],
+ ['cgroup_5fget_5fsubsys_5fmount_5fpoint_5fbegin_221',['cgroup_get_subsys_mount_point_begin',['../group__group__iterators.html#ga18a3c6fe7da42b9da96ce34dce1e31b8',1,'cgroup_get_subsys_mount_point_begin(const char *controller, void **handle, char *path): api.c'],['../group__group__iterators.html#ga18a3c6fe7da42b9da96ce34dce1e31b8',1,'cgroup_get_subsys_mount_point_begin(const char *controller, void **handle, char *path): api.c']]],
+ ['cgroup_5fget_5fsubsys_5fmount_5fpoint_5fend_222',['cgroup_get_subsys_mount_point_end',['../group__group__iterators.html#ga9c9b0f1921c205bd25bfc6c1d20486eb',1,'cgroup_get_subsys_mount_point_end(void **handle): api.c'],['../group__group__iterators.html#ga9c9b0f1921c205bd25bfc6c1d20486eb',1,'cgroup_get_subsys_mount_point_end(void **handle): api.c']]],
+ ['cgroup_5fget_5fsubsys_5fmount_5fpoint_5fnext_223',['cgroup_get_subsys_mount_point_next',['../group__group__iterators.html#ga3d66997158cb8a334317923ad94cc789',1,'cgroup_get_subsys_mount_point_next(void **handle, char *path): api.c'],['../group__group__iterators.html#ga3d66997158cb8a334317923ad94cc789',1,'cgroup_get_subsys_mount_point_next(void **handle, char *path): api.c']]],
+ ['cgroup_5fget_5ftask_5fbegin_224',['cgroup_get_task_begin',['../group__group__iterators.html#gad7218154192f733120e1025cc19d0a36',1,'cgroup_get_task_begin(const char *cgroup, const char *controller, void **handle, pid_t *pid): api.c'],['../group__group__iterators.html#gad7218154192f733120e1025cc19d0a36',1,'cgroup_get_task_begin(const char *cgroup, const char *controller, void **handle, pid_t *pid): api.c']]],
+ ['cgroup_5fget_5ftask_5fend_225',['cgroup_get_task_end',['../group__group__iterators.html#gaeb955e5f4da551268380b1271d478816',1,'cgroup_get_task_end(void **handle): api.c'],['../group__group__iterators.html#gaeb955e5f4da551268380b1271d478816',1,'cgroup_get_task_end(void **handle): api.c']]],
+ ['cgroup_5fget_5ftask_5fnext_226',['cgroup_get_task_next',['../group__group__iterators.html#gaf3a0364682b7449ddccfb0862bbb565e',1,'cgroup_get_task_next(void **handle, pid_t *pid): api.c'],['../group__group__iterators.html#gaf3a0364682b7449ddccfb0862bbb565e',1,'cgroup_get_task_next(void **handle, pid_t *pid): api.c']]],
+ ['cgroup_5fget_5fuid_5fgid_227',['cgroup_get_uid_gid',['../group__group__groups.html#ga007d21c304d9cc6e948dc0ae51ecfa86',1,'cgroup_get_uid_gid(struct cgroup *cgroup, uid_t *tasks_uid, gid_t *tasks_gid, uid_t *control_uid, gid_t *control_gid): wrapper.c'],['../group__group__groups.html#ga007d21c304d9cc6e948dc0ae51ecfa86',1,'cgroup_get_uid_gid(struct cgroup *cgroup, uid_t *tasks_uid, gid_t *tasks_gid, uid_t *control_uid, gid_t *control_gid): wrapper.c']]],
+ ['cgroup_5fget_5fvalue_5fbool_228',['cgroup_get_value_bool',['../group__group__groups.html#gab95007148eac89b7e935d93a4524787b',1,'cgroup_get_value_bool(struct cgroup_controller *controller, const char *name, bool *value): wrapper.c'],['../group__group__groups.html#gab95007148eac89b7e935d93a4524787b',1,'cgroup_get_value_bool(struct cgroup_controller *controller, const char *name, bool *value): wrapper.c']]],
+ ['cgroup_5fget_5fvalue_5fint64_229',['cgroup_get_value_int64',['../group__group__groups.html#ga0fe9b05f26b3cab21fc446c9a2700526',1,'cgroup_get_value_int64(struct cgroup_controller *controller, const char *name, int64_t *value): wrapper.c'],['../group__group__groups.html#ga0fe9b05f26b3cab21fc446c9a2700526',1,'cgroup_get_value_int64(struct cgroup_controller *controller, const char *name, int64_t *value): wrapper.c']]],
+ ['cgroup_5fget_5fvalue_5fname_230',['cgroup_get_value_name',['../group__group__groups.html#ga16ca75fd16eda7cfc642421111e9a331',1,'cgroup_get_value_name(struct cgroup_controller *controller, int index): wrapper.c'],['../group__group__groups.html#ga16ca75fd16eda7cfc642421111e9a331',1,'cgroup_get_value_name(struct cgroup_controller *controller, int index): wrapper.c']]],
+ ['cgroup_5fget_5fvalue_5fname_5fcount_231',['cgroup_get_value_name_count',['../group__group__groups.html#ga25115085978ce2a8d671e7876cc49c1d',1,'cgroup_get_value_name_count(struct cgroup_controller *controller): wrapper.c'],['../group__group__groups.html#ga25115085978ce2a8d671e7876cc49c1d',1,'cgroup_get_value_name_count(struct cgroup_controller *controller): wrapper.c']]],
+ ['cgroup_5fget_5fvalue_5fstring_232',['cgroup_get_value_string',['../group__group__groups.html#gafaa51e5ffe09f8ad05585a1d3b6f7fa9',1,'cgroup_get_value_string(struct cgroup_controller *controller, const char *name, char **value): wrapper.c'],['../group__group__groups.html#gafaa51e5ffe09f8ad05585a1d3b6f7fa9',1,'cgroup_get_value_string(struct cgroup_controller *controller, const char *name, char **value): wrapper.c']]],
+ ['cgroup_5fget_5fvalue_5fuint64_233',['cgroup_get_value_uint64',['../group__group__groups.html#ga951861259c0373895bfb637fce337312',1,'cgroup_get_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t *value): wrapper.c'],['../group__group__groups.html#ga951861259c0373895bfb637fce337312',1,'cgroup_get_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t *value): wrapper.c']]],
['cgroup_5finit_5frules_5fcache_234',['cgroup_init_rules_cache',['../group__group__tasks.html#gad7fa5a2c4db08d31da5bfbecaf482d3d',1,'cgroup_init_rules_cache(void): api.c'],['../group__group__tasks.html#gad7fa5a2c4db08d31da5bfbecaf482d3d',1,'cgroup_init_rules_cache(void): api.c']]],
['cgroup_5finit_5ftemplates_5fcache_235',['cgroup_init_templates_cache',['../group__group__config.html#ga6f8c41bb920565e674787fe6dabaef00',1,'cgroup_init_templates_cache(char *pathname): config.c'],['../group__group__config.html#ga6f8c41bb920565e674787fe6dabaef00',1,'cgroup_init_templates_cache(char *pathname): config.c']]],
['cgroup_5fload_5ftemplates_5fcache_5ffrom_5ffiles_236',['cgroup_load_templates_cache_from_files',['../group__group__config.html#ga924860998c37da53cababe24163fc89b',1,'cgroup_load_templates_cache_from_files(int *file_index): config.c'],['../group__group__config.html#ga924860998c37da53cababe24163fc89b',1,'cgroup_load_templates_cache_from_files(int *file_index): config.c']]],
['cgroup_5fread_5fstats_5fbegin_242',['cgroup_read_stats_begin',['../group__group__iterators.html#ga1138e47f124f0f634586db5e0c4ae5de',1,'cgroup_read_stats_begin(const char *controller, const char *path, void **handle, struct cgroup_stat *stat): api.c'],['../group__group__iterators.html#ga1138e47f124f0f634586db5e0c4ae5de',1,'cgroup_read_stats_begin(const char *controller, const char *path, void **handle, struct cgroup_stat *cgroup_stat): api.c']]],
['cgroup_5fread_5fstats_5fend_243',['cgroup_read_stats_end',['../group__group__iterators.html#gaba386d9db6cadc6ad85c2552f63447bb',1,'cgroup_read_stats_end(void **handle): api.c'],['../group__group__iterators.html#gaba386d9db6cadc6ad85c2552f63447bb',1,'cgroup_read_stats_end(void **handle): api.c']]],
['cgroup_5fread_5fstats_5fnext_244',['cgroup_read_stats_next',['../group__group__iterators.html#gaf95587508fc15d74fd5ed0df58024be7',1,'cgroup_read_stats_next(void **handle, struct cgroup_stat *stat): api.c'],['../group__group__iterators.html#gaf95587508fc15d74fd5ed0df58024be7',1,'cgroup_read_stats_next(void **handle, struct cgroup_stat *cgroup_stat): api.c']]],
- ['cgroup_5fread_5fvalue_5fbegin_245',['cgroup_read_value_begin',['../group__group__iterators.html#ga73edb115af6779644d3371b12cf09140',1,'cgroup_read_value_begin(const char *controller, const char *path, char *name, void **handle, char *buffer, int max): api.c'],['../group__group__iterators.html#ga73edb115af6779644d3371b12cf09140',1,'cgroup_read_value_begin(const char *controller, const char *path, char *name, void **handle, char *buffer, int max): api.c']]],
+ ['cgroup_5fread_5fvalue_5fbegin_245',['cgroup_read_value_begin',['../group__group__iterators.html#ga9378ee0f1f6e65900df8e25b3d7ce236',1,'cgroup_read_value_begin(const char *const controller, const char *path, const char *const name, void **handle, char *buffer, int max): api.c'],['../group__group__iterators.html#ga9378ee0f1f6e65900df8e25b3d7ce236',1,'cgroup_read_value_begin(const char *const controller, const char *path, const char *const name, void **handle, char *buffer, int max): api.c']]],
['cgroup_5fread_5fvalue_5fend_246',['cgroup_read_value_end',['../group__group__iterators.html#gad348f041e283860cbf6bcea567e23a21',1,'cgroup_read_value_end(void **handle): api.c'],['../group__group__iterators.html#gad348f041e283860cbf6bcea567e23a21',1,'cgroup_read_value_end(void **handle): api.c']]],
['cgroup_5fread_5fvalue_5fnext_247',['cgroup_read_value_next',['../group__group__iterators.html#gaced2fe331f19d599a3270db2440847cc',1,'cgroup_read_value_next(void **handle, char *buffer, int max): api.c'],['../group__group__iterators.html#gaced2fe331f19d599a3270db2440847cc',1,'cgroup_read_value_next(void **handle, char *buffer, int max): api.c']]],
['cgroup_5fregister_5funchanged_5fprocess_248',['cgroup_register_unchanged_process',['../group__group__tasks.html#ga64f7967d6d5edfff9afddaa6a6974b1c',1,'cgroup_register_unchanged_process(pid_t pid, int flags): api.c'],['../group__group__tasks.html#ga64f7967d6d5edfff9afddaa6a6974b1c',1,'cgroup_register_unchanged_process(pid_t pid, int flags): api.c']]],
var searchData=
[
- ['1_2e_20initialization_296',['1. Initialization',['../group__group__init.html',1,'']]]
+ ['2_2e_20group_20manipulation_20api_297',['2. Group manipulation API',['../group__group__groups.html',1,'']]]
];
var searchData=
[
- ['2_2e_20group_20manipulation_20api_297',['2. Group manipulation API',['../group__group__groups.html',1,'']]]
+ ['3_2e_20iterators_298',['3. Iterators',['../group__group__iterators.html',1,'']]]
];
var searchData=
[
- ['3_2e_20iterators_298',['3. Iterators',['../group__group__iterators.html',1,'']]]
+ ['4_2e_20manipulation_20with_20tasks_299',['4. Manipulation with tasks',['../group__group__tasks.html',1,'']]]
];
var searchData=
[
- ['4_2e_20manipulation_20with_20tasks_299',['4. Manipulation with tasks',['../group__group__tasks.html',1,'']]]
+ ['5_2e_20configuration_300',['5. Configuration',['../group__group__config.html',1,'']]]
];
var searchData=
[
- ['5_2e_20configuration_300',['5. Configuration',['../group__group__config.html',1,'']]]
+ ['6_2e_20error_20handling_301',['6. Error handling',['../group__group__errors.html',1,'']]]
];
var searchData=
[
- ['6_2e_20error_20handling_301',['6. Error handling',['../group__group__errors.html',1,'']]]
+ ['7_2e_20logging_302',['7. Logging',['../group__group__log.html',1,'']]]
];
+++ /dev/null
-<!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><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="groups_6.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-createResults();
-/* @license-end */
-</script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
-window.addEventListener("message", function(event) {
- if (event.data == "take_focus") {
- var elem = searchResults.NavNext(0);
- if (elem) elem.focus();
- }
-});
-/* @license-end */
-</script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['7_2e_20logging_302',['7. Logging',['../group__group__log.html',1,'']]]
-];
var indexSectionsWithContent =
{
- 0: "1234567abcdefhlmnprtu",
+ 0: "234567abcdefhlmnprtu",
1: "abcepu",
2: "c",
3: "defhmnpt",
4: "c",
5: "ce",
- 6: "1234567",
+ 6: "234567",
7: "hlrt"
};
--- /dev/null
+<!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.9.1"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libcgroup: cgroup_abstraction_map Struct 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="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" />
+</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="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">libcgroup
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.1 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- 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">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">cgroup_abstraction_map Struct Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include <<a class="el" href="abstraction-map_8h_source.html">abstraction-map.h</a>></code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:abf64a953a7757184b31b5a07721e17ce"><td class="memItemLeft" align="right" valign="top"><a id="abf64a953a7757184b31b5a07721e17ce"></a>
+int(* </td><td class="memItemRight" valign="bottom"><b>cgroup_convert</b> )(struct <a class="el" href="structcgroup__controller.html">cgroup_controller</a> *const dst_cgc, const char *const in_value, const char *const out_setting, void *in_dflt, void *out_dflt)</td></tr>
+<tr class="separator:abf64a953a7757184b31b5a07721e17ce"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aa49f028e9d9e8a58ad9a93100673f4e7"><td class="memItemLeft" align="right" valign="top"><a id="aa49f028e9d9e8a58ad9a93100673f4e7"></a>
+char * </td><td class="memItemRight" valign="bottom"><b>in_setting</b></td></tr>
+<tr class="separator:aa49f028e9d9e8a58ad9a93100673f4e7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a9c7b3743d1b62a29705e40e5578c68ee"><td class="memItemLeft" align="right" valign="top"><a id="a9c7b3743d1b62a29705e40e5578c68ee"></a>
+void * </td><td class="memItemRight" valign="bottom"><b>in_dflt</b></td></tr>
+<tr class="separator:a9c7b3743d1b62a29705e40e5578c68ee"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a5ce580f7efca804ce5a0fdae70fb2cf4"><td class="memItemLeft" align="right" valign="top"><a id="a5ce580f7efca804ce5a0fdae70fb2cf4"></a>
+char * </td><td class="memItemRight" valign="bottom"><b>out_setting</b></td></tr>
+<tr class="separator:a5ce580f7efca804ce5a0fdae70fb2cf4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a58e0e6db190e3cceed5ffc6e02a4cfdd"><td class="memItemLeft" align="right" valign="top"><a id="a58e0e6db190e3cceed5ffc6e02a4cfdd"></a>
+void * </td><td class="memItemRight" valign="bottom"><b>out_dflt</b></td></tr>
+<tr class="separator:a58e0e6db190e3cceed5ffc6e02a4cfdd"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Libcgroup abstraction layer mappings</p>
+<p>Copyright (c) 2021-2022 Oracle and/or its affiliates. Author: Tom Hromatka <a href="#" onclick="location.href='mai'+'lto:'+'tom'+'.h'+'rom'+'at'+'ka@'+'or'+'acl'+'e.'+'com'; return false;">tom.h<span style="display: none;">.nosp@m.</span>roma<span style="display: none;">.nosp@m.</span>tka@o<span style="display: none;">.nosp@m.</span>racl<span style="display: none;">.nosp@m.</span>e.com</a> </p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
+<li>src/<a class="el" href="abstraction-map_8h_source.html">abstraction-map.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+</small></address>
+</body>
+</html>
<tr class="memitem:ae2b6bd9e6cd54849e0ca3a0625555c77"><td class="memItemLeft" align="right" valign="top"><a id="ae2b6bd9e6cd54849e0ca3a0625555c77"></a>
int </td><td class="memItemRight" valign="bottom"><b>index</b></td></tr>
<tr class="separator:ae2b6bd9e6cd54849e0ca3a0625555c77"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ab9b3473e3b4ebd3ef661618ec46af5e5"><td class="memItemLeft" align="right" valign="top"><a id="ab9b3473e3b4ebd3ef661618ec46af5e5"></a>
+enum cg_version_t </td><td class="memItemRight" valign="bottom"><b>version</b></td></tr>
+<tr class="separator:ab9b3473e3b4ebd3ef661618ec46af5e5"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Structure describing a controller attached to one struct <code>cgroup</code>, including parameters of the group and their values. The structure is opaque to applications. </p><dl class="section see"><dt>See also</dt><dd>groups </dd></dl>
<tr class="memitem:acf3b68d761df53681c1581573801bc1e"><td class="memItemLeft" align="right" valign="top"><a id="acf3b68d761df53681c1581573801bc1e"></a>
char * </td><td class="memItemRight" valign="bottom"><b>multiline_value</b></td></tr>
<tr class="separator:acf3b68d761df53681c1581573801bc1e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:acfb685aa3cb7d975807497f8a9e6b011"><td class="memItemLeft" align="right" valign="top"><a id="acfb685aa3cb7d975807497f8a9e6b011"></a>
+char * </td><td class="memItemRight" valign="bottom"><b>prev_name</b></td></tr>
+<tr class="separator:acfb685aa3cb7d975807497f8a9e6b011"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:afeb6e8bc460a7077197fab8c2dd1e357"><td class="memItemLeft" align="right" valign="top"><a id="afeb6e8bc460a7077197fab8c2dd1e357"></a>
bool </td><td class="memItemRight" valign="bottom"><b>dirty</b></td></tr>
<tr class="separator:afeb6e8bc460a7077197fab8c2dd1e357"><td class="memSeparator" colspan="2"> </td></tr>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  </div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="preprocessor">#endif </span><span class="comment">/* _LIBCGROUP_TASKS_H */</span><span class="preprocessor"></span></div>
-<div class="ttc" id="agroup__group__tasks_html_ga2d4677baef780c003fc6fba6b5dc78f2"><div class="ttname"><a href="group__group__tasks.html#ga2d4677baef780c003fc6fba6b5dc78f2">cgroup_change_cgroup_path</a></div><div class="ttdeci">int cgroup_change_cgroup_path(const char *path, pid_t pid, const char *const controllers[])</div><div class="ttdef"><b>Definition:</b> api.c:4151</div></div>
-<div class="ttc" id="agroup__group__tasks_html_ga368e7b8e19b3943ab6fb50e76a09e6ea"><div class="ttname"><a href="group__group__tasks.html#ga368e7b8e19b3943ab6fb50e76a09e6ea">cgroup_change_cgroup_flags</a></div><div class="ttdeci">int cgroup_change_cgroup_flags(uid_t uid, gid_t gid, const char *procname, pid_t pid, int flags)</div><div class="ttdef"><b>Definition:</b> api.c:3921</div></div>
-<div class="ttc" id="agroup__group__tasks_html_ga43414ac2b1fc73bbb46b6278c7500188"><div class="ttname"><a href="group__group__tasks.html#ga43414ac2b1fc73bbb46b6278c7500188">cgroup_attach_task</a></div><div class="ttdeci">int cgroup_attach_task(struct cgroup *cgroup)</div><div class="ttdef"><b>Definition:</b> api.c:1799</div></div>
-<div class="ttc" id="agroup__group__tasks_html_ga5eab78a922dbacd368360f03c70146be"><div class="ttname"><a href="group__group__tasks.html#ga5eab78a922dbacd368360f03c70146be">cgroup_change_cgroup_uid_gid</a></div><div class="ttdeci">int cgroup_change_cgroup_uid_gid(uid_t uid, gid_t gid, pid_t pid)</div><div class="ttdef"><b>Definition:</b> api.c:4139</div></div>
-<div class="ttc" id="agroup__group__tasks_html_ga64f7967d6d5edfff9afddaa6a6974b1c"><div class="ttname"><a href="group__group__tasks.html#ga64f7967d6d5edfff9afddaa6a6974b1c">cgroup_register_unchanged_process</a></div><div class="ttdeci">int cgroup_register_unchanged_process(pid_t pid, int flags)</div><div class="ttdef"><b>Definition:</b> api.c:5340</div></div>
-<div class="ttc" id="agroup__group__tasks_html_ga6f2c17b99cf2526cb46df4769eb3f46e"><div class="ttname"><a href="group__group__tasks.html#ga6f2c17b99cf2526cb46df4769eb3f46e">cgroup_get_current_controller_path</a></div><div class="ttdeci">int cgroup_get_current_controller_path(pid_t pid, const char *controller, char **current_path)</div><div class="ttdef"><b>Definition:</b> api.c:4374</div></div>
-<div class="ttc" id="agroup__group__tasks_html_ga9c7532681986d156ac3f6bac1fcf6aab"><div class="ttname"><a href="group__group__tasks.html#ga9c7532681986d156ac3f6bac1fcf6aab">cgroup_attach_task_pid</a></div><div class="ttdeci">int cgroup_attach_task_pid(struct cgroup *cgroup, pid_t tid)</div><div class="ttdef"><b>Definition:</b> api.c:1734</div></div>
-<div class="ttc" id="agroup__group__tasks_html_gac4e3f29cfbdc3d77f08c9fe60857274a"><div class="ttname"><a href="group__group__tasks.html#gac4e3f29cfbdc3d77f08c9fe60857274a">cgroup_print_rules_config</a></div><div class="ttdeci">void cgroup_print_rules_config(FILE *fp)</div><div class="ttdef"><b>Definition:</b> api.c:4266</div></div>
-<div class="ttc" id="agroup__group__tasks_html_gad7fa5a2c4db08d31da5bfbecaf482d3d"><div class="ttname"><a href="group__group__tasks.html#gad7fa5a2c4db08d31da5bfbecaf482d3d">cgroup_init_rules_cache</a></div><div class="ttdeci">int cgroup_init_rules_cache(void)</div><div class="ttdef"><b>Definition:</b> api.c:4352</div></div>
-<div class="ttc" id="agroup__group__tasks_html_gae472183a7c9a37826ef15c77014c47fb"><div class="ttname"><a href="group__group__tasks.html#gae472183a7c9a37826ef15c77014c47fb">cgroup_change_cgroup_uid_gid_flags</a></div><div class="ttdeci">int cgroup_change_cgroup_uid_gid_flags(uid_t uid, gid_t gid, pid_t pid, int flags)</div><div class="ttdef"><b>Definition:</b> api.c:4122</div></div>
-<div class="ttc" id="agroup__group__tasks_html_gaf81ebd9cb5575c75b4c85f385ebda1ce"><div class="ttname"><a href="group__group__tasks.html#gaf81ebd9cb5575c75b4c85f385ebda1ce">cgroup_reload_cached_rules</a></div><div class="ttdeci">int cgroup_reload_cached_rules(void)</div><div class="ttdef"><b>Definition:</b> api.c:4326</div></div>
-<div class="ttc" id="agroup__group__tasks_html_gafc69658b012b6f1c11ba078ffccd70a2"><div class="ttname"><a href="group__group__tasks.html#gafc69658b012b6f1c11ba078ffccd70a2">cgroup_change_all_cgroups</a></div><div class="ttdeci">int cgroup_change_all_cgroups(void)</div><div class="ttdef"><b>Definition:</b> api.c:4220</div></div>
-<div class="ttc" id="astructcgroup_html"><div class="ttname"><a href="structcgroup.html">cgroup</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:106</div></div>
+<div class="ttc" id="agroup__group__tasks_html_ga2d4677baef780c003fc6fba6b5dc78f2"><div class="ttname"><a href="group__group__tasks.html#ga2d4677baef780c003fc6fba6b5dc78f2">cgroup_change_cgroup_path</a></div><div class="ttdeci">int cgroup_change_cgroup_path(const char *path, pid_t pid, const char *const controllers[])</div><div class="ttdef"><b>Definition:</b> api.c:4166</div></div>
+<div class="ttc" id="agroup__group__tasks_html_ga368e7b8e19b3943ab6fb50e76a09e6ea"><div class="ttname"><a href="group__group__tasks.html#ga368e7b8e19b3943ab6fb50e76a09e6ea">cgroup_change_cgroup_flags</a></div><div class="ttdeci">int cgroup_change_cgroup_flags(uid_t uid, gid_t gid, const char *procname, pid_t pid, int flags)</div><div class="ttdef"><b>Definition:</b> api.c:3936</div></div>
+<div class="ttc" id="agroup__group__tasks_html_ga43414ac2b1fc73bbb46b6278c7500188"><div class="ttname"><a href="group__group__tasks.html#ga43414ac2b1fc73bbb46b6278c7500188">cgroup_attach_task</a></div><div class="ttdeci">int cgroup_attach_task(struct cgroup *cgroup)</div><div class="ttdef"><b>Definition:</b> api.c:1805</div></div>
+<div class="ttc" id="agroup__group__tasks_html_ga5eab78a922dbacd368360f03c70146be"><div class="ttname"><a href="group__group__tasks.html#ga5eab78a922dbacd368360f03c70146be">cgroup_change_cgroup_uid_gid</a></div><div class="ttdeci">int cgroup_change_cgroup_uid_gid(uid_t uid, gid_t gid, pid_t pid)</div><div class="ttdef"><b>Definition:</b> api.c:4154</div></div>
+<div class="ttc" id="agroup__group__tasks_html_ga64f7967d6d5edfff9afddaa6a6974b1c"><div class="ttname"><a href="group__group__tasks.html#ga64f7967d6d5edfff9afddaa6a6974b1c">cgroup_register_unchanged_process</a></div><div class="ttdeci">int cgroup_register_unchanged_process(pid_t pid, int flags)</div><div class="ttdef"><b>Definition:</b> api.c:5355</div></div>
+<div class="ttc" id="agroup__group__tasks_html_ga6f2c17b99cf2526cb46df4769eb3f46e"><div class="ttname"><a href="group__group__tasks.html#ga6f2c17b99cf2526cb46df4769eb3f46e">cgroup_get_current_controller_path</a></div><div class="ttdeci">int cgroup_get_current_controller_path(pid_t pid, const char *controller, char **current_path)</div><div class="ttdef"><b>Definition:</b> api.c:4389</div></div>
+<div class="ttc" id="agroup__group__tasks_html_ga9c7532681986d156ac3f6bac1fcf6aab"><div class="ttname"><a href="group__group__tasks.html#ga9c7532681986d156ac3f6bac1fcf6aab">cgroup_attach_task_pid</a></div><div class="ttdeci">int cgroup_attach_task_pid(struct cgroup *cgroup, pid_t tid)</div><div class="ttdef"><b>Definition:</b> api.c:1740</div></div>
+<div class="ttc" id="agroup__group__tasks_html_gac4e3f29cfbdc3d77f08c9fe60857274a"><div class="ttname"><a href="group__group__tasks.html#gac4e3f29cfbdc3d77f08c9fe60857274a">cgroup_print_rules_config</a></div><div class="ttdeci">void cgroup_print_rules_config(FILE *fp)</div><div class="ttdef"><b>Definition:</b> api.c:4281</div></div>
+<div class="ttc" id="agroup__group__tasks_html_gad7fa5a2c4db08d31da5bfbecaf482d3d"><div class="ttname"><a href="group__group__tasks.html#gad7fa5a2c4db08d31da5bfbecaf482d3d">cgroup_init_rules_cache</a></div><div class="ttdeci">int cgroup_init_rules_cache(void)</div><div class="ttdef"><b>Definition:</b> api.c:4367</div></div>
+<div class="ttc" id="agroup__group__tasks_html_gae472183a7c9a37826ef15c77014c47fb"><div class="ttname"><a href="group__group__tasks.html#gae472183a7c9a37826ef15c77014c47fb">cgroup_change_cgroup_uid_gid_flags</a></div><div class="ttdeci">int cgroup_change_cgroup_uid_gid_flags(uid_t uid, gid_t gid, pid_t pid, int flags)</div><div class="ttdef"><b>Definition:</b> api.c:4137</div></div>
+<div class="ttc" id="agroup__group__tasks_html_gaf81ebd9cb5575c75b4c85f385ebda1ce"><div class="ttname"><a href="group__group__tasks.html#gaf81ebd9cb5575c75b4c85f385ebda1ce">cgroup_reload_cached_rules</a></div><div class="ttdeci">int cgroup_reload_cached_rules(void)</div><div class="ttdef"><b>Definition:</b> api.c:4341</div></div>
+<div class="ttc" id="agroup__group__tasks_html_gafc69658b012b6f1c11ba078ffccd70a2"><div class="ttname"><a href="group__group__tasks.html#gafc69658b012b6f1c11ba078ffccd70a2">cgroup_change_all_cgroups</a></div><div class="ttdeci">int cgroup_change_all_cgroups(void)</div><div class="ttdef"><b>Definition:</b> api.c:4235</div></div>
+<div class="ttc" id="astructcgroup_html"><div class="ttname"><a href="structcgroup.html">cgroup</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:114</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
<dt>Module <a class="el" href="group__group__groups.html#amgrp8b151c1f58f3f15039d7fd770cc3dab8">Basic infrastructure</a> </dt>
<dd><a class="anchor" id="_todo000002"></a>add some propaganda what's so great on this approach... I personally think it is broken and confusing (see TODOs below). </dd>
<dt>Global <a class="el" href="group__group__tasks.html#ga368e7b8e19b3943ab6fb50e76a09e6ea">cgroup_change_cgroup_flags</a> (uid_t uid, gid_t gid, const char *procname, pid_t pid, int flags)</dt>
-<dd><a class="anchor" id="_todo000017"></a>Determine thread-safeness and fix of not safe. </dd>
+<dd><a class="anchor" id="_todo000016"></a>Determine thread-safeness and fix of not safe. </dd>
<dt>Global <a class="el" href="group__group__tasks.html#ga2d4677baef780c003fc6fba6b5dc78f2">cgroup_change_cgroup_path</a> (const char *path, pid_t pid, const char *const controllers[])</dt>
-<dd><a class="anchor" id="_todo000015"></a>should this function be really public? </dd>
+<dd><a class="anchor" id="_todo000014"></a>should this function be really public? </dd>
<dt>Global <a class="el" href="group__group__tasks.html#gae472183a7c9a37826ef15c77014c47fb">cgroup_change_cgroup_uid_gid_flags</a> (uid_t uid, gid_t gid, pid_t pid, int flags)</dt>
-<dd><a class="anchor" id="_todo000018"></a>Determine thread-safeness and fix if not safe. </dd>
+<dd><a class="anchor" id="_todo000017"></a>Determine thread-safeness and fix if not safe. </dd>
<dt>Global <a class="el" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup</a> (struct cgroup *cgroup, int ignore_ownership)</dt>
<dd><a class="anchor" id="_todo000005"></a>what is ignore_ownership good for? </dd>
<dt>Global <a class="el" href="group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62">cgroup_create_cgroup_from_parent</a> (struct cgroup *cgroup, int ignore_ownership)</dt>
<dt>Global <a class="el" href="group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565">cgroup_delete_cgroup</a> (struct cgroup *cgroup, int ignore_migration)</dt>
<dd><a class="anchor" id="_todo000008"></a>what is ignore_migration good for? rmdir() will fail if tasks were not moved. </dd>
<dt>Global <a class="el" href="group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a24e202c59f318e63ad8cafcc1b4b102b">CGROUP_FILE_TYPE_OTHER</a> </dt>
-<dd><a class="anchor" id="_todo000014"></a>really? </dd>
+<dd><a class="anchor" id="_todo000013"></a>really? </dd>
<dt>Global <a class="el" href="group__group__groups.html#ga92d27c9ff0d655838642a7aa68497596">cgroup_free_controllers</a> (struct cgroup *cgroup)</dt>
<dd><a class="anchor" id="_todo000004"></a>should this function be public??? </dd>
<dt>Global <a class="el" href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup</a> (struct cgroup *cgroup)</dt>
<dt>Global <a class="el" href="group__group__groups.html#gafaa51e5ffe09f8ad05585a1d3b6f7fa9">cgroup_get_value_string</a> (struct <a class="el" href="structcgroup__controller.html">cgroup_controller</a> *controller, const char *name, char **value)</dt>
<dd><a class="anchor" id="_todo000010"></a>rephrase, it's too vague... How big is the buffer actually? </dd>
<dt>Global <a class="el" href="group__group__tasks.html#gad7fa5a2c4db08d31da5bfbecaf482d3d">cgroup_init_rules_cache</a> (void)</dt>
-<dd><a class="anchor" id="_todo000016"></a>add parameter with the filename? </dd>
+<dd><a class="anchor" id="_todo000015"></a>add parameter with the filename? </dd>
<dt>Global <a class="el" href="group__group__groups.html#ga6cd4733e5982ac2c92ee3cb3dbd10a31">cgroup_new_cgroup</a> (const char *name)</dt>
<dd><a class="anchor" id="_todo000003"></a>suggest one preferred way, either "/foo" or "foo". </dd>
<dt>Global <a class="el" href="group__group__iterators.html#ga7b19f10c06abb96d8c8ae88a04888a68">cgroup_walk_tree_begin</a> (const char *controller, const char *base_path, int depth, void **handle, struct <a class="el" href="structcgroup__file__info.html">cgroup_file_info</a> *info, int *base_level)</dt>
-<dd><a class="anchor" id="_todo000013"></a>why base_level is not hidden in **handle? </dd>
+<dd><a class="anchor" id="_todo000012"></a>why base_level is not hidden in **handle? </dd>
<dt>Module <a class="el" href="group__group__config.html#amgrp0e02ce690a683c3ba45b7ef59ad72acd">Configuration file</a> </dt>
<dd><a class="anchor" id="_todo000001"></a>add this description?: These functions are mostly intended to be used by internal <code>libcgroup</code> tools, however they are fully supported and applications can benefit from them. </dd>
<dt>Module <a class="el" href="group__group__iterators.html">group_iterators</a> </dt>
-<dd><a class="anchor" id="_todo000012"></a>not all iterators follow this pattern, e.g. <a class="el" href="group__group__iterators.html#ga7b19f10c06abb96d8c8ae88a04888a68">cgroup_walk_tree_begin()</a> can result both in a state that <a class="el" href="group__group__iterators.html#ga09a70990837a58e506a264f8c50d4cde">cgroup_walk_tree_end()</a> is not needed and will sigsegv and in a state that <a class="el" href="group__group__iterators.html#ga09a70990837a58e506a264f8c50d4cde">cgroup_walk_tree_end()</a> is needed to free allocated memory. Complete review is needed! </dd>
-<dt>Module <a class="el" href="group__group__init.html#amgrp61bcd96a2c1f8026527cbf2019d6e9a4">Initialization</a> </dt>
-<dd><a class="anchor" id="_todo000011"></a>this is very bad... There should be at least way how to refresh the cache and/or an option to refresh it automatically (does kernel provide any indication, when a filesystem is mounted/unmounted?). Dtto the cleanup on exit. </dd>
+<dd><a class="anchor" id="_todo000011"></a>not all iterators follow this pattern, e.g. <a class="el" href="group__group__iterators.html#ga7b19f10c06abb96d8c8ae88a04888a68">cgroup_walk_tree_begin()</a> can result both in a state that <a class="el" href="group__group__iterators.html#ga09a70990837a58e506a264f8c50d4cde">cgroup_walk_tree_end()</a> is not needed and will sigsegv and in a state that <a class="el" href="group__group__iterators.html#ga09a70990837a58e506a264f8c50d4cde">cgroup_walk_tree_end()</a> is needed to free allocated memory. Complete review is needed! </dd>
</dl>
</div></div><!-- contents -->
</div><!-- PageDoc -->
--- /dev/null
+<!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.9.1"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libcgroup: include/libcgroup/tools.h Source File</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="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" />
+</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="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">libcgroup
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.1 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- 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">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_66a7763e2a9b96033a682558820d533e.html">libcgroup</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">tools.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">/*</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * This library is free software; you can redistribute it and/or modify it</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * under the terms of version 2.1 of the GNU Lesser General Public License as</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * published by the Free Software Foundation.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * This library is distributed in the hope that it will be useful, but WITHOUT</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * for more details.</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> *</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * You should have received a copy of the GNU Lesser General Public License</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * along with this library; if not, see <http://www.gnu.org/licenses>.</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> */</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#ifndef _LIBCGROUP_TOOLS_H</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#define _LIBCGROUP_TOOLS_H</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef _LIBCGROUP_H_INSIDE</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#error "Only <libcgroup.h> should be included directly."</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#ifndef SWIG</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <features.h></span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <sys/types.h></span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <stdbool.h></span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keywordtype">int</span> cgroup_cgxget(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> ** cg,</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">enum</span> cg_version_t version, <span class="keywordtype">bool</span> ignore_unmappable);</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keywordtype">int</span> cgroup_cgxset(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> * <span class="keyword">const</span> cg,</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keyword">enum</span> cg_version_t version, <span class="keywordtype">bool</span> ignore_unmappable);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> } <span class="comment">/* extern "C" */</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#endif </span><span class="comment">/* _LIBCGROUP_TOOLS_H */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="astructcgroup_html"><div class="ttname"><a href="structcgroup.html">cgroup</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:114</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+</small></address>
+</body>
+</html>