<div class="headertitle"><div class="title">abstraction-common.h</div></div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">/*</span></div>
-<div class="line"><a id="l00009" 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 id="l00010" 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 id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment"> * published by the Free Software Foundation.</span></div>
-<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment"> *</span></div>
-<div class="line"><a id="l00013" 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 id="l00014" 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 id="l00015" 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 id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment"> * for more details.</span></div>
-<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment"> *</span></div>
-<div class="line"><a id="l00018" 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 id="l00019" 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 id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment"> */</span></div>
-<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#ifndef __ABSTRACTION_COMMON</span></div>
-<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#define __ABSTRACTION_COMMON</span></div>
-<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
-<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
-<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#include "config.h"</span></div>
-<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
-<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#include <libcgroup.h></span></div>
-<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#include "libcgroup-internal.h"</span></div>
-<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div>
-<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</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 id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="keywordtype">long</span> * <span class="keyword">const</span> out_value);</div>
-<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="keywordtype">int</span> cgroup_convert_int(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
-<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
-<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
-<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
-<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> </div>
-<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="keywordtype">int</span> cgroup_convert_name_only(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
-<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
-<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
-<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
-<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> </div>
-<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span><span class="keywordtype">int</span> cgroup_convert_passthrough(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
-<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
-<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
-<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
-<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> </div>
-<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="keywordtype">int</span> cgroup_convert_unmappable(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
-<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
-<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
-<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
-<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> </div>
-<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span><span class="comment">/* cpu */</span></div>
-<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="keywordtype">int</span> cgroup_convert_cpu_nto1(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> out_cgc,</div>
-<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> in_cgc);</div>
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/* SPDX-License-Identifier: LGPL-2.1-only */</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#ifndef __ABSTRACTION_COMMON</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#define __ABSTRACTION_COMMON</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include "config.h"</span></div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include <libcgroup.h></span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include "libcgroup-internal.h"</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</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 id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordtype">long</span> * <span class="keyword">const</span> out_value);</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="keywordtype">int</span> cgroup_convert_int(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="keywordtype">int</span> cgroup_convert_name_only(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="keywordtype">int</span> cgroup_convert_passthrough(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> </div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span><span class="keywordtype">int</span> cgroup_convert_unmappable(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> </div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="comment">/* cpu */</span></div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="keywordtype">int</span> cgroup_convert_cpu_nto1(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> out_cgc,</div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> in_cgc);</div>
+<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
+<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="keywordtype">int</span> cgroup_convert_cpu_quota_to_max(</div>
+<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
+<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> </div>
+<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span><span class="keywordtype">int</span> cgroup_convert_cpu_period_to_max(</div>
+<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
+<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
+<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div>
-<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="keywordtype">int</span> cgroup_convert_cpu_quota_to_max(</div>
+<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="keywordtype">int</span> cgroup_convert_cpu_max_to_quota(</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> </div>
-<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="keywordtype">int</span> cgroup_convert_cpu_period_to_max(</div>
+<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="keywordtype">int</span> cgroup_convert_cpu_max_to_period(</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> </div>
-<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="keywordtype">int</span> cgroup_convert_cpu_max_to_quota(</div>
-<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
-<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
-<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
-<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
-<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> </div>
-<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span><span class="keywordtype">int</span> cgroup_convert_cpu_max_to_period(</div>
-<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
-<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
-<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
-<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
-<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> </div>
-<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span><span class="comment">/* cpuset */</span></div>
-<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span><span class="keywordtype">int</span> cgroup_convert_cpuset_to_exclusive(</div>
-<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
-<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
-<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
-<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
-<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> </div>
-<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span><span class="keywordtype">int</span> cgroup_convert_cpuset_to_partition(</div>
-<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
-<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
-<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
-<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
-<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> </div>
-<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> </div>
-<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span><span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span>} <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> </div>
-<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</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:108</div></div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="comment">/* cpuset */</span></div>
+<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="keywordtype">int</span> cgroup_convert_cpuset_to_exclusive(</div>
+<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
+<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
+<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> </div>
+<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><span class="keywordtype">int</span> cgroup_convert_cpuset_to_partition(</div>
+<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
+<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
+<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> </div>
+<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> </div>
+<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span>} <span class="comment">/* extern "C" */</span></div>
+<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> </div>
+<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</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:101</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
<div class="headertitle"><div class="title">abstraction-map.h</div></div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">/*</span></div>
-<div class="line"><a id="l00009" 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 id="l00010" 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 id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment"> * published by the Free Software Foundation.</span></div>
-<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment"> *</span></div>
-<div class="line"><a id="l00013" 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 id="l00014" 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 id="l00015" 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 id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment"> * for more details.</span></div>
-<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment"> *</span></div>
-<div class="line"><a id="l00018" 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 id="l00019" 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 id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment"> */</span></div>
-<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#ifndef __ABSTRACTION_MAP</span></div>
-<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#define __ABSTRACTION_MAP</span></div>
-<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
-<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
-<div class="line"><a id="l00028" 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 hl_struct" href="structcgroup__abstraction__map.html">cgroup_abstraction_map</a> {</div>
-<div class="line"><a id="l00029" 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 id="l00030" 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 id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="comment"> */</span></div>
-<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> int (*cgroup_convert)(<span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
-<div class="line"><a id="l00033" 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 id="l00034" 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 id="l00035" 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 id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keywordtype">char</span> *in_setting;</div>
-<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordtype">void</span> *in_dflt;</div>
-<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordtype">char</span> *out_setting;</div>
-<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="keywordtype">void</span> *out_dflt;</div>
-<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span>};</div>
-<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
-<div class="line"><a id="l00042" 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 hl_struct" href="structcgroup__abstraction__map.html">cgroup_abstraction_map</a> cgroup_v1_to_v2_map[];</div>
-<div class="line"><a id="l00043" 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 id="l00044" name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a id="l00045" 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 hl_struct" href="structcgroup__abstraction__map.html">cgroup_abstraction_map</a> cgroup_v2_to_v1_map[];</div>
-<div class="line"><a id="l00046" 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 id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
-<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span>} <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a id="l00052" 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:108</div></div>
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/* SPDX-License-Identifier: LGPL-2.1-only */</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#ifndef __ABSTRACTION_MAP</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#define __ABSTRACTION_MAP</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"><a class="line" href="structcgroup__abstraction__map.html"> 16</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__abstraction__map.html">cgroup_abstraction_map</a> {</div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> <span class="comment">/* if the conversion isn't a one-to-one mapping or the mathematical</span></div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="comment"> * conversion is unique, create a custom conversion function.</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment"> */</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> int (*cgroup_convert)(<span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keywordtype">char</span> *in_setting;</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keywordtype">void</span> *in_dflt;</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keywordtype">char</span> *out_setting;</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keywordtype">void</span> *out_dflt;</div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span>};</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="keyword">extern</span> <span class="keyword">const</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__abstraction__map.html">cgroup_abstraction_map</a> cgroup_v1_to_v2_map[];</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</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 id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="keyword">extern</span> <span class="keyword">const</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__abstraction__map.html">cgroup_abstraction_map</a> cgroup_v2_to_v1_map[];</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</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 id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span>} <span class="comment">/* extern "C" */</span></div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</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:16</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:101</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
<div class="headertitle"><div class="title">cgrulesengd.h</div></div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/*</span></div>
-<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"> * Copyright Red Hat Inc. 2008</span></div>
-<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> *</span></div>
-<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"> * Author: Steve Olivieri <sjo@redhat.com></span></div>
-<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment"> *</span></div>
-<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment"> * This program is free software; you can redistribute it and/or modify it</span></div>
-<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment"> * under the terms of version 2.1 of the GNU Lesser General Public License</span></div>
-<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment"> * as published by the Free Software Foundation.</span></div>
-<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment"> *</span></div>
-<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment"> * This program is distributed in the hope that it would be useful, but</span></div>
-<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment"> * WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
-<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</span></div>
-<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment"> */</span></div>
-<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
-<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#ifndef _CGRULESENGD_H</span></div>
-<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#define _CGRULESENGD_H</span></div>
-<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
-<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include <features.h></span></div>
-<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
-<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
-<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#include "config.h"</span></div>
-<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#include "libcgroup.h"</span></div>
-<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="preprocessor">#include <linux/connector.h></span></div>
-<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#include <linux/cn_proc.h></span></div>
-<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
-<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#ifndef _GNU_SOURCE</span></div>
-<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#define _GNU_SOURCE</span></div>
-<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div>
-<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="preprocessor">#ifndef __USE_GNU</span></div>
-<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="preprocessor">#define __USE_GNU</span></div>
-<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div>
-<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="comment">/* The following ten macros are all for the Netlink code. */</span></div>
-<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="preprocessor">#define SEND_MESSAGE_LEN (NLMSG_LENGTH(sizeof(struct cn_msg) + \</span></div>
-<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="preprocessor"> sizeof(enum proc_cn_mcast_op)))</span></div>
-<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="preprocessor">#define RECV_MESSAGE_LEN (NLMSG_LENGTH(sizeof(struct cn_msg) + \</span></div>
-<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="preprocessor"> sizeof(struct proc_event)))</span></div>
-<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div>
-<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="preprocessor">#define SEND_MESSAGE_SIZE (NLMSG_SPACE(SEND_MESSAGE_LEN))</span></div>
-<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="preprocessor">#define RECV_MESSAGE_SIZE (NLMSG_SPACE(RECV_MESSAGE_LEN))</span></div>
-<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="preprocessor">#define BUFF_SIZE (max(max(SEND_MESSAGE_SIZE, RECV_MESSAGE_SIZE), 1024))</span></div>
-<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="preprocessor">#define MIN_RECV_SIZE (min(SEND_MESSAGE_SIZE, RECV_MESSAGE_SIZE))</span></div>
-<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
-<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="preprocessor">#define PROC_CN_MCAST_LISTEN (1)</span></div>
-<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="preprocessor">#define PROC_CN_MCAST_IGNORE (2)</span></div>
-<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="keywordtype">void</span> cgre_usage(FILE *fd, <span class="keyword">const</span> <span class="keywordtype">char</span> *msg, ...);</div>
-<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> </div>
-<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="keywordtype">void</span> flog(<span class="keywordtype">int</span> level, <span class="keyword">const</span> <span class="keywordtype">char</span> *msg, ...);</div>
-<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
-<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span><span class="keywordtype">int</span> cgre_process_event(<span class="keyword">const</span> <span class="keyword">struct</span> proc_event *ev, <span class="keyword">const</span> <span class="keywordtype">int</span> type);</div>
-<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> </div>
-<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span><span class="keywordtype">int</span> cgre_handle_message(<span class="keyword">struct</span> cn_msg *cn_hdr);</div>
-<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> </div>
-<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="keywordtype">int</span> cgre_start_daemon(<span class="keyword">const</span> <span class="keywordtype">char</span> *logp, <span class="keyword">const</span> <span class="keywordtype">int</span> logf,</div>
-<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> daemon, <span class="keyword">const</span> <span class="keywordtype">int</span> logv);</div>
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/* SPDX-License-Identifier: LGPL-2.1-only */</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#ifndef _CGRULESENGD_H</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#define _CGRULESENGD_H</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include <features.h></span></div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include "config.h"</span></div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include "libcgroup.h"</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include <linux/connector.h></span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include <linux/cn_proc.h></span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#ifndef _GNU_SOURCE</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#define _GNU_SOURCE</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="preprocessor">#ifndef __USE_GNU</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#define __USE_GNU</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="comment">/* The following ten macros are all for the Netlink code. */</span></div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#define SEND_MESSAGE_LEN (NLMSG_LENGTH(sizeof(struct cn_msg) + \</span></div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="preprocessor"> sizeof(enum proc_cn_mcast_op)))</span></div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="preprocessor">#define RECV_MESSAGE_LEN (NLMSG_LENGTH(sizeof(struct cn_msg) + \</span></div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="preprocessor"> sizeof(struct proc_event)))</span></div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="preprocessor">#define SEND_MESSAGE_SIZE (NLMSG_SPACE(SEND_MESSAGE_LEN))</span></div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="preprocessor">#define RECV_MESSAGE_SIZE (NLMSG_SPACE(RECV_MESSAGE_LEN))</span></div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="preprocessor">#define BUFF_SIZE (max(max(SEND_MESSAGE_SIZE, RECV_MESSAGE_SIZE), 1024))</span></div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="preprocessor">#define MIN_RECV_SIZE (min(SEND_MESSAGE_SIZE, RECV_MESSAGE_SIZE))</span></div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="preprocessor">#define PROC_CN_MCAST_LISTEN (1)</span></div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="preprocessor">#define PROC_CN_MCAST_IGNORE (2)</span></div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="keywordtype">void</span> cgre_usage(FILE *fd, <span class="keyword">const</span> <span class="keywordtype">char</span> *msg, ...);</div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="keywordtype">void</span> flog(<span class="keywordtype">int</span> level, <span class="keyword">const</span> <span class="keywordtype">char</span> *msg, ...);</div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="keywordtype">int</span> cgre_process_event(<span class="keyword">const</span> <span class="keyword">struct</span> proc_event *ev, <span class="keyword">const</span> <span class="keywordtype">int</span> type);</div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div>
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span><span class="keywordtype">int</span> cgre_handle_message(<span class="keyword">struct</span> cn_msg *cn_hdr);</div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="keywordtype">int</span> cgre_start_daemon(<span class="keyword">const</span> <span class="keywordtype">char</span> *logp, <span class="keyword">const</span> <span class="keywordtype">int</span> logf,</div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> daemon, <span class="keyword">const</span> <span class="keywordtype">int</span> logv);</div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> </div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="keywordtype">void</span> cgre_flash_rules(<span class="keywordtype">int</span> signum);</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> </div>
-<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="keywordtype">void</span> cgre_flash_rules(<span class="keywordtype">int</span> signum);</div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="keywordtype">void</span> cgre_flash_templates(<span class="keywordtype">int</span> signum);</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div>
-<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="keywordtype">void</span> cgre_flash_templates(<span class="keywordtype">int</span> signum);</div>
+<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="keywordtype">void</span> cgre_catch_term(<span class="keywordtype">int</span> signum);</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> </div>
-<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="keywordtype">void</span> cgre_catch_term(<span class="keywordtype">int</span> signum);</div>
-<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> </div>
-<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span><span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span>} <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> </div>
-<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><span class="preprocessor">#endif </span><span class="comment">/* _CGRULESENGD_H */</span><span class="preprocessor"></span></div>
-<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> </div>
+<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span>} <span class="comment">/* extern "C" */</span></div>
+<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> </div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="preprocessor">#endif </span><span class="comment">/* _CGRULESENGD_H */</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> </div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
<div class="headertitle"><div class="title">config.h</div></div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef _LIBCGROUP_CONFIG_H</span></div>
-<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define _LIBCGROUP_CONFIG_H</span></div>
-<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
-<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#ifndef _LIBCGROUP_H_INSIDE</span></div>
-<div class="line"><a id="l00005" 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 id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
-<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#ifndef SWIG</span></div>
-<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include <features.h></span></div>
-<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
-<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
-<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__config.html#ga8adfaca013333acf922a167f55b84140">cgroup_config_load_config</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *pathname);</div>
-<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
-<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__config.html#ga85b285712354faca495193075035938d">cgroup_unload_cgroups</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div>
-<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__config.html#gaff77affa0b80ccf507b4b46cc0a8c085">cgroup_config_unload_config</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *pathname, <span class="keywordtype">int</span> flags);</div>
-<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__config.html#ga2d3a252b2c0c61c8f64cb1fc41e370ea">cgroup_config_set_default</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *new_default);</div>
-<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> </div>
-<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__config.html#ga6f8c41bb920565e674787fe6dabaef00">cgroup_init_templates_cache</a>(<span class="keywordtype">char</span> *pathname);</div>
-<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
-<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__config.html#ga89fe0d7943b29cc10d57b07abcdfa7b5">cgroup_reload_cached_templates</a>(<span class="keywordtype">char</span> *pathname);</div>
-<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
-<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__config.html#ga924860998c37da53cababe24163fc89b">cgroup_load_templates_cache_from_files</a>(<span class="keywordtype">int</span> *file_index);</div>
-<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> </div>
-<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__string__list.html">cgroup_string_list</a>;</div>
-<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__group__config.html#gacb09024dc469a1a1ff8cdebd8d0ab422">cgroup_templates_cache_set_source_files</a>(</div>
-<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__string__list.html">cgroup_string_list</a> *tmpl_files);</div>
-<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> </div>
-<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__config.html#ga72066260cd31ceed7ecc1a648eba37f2">cgroup_config_create_template_group</a>(</div>
-<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>, <span class="keywordtype">char</span> *template_name,</div>
-<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <span class="keywordtype">int</span> flags);</div>
-<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> </div>
-<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span><span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span>} <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> </div>
-<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span><span class="preprocessor">#endif </span><span class="comment">/*_LIBCGROUP_CONFIG_H*/</span><span class="preprocessor"></span></div>
-<div class="ttc" id="agroup__group__config_html_ga2d3a252b2c0c61c8f64cb1fc41e370ea"><div class="ttname"><a href="group__group__config.html#ga2d3a252b2c0c61c8f64cb1fc41e370ea">cgroup_config_set_default</a></div><div class="ttdeci">int cgroup_config_set_default(struct cgroup *new_default)</div><div class="ttdef"><b>Definition:</b> config.c:1486</div></div>
-<div class="ttc" id="agroup__group__config_html_ga6f8c41bb920565e674787fe6dabaef00"><div class="ttname"><a href="group__group__config.html#ga6f8c41bb920565e674787fe6dabaef00">cgroup_init_templates_cache</a></div><div class="ttdeci">int cgroup_init_templates_cache(char *pathname)</div><div class="ttdef"><b>Definition:</b> config.c:1574</div></div>
-<div class="ttc" id="agroup__group__config_html_ga72066260cd31ceed7ecc1a648eba37f2"><div class="ttname"><a href="group__group__config.html#ga72066260cd31ceed7ecc1a648eba37f2">cgroup_config_create_template_group</a></div><div class="ttdeci">int cgroup_config_create_template_group(struct cgroup *cgroup, char *template_name, int flags)</div><div class="ttdef"><b>Definition:</b> config.c:1799</div></div>
-<div class="ttc" id="agroup__group__config_html_ga85b285712354faca495193075035938d"><div class="ttname"><a href="group__group__config.html#ga85b285712354faca495193075035938d">cgroup_unload_cgroups</a></div><div class="ttdeci">int cgroup_unload_cgroups(void)</div><div class="ttdef"><b>Definition:</b> config.c:1396</div></div>
-<div class="ttc" id="agroup__group__config_html_ga89fe0d7943b29cc10d57b07abcdfa7b5"><div class="ttname"><a href="group__group__config.html#ga89fe0d7943b29cc10d57b07abcdfa7b5">cgroup_reload_cached_templates</a></div><div class="ttdeci">int cgroup_reload_cached_templates(char *pathname)</div><div class="ttdef"><b>Definition:</b> config.c:1509</div></div>
-<div class="ttc" id="agroup__group__config_html_ga8adfaca013333acf922a167f55b84140"><div class="ttname"><a href="group__group__config.html#ga8adfaca013333acf922a167f55b84140">cgroup_config_load_config</a></div><div class="ttdeci">int cgroup_config_load_config(const char *pathname)</div><div class="ttdef"><b>Definition:</b> config.c:1130</div></div>
-<div class="ttc" id="agroup__group__config_html_ga924860998c37da53cababe24163fc89b"><div class="ttname"><a href="group__group__config.html#ga924860998c37da53cababe24163fc89b">cgroup_load_templates_cache_from_files</a></div><div class="ttdeci">int cgroup_load_templates_cache_from_files(int *file_index)</div><div class="ttdef"><b>Definition:</b> config.c:1715</div></div>
-<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:1642</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:1266</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:116</div></div>
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/* SPDX-License-Identifier: LGPL-2.1-only */</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#ifndef _LIBCGROUP_CONFIG_H</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#define _LIBCGROUP_CONFIG_H</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span> </div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#ifndef _LIBCGROUP_H_INSIDE</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#error "Only <libcgroup.h> should be included directly."</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#ifndef SWIG</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include <features.h></span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__config.html#ga8adfaca013333acf922a167f55b84140">cgroup_config_load_config</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *pathname);</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__config.html#ga85b285712354faca495193075035938d">cgroup_unload_cgroups</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> </div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__config.html#gaff77affa0b80ccf507b4b46cc0a8c085">cgroup_config_unload_config</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *pathname, <span class="keywordtype">int</span> flags);</div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__config.html#ga2d3a252b2c0c61c8f64cb1fc41e370ea">cgroup_config_set_default</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *new_default);</div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__config.html#ga6f8c41bb920565e674787fe6dabaef00">cgroup_init_templates_cache</a>(<span class="keywordtype">char</span> *pathname);</div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> </div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__config.html#ga89fe0d7943b29cc10d57b07abcdfa7b5">cgroup_reload_cached_templates</a>(<span class="keywordtype">char</span> *pathname);</div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> </div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__config.html#ga924860998c37da53cababe24163fc89b">cgroup_load_templates_cache_from_files</a>(<span class="keywordtype">int</span> *file_index);</div>
+<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__string__list.html">cgroup_string_list</a>;</div>
+<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__group__config.html#gacb09024dc469a1a1ff8cdebd8d0ab422">cgroup_templates_cache_set_source_files</a>(</div>
+<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__string__list.html">cgroup_string_list</a> *tmpl_files);</div>
+<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> </div>
+<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__config.html#ga72066260cd31ceed7ecc1a648eba37f2">cgroup_config_create_template_group</a>(</div>
+<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>, <span class="keywordtype">char</span> *template_name,</div>
+<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keywordtype">int</span> flags);</div>
+<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> </div>
+<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span>} <span class="comment">/* extern "C" */</span></div>
+<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> </div>
+<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span><span class="preprocessor">#endif </span><span class="comment">/*_LIBCGROUP_CONFIG_H*/</span><span class="preprocessor"></span></div>
+<div class="ttc" id="agroup__group__config_html_ga2d3a252b2c0c61c8f64cb1fc41e370ea"><div class="ttname"><a href="group__group__config.html#ga2d3a252b2c0c61c8f64cb1fc41e370ea">cgroup_config_set_default</a></div><div class="ttdeci">int cgroup_config_set_default(struct cgroup *new_default)</div><div class="ttdef"><b>Definition:</b> config.c:1479</div></div>
+<div class="ttc" id="agroup__group__config_html_ga6f8c41bb920565e674787fe6dabaef00"><div class="ttname"><a href="group__group__config.html#ga6f8c41bb920565e674787fe6dabaef00">cgroup_init_templates_cache</a></div><div class="ttdeci">int cgroup_init_templates_cache(char *pathname)</div><div class="ttdef"><b>Definition:</b> config.c:1567</div></div>
+<div class="ttc" id="agroup__group__config_html_ga72066260cd31ceed7ecc1a648eba37f2"><div class="ttname"><a href="group__group__config.html#ga72066260cd31ceed7ecc1a648eba37f2">cgroup_config_create_template_group</a></div><div class="ttdeci">int cgroup_config_create_template_group(struct cgroup *cgroup, char *template_name, int flags)</div><div class="ttdef"><b>Definition:</b> config.c:1792</div></div>
+<div class="ttc" id="agroup__group__config_html_ga85b285712354faca495193075035938d"><div class="ttname"><a href="group__group__config.html#ga85b285712354faca495193075035938d">cgroup_unload_cgroups</a></div><div class="ttdeci">int cgroup_unload_cgroups(void)</div><div class="ttdef"><b>Definition:</b> config.c:1389</div></div>
+<div class="ttc" id="agroup__group__config_html_ga89fe0d7943b29cc10d57b07abcdfa7b5"><div class="ttname"><a href="group__group__config.html#ga89fe0d7943b29cc10d57b07abcdfa7b5">cgroup_reload_cached_templates</a></div><div class="ttdeci">int cgroup_reload_cached_templates(char *pathname)</div><div class="ttdef"><b>Definition:</b> config.c:1502</div></div>
+<div class="ttc" id="agroup__group__config_html_ga8adfaca013333acf922a167f55b84140"><div class="ttname"><a href="group__group__config.html#ga8adfaca013333acf922a167f55b84140">cgroup_config_load_config</a></div><div class="ttdeci">int cgroup_config_load_config(const char *pathname)</div><div class="ttdef"><b>Definition:</b> config.c:1123</div></div>
+<div class="ttc" id="agroup__group__config_html_ga924860998c37da53cababe24163fc89b"><div class="ttname"><a href="group__group__config.html#ga924860998c37da53cababe24163fc89b">cgroup_load_templates_cache_from_files</a></div><div class="ttdeci">int cgroup_load_templates_cache_from_files(int *file_index)</div><div class="ttdef"><b>Definition:</b> config.c:1708</div></div>
+<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:1635</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:1259</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:37</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:109</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
<div class="headertitle"><div class="title">error.h</div></div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef _LIBCGROUP_ERROR_H</span></div>
-<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define _LIBCGROUP_ERROR_H</span></div>
-<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
-<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#ifndef _LIBCGROUP_H_INSIDE</span></div>
-<div class="line"><a id="l00005" 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 id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
-<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#ifndef SWIG</span></div>
-<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include <features.h></span></div>
-<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
-<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
-<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="keyword">enum</span> {</div>
-<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> ECGROUPNOTCOMPILED = 50000,</div>
-<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> ECGROUPNOTMOUNTED, <span class="comment">/* 50001 */</span></div>
-<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> ECGROUPNOTEXIST, <span class="comment">/* 50002 */</span></div>
-<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> ECGROUPNOTCREATED, <span class="comment">/* 50003 */</span></div>
-<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> ECGROUPSUBSYSNOTMOUNTED, <span class="comment">/* 50004 */</span></div>
-<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> ECGROUPNOTOWNER, <span class="comment">/* 50005 */</span></div>
-<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba24a6584dd4238475a4e247bdf6956def"> 39</a></span> <a class="code hl_enumvalue" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba24a6584dd4238475a4e247bdf6956def">ECGROUPMULTIMOUNTED</a>, <span class="comment">/* 50006 */</span></div>
-<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="comment">/* This is the stock error. Default error. @todo really? */</span></div>
-<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> ECGROUPNOTALLOWED, <span class="comment">/* 50007 */</span></div>
-<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> ECGMAXVALUESEXCEEDED, <span class="comment">/* 50008 */</span></div>
-<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> ECGCONTROLLEREXISTS, <span class="comment">/* 50009 */</span></div>
-<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> ECGVALUEEXISTS, <span class="comment">/* 50010 */</span></div>
-<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> ECGINVAL, <span class="comment">/* 50011 */</span></div>
-<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> ECGCONTROLLERCREATEFAILED, <span class="comment">/* 50012 */</span></div>
-<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> ECGFAIL, <span class="comment">/* 50013 */</span></div>
-<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> ECGROUPNOTINITIALIZED, <span class="comment">/* 50014 */</span></div>
-<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> ECGROUPVALUENOTEXIST, <span class="comment">/* 50015 */</span></div>
-<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba88111f9ca2e967cbf7565724444c0193"> 55</a></span> <a class="code hl_enumvalue" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba88111f9ca2e967cbf7565724444c0193">ECGOTHER</a>, <span class="comment">/* 50016 */</span></div>
-<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> ECGROUPNOTEQUAL, <span class="comment">/* 50017 */</span></div>
-<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> ECGCONTROLLERNOTEQUAL, <span class="comment">/* 50018 */</span></div>
-<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55bac62bda67f3029c39ef456100008b1f39"> 59</a></span> <a class="code hl_enumvalue" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55bac62bda67f3029c39ef456100008b1f39">ECGROUPPARSEFAIL</a>, <span class="comment">/* 50019 */</span></div>
-<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba7c23c1a7cbfb7e8e9c66dd96b5c66d21"> 61</a></span> <a class="code hl_enumvalue" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba7c23c1a7cbfb7e8e9c66dd96b5c66d21">ECGROUPNORULES</a>, <span class="comment">/* 50020 */</span></div>
-<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> ECGMOUNTFAIL, <span class="comment">/* 50021 */</span></div>
-<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba2724c2f0af0d3e3cea66027f6bf2e436"> 67</a></span> <a class="code hl_enumvalue" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba2724c2f0af0d3e3cea66027f6bf2e436">ECGEOF</a> = 50023,</div>
-<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55baf808b0e31be4bfbe8a21f800f913f9c0"> 69</a></span> <a class="code hl_enumvalue" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55baf808b0e31be4bfbe8a21f800f913f9c0">ECGCONFIGPARSEFAIL</a>, <span class="comment">/* 50024 */</span></div>
-<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> ECGNAMESPACEPATHS, <span class="comment">/* 50025 */</span></div>
-<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> ECGNAMESPACECONTROLLER, <span class="comment">/* 50026 */</span></div>
-<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> ECGMOUNTNAMESPACE, <span class="comment">/* 50027 */</span></div>
-<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> ECGROUPUNSUPP, <span class="comment">/* 50028 */</span></div>
-<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> ECGCANTSETVALUE, <span class="comment">/* 50029 */</span></div>
-<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba94dbe90328ef8a212633ec464b9b9b11"> 76</a></span> <a class="code hl_enumvalue" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba94dbe90328ef8a212633ec464b9b9b11">ECGNONEMPTY</a>, <span class="comment">/* 50030 */</span></div>
-<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba33cc635e4cc4055b2c487f027fbdd960"> 78</a></span> <a class="code hl_enumvalue" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba33cc635e4cc4055b2c487f027fbdd960">ECGNOVERSIONCONVERT</a>, <span class="comment">/* 50031 */</span></div>
-<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span>};</div>
-<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> </div>
-<div class="line"><a id="l00084" 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 id="l00085" name="l00085"></a><span class="lineno"> 85</span> </div>
-<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span><span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code hl_function" href="group__group__errors.html#ga7ee3be57533b25d597a2bfd19819307a">cgroup_strerror</a>(<span class="keywordtype">int</span> code);</div>
-<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
-<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46">cgroup_get_last_errno</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> </div>
-<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span>} <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div>
-<div class="line"><a id="l00110" 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:4593</div></div>
-<div class="ttc" id="agroup__group__errors_html_ga7ee3be57533b25d597a2bfd19819307a"><div class="ttname"><a href="group__group__errors.html#ga7ee3be57533b25d597a2bfd19819307a">cgroup_strerror</a></div><div class="ttdeci">const char * cgroup_strerror(int code)</div><div class="ttdef"><b>Definition:</b> api.c:4582</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>
-<div class="ttc" id="agroup__group__errors_html_gga06fc87d81c62e9abb8790b6e5713c55bac62bda67f3029c39ef456100008b1f39"><div class="ttname"><a href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55bac62bda67f3029c39ef456100008b1f39">ECGROUPPARSEFAIL</a></div><div class="ttdeci">@ ECGROUPPARSEFAIL</div><div class="ttdef"><b>Definition:</b> error.h:59</div></div>
-<div class="ttc" id="agroup__group__errors_html_gga06fc87d81c62e9abb8790b6e5713c55baf808b0e31be4bfbe8a21f800f913f9c0"><div class="ttname"><a href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55baf808b0e31be4bfbe8a21f800f913f9c0">ECGCONFIGPARSEFAIL</a></div><div class="ttdeci">@ ECGCONFIGPARSEFAIL</div><div class="ttdef"><b>Definition:</b> error.h:69</div></div>
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/* SPDX-License-Identifier: LGPL-2.1-only */</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#ifndef _LIBCGROUP_ERROR_H</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#define _LIBCGROUP_ERROR_H</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span> </div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#ifndef _LIBCGROUP_H_INSIDE</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#error "Only <libcgroup.h> should be included directly."</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#ifndef SWIG</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include <features.h></span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="keyword">enum</span> {</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> ECGROUPNOTCOMPILED = 50000,</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> ECGROUPNOTMOUNTED, <span class="comment">/* 50001 */</span></div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> ECGROUPNOTEXIST, <span class="comment">/* 50002 */</span></div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> ECGROUPNOTCREATED, <span class="comment">/* 50003 */</span></div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> ECGROUPSUBSYSNOTMOUNTED, <span class="comment">/* 50004 */</span></div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> ECGROUPNOTOWNER, <span class="comment">/* 50005 */</span></div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba24a6584dd4238475a4e247bdf6956def"> 40</a></span> <a class="code hl_enumvalue" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba24a6584dd4238475a4e247bdf6956def">ECGROUPMULTIMOUNTED</a>, <span class="comment">/* 50006 */</span></div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="comment">/* This is the stock error. Default error. @todo really? */</span></div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> ECGROUPNOTALLOWED, <span class="comment">/* 50007 */</span></div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> ECGMAXVALUESEXCEEDED, <span class="comment">/* 50008 */</span></div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> ECGCONTROLLEREXISTS, <span class="comment">/* 50009 */</span></div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> ECGVALUEEXISTS, <span class="comment">/* 50010 */</span></div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> ECGINVAL, <span class="comment">/* 50011 */</span></div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> ECGCONTROLLERCREATEFAILED, <span class="comment">/* 50012 */</span></div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> ECGFAIL, <span class="comment">/* 50013 */</span></div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> ECGROUPNOTINITIALIZED, <span class="comment">/* 50014 */</span></div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> ECGROUPVALUENOTEXIST, <span class="comment">/* 50015 */</span></div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba88111f9ca2e967cbf7565724444c0193"> 56</a></span> <a class="code hl_enumvalue" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba88111f9ca2e967cbf7565724444c0193">ECGOTHER</a>, <span class="comment">/* 50016 */</span></div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> ECGROUPNOTEQUAL, <span class="comment">/* 50017 */</span></div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> ECGCONTROLLERNOTEQUAL, <span class="comment">/* 50018 */</span></div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55bac62bda67f3029c39ef456100008b1f39"> 60</a></span> <a class="code hl_enumvalue" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55bac62bda67f3029c39ef456100008b1f39">ECGROUPPARSEFAIL</a>, <span class="comment">/* 50019 */</span></div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba7c23c1a7cbfb7e8e9c66dd96b5c66d21"> 62</a></span> <a class="code hl_enumvalue" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba7c23c1a7cbfb7e8e9c66dd96b5c66d21">ECGROUPNORULES</a>, <span class="comment">/* 50020 */</span></div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> ECGMOUNTFAIL, <span class="comment">/* 50021 */</span></div>
+<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"><a class="line" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba2724c2f0af0d3e3cea66027f6bf2e436"> 68</a></span> <a class="code hl_enumvalue" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba2724c2f0af0d3e3cea66027f6bf2e436">ECGEOF</a> = 50023,</div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55baf808b0e31be4bfbe8a21f800f913f9c0"> 70</a></span> <a class="code hl_enumvalue" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55baf808b0e31be4bfbe8a21f800f913f9c0">ECGCONFIGPARSEFAIL</a>, <span class="comment">/* 50024 */</span></div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> ECGNAMESPACEPATHS, <span class="comment">/* 50025 */</span></div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> ECGNAMESPACECONTROLLER, <span class="comment">/* 50026 */</span></div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> ECGMOUNTNAMESPACE, <span class="comment">/* 50027 */</span></div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> ECGROUPUNSUPP, <span class="comment">/* 50028 */</span></div>
+<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> ECGCANTSETVALUE, <span class="comment">/* 50029 */</span></div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba94dbe90328ef8a212633ec464b9b9b11"> 77</a></span> <a class="code hl_enumvalue" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba94dbe90328ef8a212633ec464b9b9b11">ECGNONEMPTY</a>, <span class="comment">/* 50030 */</span></div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba33cc635e4cc4055b2c487f027fbdd960"> 79</a></span> <a class="code hl_enumvalue" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba33cc635e4cc4055b2c487f027fbdd960">ECGNOVERSIONCONVERT</a>, <span class="comment">/* 50031 */</span></div>
+<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span>};</div>
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> </div>
+<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"><a class="line" href="group__group__errors.html#ga515eba7218b187ffe263b7d9ecb3ac1b"> 85</a></span><span class="preprocessor">#define ECGRULESPARSEFAIL ECGROUPPARSEFAIL</span></div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> </div>
+<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code hl_function" href="group__group__errors.html#ga7ee3be57533b25d597a2bfd19819307a">cgroup_strerror</a>(<span class="keywordtype">int</span> code);</div>
+<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> </div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46">cgroup_get_last_errno</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> </div>
+<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span>} <span class="comment">/* extern "C" */</span></div>
+<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> </div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</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:4586</div></div>
+<div class="ttc" id="agroup__group__errors_html_ga7ee3be57533b25d597a2bfd19819307a"><div class="ttname"><a href="group__group__errors.html#ga7ee3be57533b25d597a2bfd19819307a">cgroup_strerror</a></div><div class="ttdeci">const char * cgroup_strerror(int code)</div><div class="ttdef"><b>Definition:</b> api.c:4575</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:40</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:68</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:79</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:62</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:56</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:77</div></div>
+<div class="ttc" id="agroup__group__errors_html_gga06fc87d81c62e9abb8790b6e5713c55bac62bda67f3029c39ef456100008b1f39"><div class="ttname"><a href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55bac62bda67f3029c39ef456100008b1f39">ECGROUPPARSEFAIL</a></div><div class="ttdeci">@ ECGROUPPARSEFAIL</div><div class="ttdef"><b>Definition:</b> error.h:60</div></div>
+<div class="ttc" id="agroup__group__errors_html_gga06fc87d81c62e9abb8790b6e5713c55baf808b0e31be4bfbe8a21f800f913f9c0"><div class="ttname"><a href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55baf808b0e31be4bfbe8a21f800f913f9c0">ECGCONFIGPARSEFAIL</a></div><div class="ttdeci">@ ECGCONFIGPARSEFAIL</div><div class="ttdef"><b>Definition:</b> error.h:70</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
</div><!-- fragment --> I.e. there is <code>cpu</code> and <code>cpuacct</code> controller mounted together in one hierarchy, with <code>foo</code> and <code>bar</code> groups. In addition, <code>freezer</code> is mounted as separate hierarchy, with only one <code>foo</code> group.</dd></dl>
<dl class="section user"><dt></dt><dd>Following code creates <code>struct cgroup*</code> structure, which represents one group <code>cpu,cpuacct:/foo</code>: <div class="fragment"><div class="line"><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup.html">cgroup</a> *foo = <a class="code hl_function" href="group__group__groups.html#gad34c82ead174988d418f3dcb003aaca7">cgroup_new_cgroup</a>(<span class="stringliteral">"foo"</span>);</div>
<div class="line"><a class="code hl_function" href="group__group__groups.html#ga3929afd6ced9fe877613286b5f06cf8d">cgroup_add_controller</a>(foo, <span class="stringliteral">"cpu"</span>);</div>
-<div class="ttc" id="agroup__group__groups_html_ga3929afd6ced9fe877613286b5f06cf8d"><div class="ttname"><a href="group__group__groups.html#ga3929afd6ced9fe877613286b5f06cf8d">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:59</div></div>
-<div class="ttc" id="agroup__group__groups_html_gad34c82ead174988d418f3dcb003aaca7"><div class="ttname"><a href="group__group__groups.html#gad34c82ead174988d418f3dcb003aaca7">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:46</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:116</div></div>
+<div class="ttc" id="agroup__group__groups_html_ga3929afd6ced9fe877613286b5f06cf8d"><div class="ttname"><a href="group__group__groups.html#ga3929afd6ced9fe877613286b5f06cf8d">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:52</div></div>
+<div class="ttc" id="agroup__group__groups_html_gad34c82ead174988d418f3dcb003aaca7"><div class="ttname"><a href="group__group__groups.html#gad34c82ead174988d418f3dcb003aaca7">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:39</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:109</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 hl_struct" href="structcgroup.html">cgroup</a> *foo = <a class="code hl_function" href="group__group__groups.html#gad34c82ead174988d418f3dcb003aaca7">cgroup_new_cgroup</a>(<span class="stringliteral">"foo"</span>);</div>
<div class="line"><a class="code hl_function" href="group__group__groups.html#ga3929afd6ced9fe877613286b5f06cf8d">cgroup_add_controller</a>(foo, <span class="stringliteral">"cpu"</span>);</div>
</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 hl_struct" href="structcgroup.html">cgroup</a> *foo = <a class="code hl_function" href="group__group__groups.html#gad34c82ead174988d418f3dcb003aaca7">cgroup_new_cgroup</a>(<span class="stringliteral">"foo"</span>);</div>
<div class="line"><a class="code hl_function" 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:2771</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:2764</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#ga3929afd6ced9fe877613286b5f06cf8d">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 hl_struct" href="structcgroup.html">cgroup</a> *root = <a class="code hl_function" href="group__group__groups.html#gad34c82ead174988d418f3dcb003aaca7">cgroup_new_cgroup</a>(<span class="stringliteral">"/"</span>);</div>
<div class="line"><a class="code hl_function" 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:3321</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:3314</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#ga3929afd6ced9fe877613286b5f06cf8d">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">
<div class="line"> <span class="comment">// process the error here</span></div>
<div class="line">}</div>
<div class="line">iterator_name_end(&handle);</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_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:68</div></div>
</div><!-- fragment --> </dd></dl>
</li>
</ul>
<div class="line"> ...</div>
<div class="line"> }</div>
<div class="line"> ...</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:49</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:42</div></div>
</div><!-- fragment --> </dd></dl>
</td></tr>
<tr class="memitem:ga98b7aea5d23411e70c7e3da54d90233a"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__log.html#ga98b7aea5d23411e70c7e3da54d90233a">cgroup_log_level</a> { <a class="el" href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa4dd44215cd3553e79dbf91eb9ca418a2">CGROUP_LOG_ERROR</a> = 1
<div class="headertitle"><div class="title">groups.h</div></div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef _LIBCGROUP_GROUPS_H</span></div>
-<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define _LIBCGROUP_GROUPS_H</span></div>
-<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
-<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#ifndef _LIBCGROUP_H_INSIDE</span></div>
-<div class="line"><a id="l00005" 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 id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
-<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#ifndef SWIG</span></div>
-<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include <features.h></span></div>
-<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include <sys/types.h></span></div>
-<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include <stdbool.h></span></div>
-<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
-<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
-<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="keyword">enum</span> cg_version_t {</div>
-<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> CGROUP_UNK = 0,</div>
-<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> CGROUP_V1,</div>
-<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> CGROUP_V2,</div>
-<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> CGROUP_DISK = 0xFF,</div>
-<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span>};</div>
-<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
-<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="keyword">enum</span> cgroup_delete_flag {</div>
-<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> CGFLAG_DELETE_IGNORE_MIGRATION = 1,</div>
-<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
-<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> CGFLAG_DELETE_RECURSIVE = 2,</div>
-<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
-<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> CGFLAG_DELETE_EMPTY_ONLY = 4,</div>
-<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span>};</div>
-<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup.html">cgroup</a>;</div>
-<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> </div>
-<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a>;</div>
-<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> </div>
-<div class="line"><a id="l00131" 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 id="l00132" name="l00132"></a><span class="lineno"> 132</span> </div>
-<div class="line"><a id="l00136" 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 id="l00137" name="l00137"></a><span class="lineno"> 137</span> </div>
-<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_function" href="group__group__groups.html#gad34c82ead174988d418f3dcb003aaca7">cgroup_new_cgroup</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
-<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> </div>
-<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *<a class="code hl_function" href="group__group__groups.html#ga3929afd6ced9fe877613286b5f06cf8d">cgroup_add_controller</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>,</div>
-<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
-<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> </div>
-<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#gae870d271b789b5c54c2e3d35de3cd6f9">cgroup_add_all_controllers</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>);</div>
-<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> </div>
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/* SPDX-License-Identifier: LGPL-2.1-only */</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#ifndef _LIBCGROUP_GROUPS_H</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#define _LIBCGROUP_GROUPS_H</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span> </div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#ifndef _LIBCGROUP_H_INSIDE</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#error "Only <libcgroup.h> should be included directly."</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#ifndef SWIG</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include <features.h></span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include <sys/types.h></span></div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include <stdbool.h></span></div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="keyword">enum</span> cg_version_t {</div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> CGROUP_UNK = 0,</div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> CGROUP_V1,</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> CGROUP_V2,</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> CGROUP_DISK = 0xFF,</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span>};</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="keyword">enum</span> cgroup_delete_flag {</div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> CGFLAG_DELETE_IGNORE_MIGRATION = 1,</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> CGFLAG_DELETE_RECURSIVE = 2,</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> CGFLAG_DELETE_EMPTY_ONLY = 4,</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span>};</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup.html">cgroup</a>;</div>
+<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> </div>
+<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a>;</div>
+<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> </div>
+<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"><a class="line" href="group__group__groups.html#gad4ffad2eccf9fcbfa8a551e269e0ad58"> 132</a></span><span class="preprocessor">#define NO_PERMS (-1U)</span></div>
+<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> </div>
+<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"><a class="line" href="group__group__groups.html#ga2a7954a987e3fbf8eabcc94cf381353e"> 137</a></span><span class="preprocessor">#define NO_UID_GID (-1U)</span></div>
+<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> </div>
+<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_function" href="group__group__groups.html#gad34c82ead174988d418f3dcb003aaca7">cgroup_new_cgroup</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
+<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> </div>
+<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *<a class="code hl_function" href="group__group__groups.html#ga3929afd6ced9fe877613286b5f06cf8d">cgroup_add_controller</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>,</div>
+<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
+<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> </div>
+<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#gae870d271b789b5c54c2e3d35de3cd6f9">cgroup_add_all_controllers</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>);</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> </div>
-<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *<a class="code hl_function" href="group__group__groups.html#ga6b60ab9187a883a2ae114f8d87191e27">cgroup_get_controller</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>,</div>
-<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
-<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> </div>
-<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__group__groups.html#gab20fdb1ae479f8baac482336abf73900">cgroup_free</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> **<a class="code hl_struct" href="structcgroup.html">cgroup</a>);</div>
-<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> </div>
-<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__group__groups.html#ga92d27c9ff0d655838642a7aa68497596">cgroup_free_controllers</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>);</div>
-<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> </div>
+<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> </div>
+<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *<a class="code hl_function" href="group__group__groups.html#ga6b60ab9187a883a2ae114f8d87191e27">cgroup_get_controller</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>,</div>
+<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
+<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> </div>
+<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__group__groups.html#gab20fdb1ae479f8baac482336abf73900">cgroup_free</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> **<a class="code hl_struct" href="structcgroup.html">cgroup</a>);</div>
+<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> </div>
+<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__group__groups.html#ga92d27c9ff0d655838642a7aa68497596">cgroup_free_controllers</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>);</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> </div>
-<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>, <span class="keywordtype">int</span> ignore_ownership);</div>
-<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> </div>
-<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62">cgroup_create_cgroup_from_parent</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>,</div>
-<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> <span class="keywordtype">int</span> ignore_ownership);</div>
-<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> </div>
-<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071">cgroup_modify_cgroup</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>);</div>
-<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> </div>
-<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565">cgroup_delete_cgroup</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>, <span class="keywordtype">int</span> ignore_migration);</div>
-<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> </div>
-<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#ga860c1ec70189c969b2c8373fc1e96d36">cgroup_delete_cgroup_ext</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>, <span class="keywordtype">int</span> flags);</div>
-<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> </div>
+<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> </div>
+<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>, <span class="keywordtype">int</span> ignore_ownership);</div>
+<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> </div>
+<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62">cgroup_create_cgroup_from_parent</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>,</div>
+<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> <span class="keywordtype">int</span> ignore_ownership);</div>
+<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> </div>
+<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071">cgroup_modify_cgroup</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>);</div>
+<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> </div>
+<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565">cgroup_delete_cgroup</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>, <span class="keywordtype">int</span> ignore_migration);</div>
+<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> </div>
+<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#ga860c1ec70189c969b2c8373fc1e96d36">cgroup_delete_cgroup_ext</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>, <span class="keywordtype">int</span> flags);</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> </div>
-<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>);</div>
-<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> </div>
-<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#gaa981a95e0917d3167601a4c1b392336a">cgroup_copy_cgroup</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *dst, <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *src);</div>
-<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> </div>
-<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#ga86898b59e50335f99fe84a11fa38d3fc">cgroup_compare_cgroup</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *cgroup_a, <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *cgroup_b);</div>
-<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> </div>
+<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> </div>
+<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>);</div>
+<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> </div>
+<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#gaa981a95e0917d3167601a4c1b392336a">cgroup_copy_cgroup</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *dst, <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *src);</div>
+<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> </div>
+<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#ga86898b59e50335f99fe84a11fa38d3fc">cgroup_compare_cgroup</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *cgroup_a, <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *cgroup_b);</div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> </div>
-<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#gab1725c50c49cec4b0bdad1f26b150ca7">cgroup_compare_controllers</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *cgca,</div>
-<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *cgcb);</div>
-<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> </div>
-<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#ga53b9e13e30660c805ab5773d69397a43">cgroup_set_uid_gid</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>, uid_t tasks_uid, gid_t tasks_gid,</div>
-<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> uid_t control_uid, gid_t control_gid);</div>
-<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> </div>
-<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#ga007d21c304d9cc6e948dc0ae51ecfa86">cgroup_get_uid_gid</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>, uid_t *tasks_uid,</div>
-<div class="line"><a id="l00374" 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 id="l00375" name="l00375"></a><span class="lineno"> 375</span> </div>
-<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__group__groups.html#gaa0400f1ff2fba7fbb6db82d97039d92b">cgroup_set_permissions</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>,</div>
-<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span> mode_t control_dperm, mode_t control_fperm,</div>
-<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span> mode_t task_fperm);</div>
-<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span> </div>
-<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#ga4817c68ab791c09c07b663c29b3fb029">cgroup_add_value_string</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a id="l00413" 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 id="l00425" name="l00425"></a><span class="lineno"> 425</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#ga6c973bb5ce99e7a91def2032f23d7087">cgroup_add_value_int64</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a id="l00426" 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 id="l00436" name="l00436"></a><span class="lineno"> 436</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#gad9d2216205b96278c626122f8d5e63bb">cgroup_add_value_uint64</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a id="l00437" 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 id="l00447" name="l00447"></a><span class="lineno"> 447</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#ga4b191a600f84b00ea7afd12c01d918f3">cgroup_add_value_bool</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a id="l00448" 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 id="l00449" name="l00449"></a><span class="lineno"> 449</span> </div>
-<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#gafaa51e5ffe09f8ad05585a1d3b6f7fa9">cgroup_get_value_string</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a id="l00466" 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 id="l00475" name="l00475"></a><span class="lineno"> 475</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#ga0fe9b05f26b3cab21fc446c9a2700526">cgroup_get_value_int64</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a id="l00476" 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 id="l00485" name="l00485"></a><span class="lineno"> 485</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#ga951861259c0373895bfb637fce337312">cgroup_get_value_uint64</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a id="l00486" 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 id="l00495" name="l00495"></a><span class="lineno"> 495</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#gab95007148eac89b7e935d93a4524787b">cgroup_get_value_bool</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a id="l00496" 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 id="l00497" name="l00497"></a><span class="lineno"> 497</span> </div>
-<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#ga938febc02b59cbeb8e4ceb2dc7fdac82">cgroup_set_value_string</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a id="l00507" 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 id="l00518" name="l00518"></a><span class="lineno"> 518</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#gaa5c39e51035cc43dd26a3c620441a956">cgroup_set_value_int64</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a id="l00519" 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 id="l00528" name="l00528"></a><span class="lineno"> 528</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#gade01aa1fe30ccc968af9fe8a3bc821e5">cgroup_set_value_uint64</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a id="l00529" 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 id="l00538" name="l00538"></a><span class="lineno"> 538</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#gafb24892bc221cffee0f5fe07f64d54d7">cgroup_set_value_bool</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a id="l00539" 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 id="l00549" name="l00549"></a><span class="lineno"> 549</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#ga25115085978ce2a8d671e7876cc49c1d">cgroup_get_value_name_count</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller);</div>
-<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span> </div>
-<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span><span class="keywordtype">char</span> *<a class="code hl_function" href="group__group__groups.html#ga9d01743fd3f97014e08fc67149ec5f0b">cgroup_get_value_name</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller, <span class="keywordtype">int</span> index);</div>
-<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span> </div>
-<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span><span class="keywordtype">int</span> <a class="code hl_function" 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 id="l00575" name="l00575"></a><span class="lineno"> 575</span> </div>
-<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#gaef0bf6cd480f2dcb5e964de151a27dd1">cg_chmod_recursive</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>, mode_t dir_mode,</div>
-<div class="line"><a id="l00585" 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 id="l00586" name="l00586"></a><span class="lineno"> 586</span> </div>
-<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span><span class="keywordtype">char</span> *<a class="code hl_function" href="group__group__groups.html#gab60b1f528fbfb17d69a88f499c7071aa">cgroup_get_cgroup_name</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>);</div>
-<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span> </div>
-<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span><span class="comment">/*</span></div>
-<div class="line"><a id="l00594" 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 id="l00595" name="l00595"></a><span class="lineno"> 595</span><span class="comment"> *</span></div>
-<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span><span class="comment"> * @param out_cgroup Destination cgroup</span></div>
-<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span><span class="comment"> * @param out_version Destination cgroup version</span></div>
-<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span><span class="comment"> * @param in_cgroup Source cgroup</span></div>
-<div class="line"><a id="l00599" 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 id="l00600" name="l00600"></a><span class="lineno"> 600</span><span class="comment"> *</span></div>
-<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span><span class="comment"> * @return 0 on success</span></div>
-<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span><span class="comment"> * ECGFAIL conversion failed</span></div>
-<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span><span class="comment"> * ECGCONTROLLERNOTEQUAL incorrect controller version provided</span></div>
-<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</span><span class="comment"> */</span></div>
-<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span><span class="keywordtype">int</span> cgroup_convert_cgroup(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> * <span class="keyword">const</span> out_cgroup,</div>
-<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span> <span class="keyword">enum</span> cg_version_t out_version,</div>
-<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span> <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> * <span class="keyword">const</span> in_cgroup,</div>
-<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span> <span class="keyword">enum</span> cg_version_t in_version);</div>
-<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> </div>
-<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"> 617</span><span class="keywordtype">int</span> <a class="code hl_function" 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 id="l00618" 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 id="l00619" name="l00619"></a><span class="lineno"> 619</span> </div>
-<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"> 626</span><span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span>} <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"> 629</span> </div>
-<div class="line"><a id="l00630" 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:424</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:5631</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:504</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:3026</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:728</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:2312</div></div>
-<div class="ttc" id="agroup__group__groups_html_ga3929afd6ced9fe877613286b5f06cf8d"><div class="ttname"><a href="group__group__groups.html#ga3929afd6ced9fe877613286b5f06cf8d">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:59</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:5889</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:216</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:297</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:410</div></div>
-<div class="ttc" id="agroup__group__groups_html_ga6b60ab9187a883a2ae114f8d87191e27"><div class="ttname"><a href="group__group__groups.html#ga6b60ab9187a883a2ae114f8d87191e27">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:438</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:261</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:3033</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:374</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:2771</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:188</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:482</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:554</div></div>
-<div class="ttc" id="agroup__group__groups_html_ga9d01743fd3f97014e08fc67149ec5f0b"><div class="ttname"><a href="group__group__groups.html#ga9d01743fd3f97014e08fc67149ec5f0b">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:737</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:379</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:527</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:2424</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:347</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:201</div></div>
-<div class="ttc" id="agroup__group__groups_html_gab60b1f528fbfb17d69a88f499c7071aa"><div class="ttname"><a href="group__group__groups.html#gab60b1f528fbfb17d69a88f499c7071aa">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:749</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:603</div></div>
-<div class="ttc" id="agroup__group__groups_html_gad34c82ead174988d418f3dcb003aaca7"><div class="ttname"><a href="group__group__groups.html#gad34c82ead174988d418f3dcb003aaca7">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:46</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:3321</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:279</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:2611</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:576</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:115</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:350</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:457</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:631</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:108</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:116</div></div>
+<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> </div>
+<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#gab1725c50c49cec4b0bdad1f26b150ca7">cgroup_compare_controllers</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *cgca,</div>
+<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *cgcb);</div>
+<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span> </div>
+<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#ga53b9e13e30660c805ab5773d69397a43">cgroup_set_uid_gid</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>, uid_t tasks_uid, gid_t tasks_gid,</div>
+<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> uid_t control_uid, gid_t control_gid);</div>
+<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> </div>
+<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#ga007d21c304d9cc6e948dc0ae51ecfa86">cgroup_get_uid_gid</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>, uid_t *tasks_uid,</div>
+<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span> gid_t *tasks_gid, uid_t *control_uid, gid_t *control_gid);</div>
+<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span> </div>
+<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__group__groups.html#gaa0400f1ff2fba7fbb6db82d97039d92b">cgroup_set_permissions</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>,</div>
+<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span> mode_t control_dperm, mode_t control_fperm,</div>
+<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span> mode_t task_fperm);</div>
+<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span> </div>
+<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"> 413</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#ga4817c68ab791c09c07b663c29b3fb029">cgroup_add_value_string</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
+<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"> 414</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 id="l00426" name="l00426"></a><span class="lineno"> 426</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#ga6c973bb5ce99e7a91def2032f23d7087">cgroup_add_value_int64</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
+<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"> 427</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *name, int64_t value);</div>
+<div class="line"><a id="l00437" name="l00437"></a><span class="lineno"> 437</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#gad9d2216205b96278c626122f8d5e63bb">cgroup_add_value_uint64</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
+<div class="line"><a id="l00438" name="l00438"></a><span class="lineno"> 438</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *name, u_int64_t value);</div>
+<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"> 448</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#ga4b191a600f84b00ea7afd12c01d918f3">cgroup_add_value_bool</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
+<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"> 449</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">bool</span> value);</div>
+<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span> </div>
+<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"> 466</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#gafaa51e5ffe09f8ad05585a1d3b6f7fa9">cgroup_get_value_string</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
+<div class="line"><a id="l00467" name="l00467"></a><span class="lineno"> 467</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">char</span> **value);</div>
+<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#ga0fe9b05f26b3cab21fc446c9a2700526">cgroup_get_value_int64</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
+<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *name, int64_t *value);</div>
+<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#ga951861259c0373895bfb637fce337312">cgroup_get_value_uint64</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
+<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *name, u_int64_t *value);</div>
+<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#gab95007148eac89b7e935d93a4524787b">cgroup_get_value_bool</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
+<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">bool</span> *value);</div>
+<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span> </div>
+<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#ga938febc02b59cbeb8e4ceb2dc7fdac82">cgroup_set_value_string</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
+<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</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 id="l00519" name="l00519"></a><span class="lineno"> 519</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#gaa5c39e51035cc43dd26a3c620441a956">cgroup_set_value_int64</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
+<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *name, int64_t value);</div>
+<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#gade01aa1fe30ccc968af9fe8a3bc821e5">cgroup_set_value_uint64</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
+<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"> 530</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *name, u_int64_t value);</div>
+<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#gafb24892bc221cffee0f5fe07f64d54d7">cgroup_set_value_bool</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
+<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">bool</span> value);</div>
+<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#ga25115085978ce2a8d671e7876cc49c1d">cgroup_get_value_name_count</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller);</div>
+<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> </div>
+<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span><span class="keywordtype">char</span> *<a class="code hl_function" href="group__group__groups.html#ga9d01743fd3f97014e08fc67149ec5f0b">cgroup_get_value_name</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller, <span class="keywordtype">int</span> index);</div>
+<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"> 565</span> </div>
+<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span><span class="keywordtype">int</span> <a class="code hl_function" 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 id="l00576" name="l00576"></a><span class="lineno"> 576</span> </div>
+<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__groups.html#gaef0bf6cd480f2dcb5e964de151a27dd1">cg_chmod_recursive</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>, mode_t dir_mode,</div>
+<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> <span class="keywordtype">int</span> dirm_change, mode_t file_mode, <span class="keywordtype">int</span> filem_change);</div>
+<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span> </div>
+<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span><span class="keywordtype">char</span> *<a class="code hl_function" href="group__group__groups.html#gab60b1f528fbfb17d69a88f499c7071aa">cgroup_get_cgroup_name</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>);</div>
+<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> </div>
+<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span><span class="comment">/*</span></div>
+<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span><span class="comment"> * Convert from one cgroup version to another version</span></div>
+<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span><span class="comment"> *</span></div>
+<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span><span class="comment"> * @param out_cgroup Destination cgroup</span></div>
+<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span><span class="comment"> * @param out_version Destination cgroup version</span></div>
+<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span><span class="comment"> * @param in_cgroup Source cgroup</span></div>
+<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span><span class="comment"> * @param in_version Source cgroup version, only used if set to v1 or v2</span></div>
+<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span><span class="comment"> *</span></div>
+<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span><span class="comment"> * @return 0 on success</span></div>
+<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span><span class="comment"> * ECGFAIL conversion failed</span></div>
+<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</span><span class="comment"> * ECGCONTROLLERNOTEQUAL incorrect controller version provided</span></div>
+<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span><span class="comment"> */</span></div>
+<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span><span class="keywordtype">int</span> cgroup_convert_cgroup(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> * <span class="keyword">const</span> out_cgroup,</div>
+<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span> <span class="keyword">enum</span> cg_version_t out_version,</div>
+<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span> <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> * <span class="keyword">const</span> in_cgroup,</div>
+<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> <span class="keyword">enum</span> cg_version_t in_version);</div>
+<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span> </div>
+<div class="line"><a id="l00618" name="l00618"></a><span class="lineno"> 618</span><span class="keywordtype">int</span> <a class="code hl_function" 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 id="l00619" name="l00619"></a><span class="lineno"> 619</span> <span class="keyword">enum</span> cg_version_t * <span class="keyword">const</span> version);</div>
+<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span> </div>
+<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span>} <span class="comment">/* extern "C" */</span></div>
+<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"> 629</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00630" name="l00630"></a><span class="lineno"> 630</span> </div>
+<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"> 631</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:5624</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:497</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:3019</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:721</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:2305</div></div>
+<div class="ttc" id="agroup__group__groups_html_ga3929afd6ced9fe877613286b5f06cf8d"><div class="ttname"><a href="group__group__groups.html#ga3929afd6ced9fe877613286b5f06cf8d">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:52</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:5882</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:209</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:290</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_ga6b60ab9187a883a2ae114f8d87191e27"><div class="ttname"><a href="group__group__groups.html#ga6b60ab9187a883a2ae114f8d87191e27">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_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:254</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:3026</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:367</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:2764</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:181</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:547</div></div>
+<div class="ttc" id="agroup__group__groups_html_ga9d01743fd3f97014e08fc67149ec5f0b"><div class="ttname"><a href="group__group__groups.html#ga9d01743fd3f97014e08fc67149ec5f0b">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:730</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:372</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:520</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:2417</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:340</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:194</div></div>
+<div class="ttc" id="agroup__group__groups_html_gab60b1f528fbfb17d69a88f499c7071aa"><div class="ttname"><a href="group__group__groups.html#gab60b1f528fbfb17d69a88f499c7071aa">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:742</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:596</div></div>
+<div class="ttc" id="agroup__group__groups_html_gad34c82ead174988d418f3dcb003aaca7"><div class="ttname"><a href="group__group__groups.html#gad34c82ead174988d418f3dcb003aaca7">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:39</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:3314</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:272</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:2604</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:569</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:108</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:343</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:624</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:101</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:109</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
<div class="headertitle"><div class="title">iterators.h</div></div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef _LIBCGROUP_ITERATORS_H</span></div>
-<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define _LIBCGROUP_ITERATORS_H</span></div>
-<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
-<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#ifndef _LIBCGROUP_H_INSIDE</span></div>
-<div class="line"><a id="l00005" 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 id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
-<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#ifndef SWIG</span></div>
-<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include <sys/types.h></span></div>
-<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include <stdio.h></span></div>
-<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include <features.h></span></div>
-<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
-<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
-<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="group__group__iterators.html#ga29a572cbc0c07e2b02dfa0f1ac0067d3"> 73</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="group__group__iterators.html#ga29a572cbc0c07e2b02dfa0f1ac0067d3">cgroup_walk_type</a> {</div>
-<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3af865296e6a0e55cff574fbb132b9f913"> 86</a></span> <a class="code hl_enumvalue" href="group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3af865296e6a0e55cff574fbb132b9f913">CGROUP_WALK_TYPE_PRE_DIR</a> = 0x1,</div>
-<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"><a class="line" href="group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3abf3c31227768960bd6622d2562aae3e1"> 99</a></span> <a class="code hl_enumvalue" href="group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3abf3c31227768960bd6622d2562aae3e1">CGROUP_WALK_TYPE_POST_DIR</a> = 0x2,</div>
-<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span>};</div>
-<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> </div>
-<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"><a class="line" href="group__group__iterators.html#ga608b4aa32e2db58fed34771a6a272444"> 105</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="group__group__iterators.html#ga608b4aa32e2db58fed34771a6a272444">cgroup_file_type</a> {</div>
-<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"><a class="line" href="group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444ad925cc45f1b34fe80e14fc6b05269740"> 106</a></span> <a class="code hl_enumvalue" href="group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444ad925cc45f1b34fe80e14fc6b05269740">CGROUP_FILE_TYPE_FILE</a>, </div>
-<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"><a class="line" href="group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a5418798fc4bf9634429c6af167a0e7c3"> 107</a></span> <a class="code hl_enumvalue" href="group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a5418798fc4bf9634429c6af167a0e7c3">CGROUP_FILE_TYPE_DIR</a>, </div>
-<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"><a class="line" href="group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a24e202c59f318e63ad8cafcc1b4b102b"> 108</a></span> <a class="code hl_enumvalue" href="group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a24e202c59f318e63ad8cafcc1b4b102b">CGROUP_FILE_TYPE_OTHER</a>, </div>
-<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span>};</div>
-<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> </div>
-<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"><a class="line" href="structcgroup__file__info.html"> 114</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__file__info.html">cgroup_file_info</a> {</div>
-<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"><a class="line" href="structcgroup__file__info.html#a955506601f440d05cb11e4ee6b455c55"> 116</a></span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="group__group__iterators.html#ga608b4aa32e2db58fed34771a6a272444">cgroup_file_type</a> <a class="code hl_variable" href="structcgroup__file__info.html#a955506601f440d05cb11e4ee6b455c55">type</a>;</div>
-<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"><a class="line" href="structcgroup__file__info.html#a801424e68139c930e40ea24be4d96a68"> 118</a></span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code hl_variable" href="structcgroup__file__info.html#a801424e68139c930e40ea24be4d96a68">path</a>;</div>
-<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"><a class="line" href="structcgroup__file__info.html#a739c7f87593e36d8589d3ffa80b57059"> 120</a></span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code hl_variable" href="structcgroup__file__info.html#a739c7f87593e36d8589d3ffa80b57059">parent</a>;</div>
-<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"><a class="line" href="structcgroup__file__info.html#a4c61dc7f726ba0784ff8c71473dbc6e6"> 126</a></span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code hl_variable" href="structcgroup__file__info.html#a4c61dc7f726ba0784ff8c71473dbc6e6">full_path</a>;</div>
-<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"><a class="line" href="structcgroup__file__info.html#ad56dca35266f0f5f5c2666b946d72709"> 131</a></span> <span class="keywordtype">short</span> <a class="code hl_variable" href="structcgroup__file__info.html#ad56dca35266f0f5f5c2666b946d72709">depth</a>;</div>
-<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span>};</div>
-<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> </div>
-<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#ga7b19f10c06abb96d8c8ae88a04888a68">cgroup_walk_tree_begin</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *controller, <span class="keyword">const</span> <span class="keywordtype">char</span> *base_path, <span class="keywordtype">int</span> depth,</div>
-<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="keywordtype">void</span> **handle, <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__file__info.html">cgroup_file_info</a> *info,</div>
-<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <span class="keywordtype">int</span> *base_level);</div>
-<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#ga527f5499b0aa04d325074435baebdff1">cgroup_walk_tree_next</a>(<span class="keywordtype">int</span> depth, <span class="keywordtype">void</span> **handle,</div>
-<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__file__info.html">cgroup_file_info</a> *info, <span class="keywordtype">int</span> base_level);</div>
-<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> </div>
-<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#ga09a70990837a58e506a264f8c50d4cde">cgroup_walk_tree_end</a>(<span class="keywordtype">void</span> **handle);</div>
-<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> </div>
-<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span><span class="keywordtype">int</span> <a class="code hl_function" 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 id="l00179" name="l00179"></a><span class="lineno"> 179</span> </div>
-<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span><span class="keywordtype">int</span> <a class="code hl_function" 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 id="l00196" 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 id="l00197" name="l00197"></a><span class="lineno"> 197</span> </div>
-<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span><span class="keywordtype">int</span> <a class="code hl_function" 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 id="l00212" name="l00212"></a><span class="lineno"> 212</span> </div>
-<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#gad348f041e283860cbf6bcea567e23a21">cgroup_read_value_end</a>(<span class="keywordtype">void</span> **handle);</div>
-<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> </div>
-<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"><a class="line" href="group__group__iterators.html#ga55d2eac2af703794651d344c073566f5"> 230</a></span><span class="preprocessor">#define CG_VALUE_MAX 100</span></div>
-<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"><a class="line" href="structcgroup__stat.html"> 234</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__stat.html">cgroup_stat</a> {</div>
-<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> <span class="keywordtype">char</span> name[FILENAME_MAX];</div>
-<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> <span class="keywordtype">char</span> value[<a class="code hl_define" href="group__group__iterators.html#ga55d2eac2af703794651d344c073566f5">CG_VALUE_MAX</a>];</div>
-<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span>};</div>
-<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> </div>
-<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#ga1138e47f124f0f634586db5e0c4ae5de">cgroup_read_stats_begin</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *controller, <span class="keyword">const</span> <span class="keywordtype">char</span> *path, <span class="keywordtype">void</span> **handle,</div>
-<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__stat.html">cgroup_stat</a> *stat);</div>
-<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> </div>
-<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#gaf95587508fc15d74fd5ed0df58024be7">cgroup_read_stats_next</a>(<span class="keywordtype">void</span> **handle, <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__stat.html">cgroup_stat</a> *stat);</div>
-<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> </div>
-<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#gaba386d9db6cadc6ad85c2552f63447bb">cgroup_read_stats_end</a>(<span class="keywordtype">void</span> **handle);</div>
-<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> </div>
-<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#gad7218154192f733120e1025cc19d0a36">cgroup_get_task_begin</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *controller, <span class="keywordtype">void</span> **handle,</div>
-<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> pid_t *pid);</div>
-<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> </div>
-<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#gaf3a0364682b7449ddccfb0862bbb565e">cgroup_get_task_next</a>(<span class="keywordtype">void</span> **handle, pid_t *pid);</div>
-<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> </div>
-<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#gaeb955e5f4da551268380b1271d478816">cgroup_get_task_end</a>(<span class="keywordtype">void</span> **handle);</div>
-<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> </div>
-<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"><a class="line" href="structcgroup__mount__point.html"> 312</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__mount__point.html">cgroup_mount_point</a> {</div>
-<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"><a class="line" href="structcgroup__mount__point.html#a849ccf1e77fffd5d45304c6adf0d2100"> 314</a></span> <span class="keywordtype">char</span> <a class="code hl_variable" href="structcgroup__mount__point.html#a849ccf1e77fffd5d45304c6adf0d2100">name</a>[FILENAME_MAX];</div>
-<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"><a class="line" href="structcgroup__mount__point.html#ad1e89dfc02cfd7341e2296086a4f251e"> 316</a></span> <span class="keywordtype">char</span> <a class="code hl_variable" href="structcgroup__mount__point.html#ad1e89dfc02cfd7341e2296086a4f251e">path</a>[FILENAME_MAX];</div>
-<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span>};</div>
-<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> </div>
-<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#ga5f9f21138f9b18912a16b21a45b53c44">cgroup_get_controller_begin</a>(<span class="keywordtype">void</span> **handle, <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__mount__point.html">cgroup_mount_point</a> *info);</div>
-<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> </div>
-<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#ga926b70423b6c087c21a14670cd23cd7d">cgroup_get_controller_next</a>(<span class="keywordtype">void</span> **handle, <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__mount__point.html">cgroup_mount_point</a> *info);</div>
-<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> </div>
-<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#gab485cda2bc9640bacbf61f1953ae750c">cgroup_get_controller_end</a>(<span class="keywordtype">void</span> **handle);</div>
-<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span> </div>
-<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"><a class="line" href="structcontroller__data.html"> 356</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcontroller__data.html">controller_data</a> {</div>
-<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"><a class="line" href="structcontroller__data.html#a5474be4d8cc4553c94ca81c6a93f5a18"> 358</a></span> <span class="keywordtype">char</span> <a class="code hl_variable" href="structcontroller__data.html#a5474be4d8cc4553c94ca81c6a93f5a18">name</a>[FILENAME_MAX];</div>
-<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"><a class="line" href="structcontroller__data.html#a25e316f55473ca2b333b0d7e0ca644b4"> 364</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structcontroller__data.html#a25e316f55473ca2b333b0d7e0ca644b4">hierarchy</a>;</div>
-<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"><a class="line" href="structcontroller__data.html#acd075c0bb48062bf720b68d0a30116eb"> 366</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structcontroller__data.html#acd075c0bb48062bf720b68d0a30116eb">num_cgroups</a>;</div>
-<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"><a class="line" href="structcontroller__data.html#a24be412cfb6c19f7a13a4bff9e55206e"> 368</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structcontroller__data.html#a24be412cfb6c19f7a13a4bff9e55206e">enabled</a>;</div>
-<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span>};</div>
-<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span> </div>
-<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#gad48ef653388ca6739a9b6bbb9d7da82e">cgroup_get_all_controller_begin</a>(<span class="keywordtype">void</span> **handle,</div>
-<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcontroller__data.html">controller_data</a> *info);</div>
-<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#ga3d98a04b29b1fe409db1114b7aa76809">cgroup_get_all_controller_next</a>(<span class="keywordtype">void</span> **handle, <span class="keyword">struct</span> <a class="code hl_struct" href="structcontroller__data.html">controller_data</a> *info);</div>
-<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</span> </div>
-<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#ga0c467d42a2c9a916a0edd339a6d7afc8">cgroup_get_all_controller_end</a>(<span class="keywordtype">void</span> **handle);</div>
-<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span> </div>
-<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#ga18a3c6fe7da42b9da96ce34dce1e31b8">cgroup_get_subsys_mount_point_begin</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *controller, <span class="keywordtype">void</span> **handle,</div>
-<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span> <span class="keywordtype">char</span> *path);</div>
-<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#ga3d66997158cb8a334317923ad94cc789">cgroup_get_subsys_mount_point_next</a>(<span class="keywordtype">void</span> **handle,</div>
-<div class="line"><a id="l00416" name="l00416"></a><span class="lineno"> 416</span> <span class="keywordtype">char</span> *path);</div>
-<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"> 417</span> </div>
-<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#ga9c9b0f1921c205bd25bfc6c1d20486eb">cgroup_get_subsys_mount_point_end</a>(<span class="keywordtype">void</span> **handle);</div>
-<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span> </div>
-<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span><span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span>} <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span> </div>
-<div class="line"><a id="l00432" 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:4670</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:5542</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:4928</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:5825</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:5856</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:5556</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:4643</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:5077</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:4756</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:4691</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:5044</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:4852</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:5878</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:5028</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:4890</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:4832</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:4816</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:5585</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:4995</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:4959</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:4973</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:4908</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="agroup__group__iterators_html_gga608b4aa32e2db58fed34771a6a272444a5418798fc4bf9634429c6af167a0e7c3"><div class="ttname"><a href="group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a5418798fc4bf9634429c6af167a0e7c3">CGROUP_FILE_TYPE_DIR</a></div><div class="ttdeci">@ CGROUP_FILE_TYPE_DIR</div><div class="ttdef"><b>Definition:</b> iterators.h:107</div></div>
-<div class="ttc" id="agroup__group__iterators_html_gga608b4aa32e2db58fed34771a6a272444ad925cc45f1b34fe80e14fc6b05269740"><div class="ttname"><a href="group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444ad925cc45f1b34fe80e14fc6b05269740">CGROUP_FILE_TYPE_FILE</a></div><div class="ttdeci">@ CGROUP_FILE_TYPE_FILE</div><div class="ttdef"><b>Definition:</b> iterators.h:106</div></div>
-<div class="ttc" id="astructcgroup__file__info_html"><div class="ttname"><a href="structcgroup__file__info.html">cgroup_file_info</a></div><div class="ttdef"><b>Definition:</b> iterators.h:114</div></div>
-<div class="ttc" id="astructcgroup__file__info_html_a4c61dc7f726ba0784ff8c71473dbc6e6"><div class="ttname"><a href="structcgroup__file__info.html#a4c61dc7f726ba0784ff8c71473dbc6e6">cgroup_file_info::full_path</a></div><div class="ttdeci">const char * full_path</div><div class="ttdef"><b>Definition:</b> iterators.h:126</div></div>
-<div class="ttc" id="astructcgroup__file__info_html_a739c7f87593e36d8589d3ffa80b57059"><div class="ttname"><a href="structcgroup__file__info.html#a739c7f87593e36d8589d3ffa80b57059">cgroup_file_info::parent</a></div><div class="ttdeci">const char * parent</div><div class="ttdef"><b>Definition:</b> iterators.h:120</div></div>
-<div class="ttc" id="astructcgroup__file__info_html_a801424e68139c930e40ea24be4d96a68"><div class="ttname"><a href="structcgroup__file__info.html#a801424e68139c930e40ea24be4d96a68">cgroup_file_info::path</a></div><div class="ttdeci">const char * path</div><div class="ttdef"><b>Definition:</b> iterators.h:118</div></div>
-<div class="ttc" id="astructcgroup__file__info_html_a955506601f440d05cb11e4ee6b455c55"><div class="ttname"><a href="structcgroup__file__info.html#a955506601f440d05cb11e4ee6b455c55">cgroup_file_info::type</a></div><div class="ttdeci">enum cgroup_file_type type</div><div class="ttdef"><b>Definition:</b> iterators.h:116</div></div>
-<div class="ttc" id="astructcgroup__file__info_html_ad56dca35266f0f5f5c2666b946d72709"><div class="ttname"><a href="structcgroup__file__info.html#ad56dca35266f0f5f5c2666b946d72709">cgroup_file_info::depth</a></div><div class="ttdeci">short depth</div><div class="ttdef"><b>Definition:</b> iterators.h:131</div></div>
-<div class="ttc" id="astructcgroup__mount__point_html"><div class="ttname"><a href="structcgroup__mount__point.html">cgroup_mount_point</a></div><div class="ttdef"><b>Definition:</b> iterators.h:312</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:116</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="ttc" id="astructcontroller__data_html_a5474be4d8cc4553c94ca81c6a93f5a18"><div class="ttname"><a href="structcontroller__data.html#a5474be4d8cc4553c94ca81c6a93f5a18">controller_data::name</a></div><div class="ttdeci">char name[FILENAME_MAX]</div><div class="ttdef"><b>Definition:</b> iterators.h:358</div></div>
-<div class="ttc" id="astructcontroller__data_html_acd075c0bb48062bf720b68d0a30116eb"><div class="ttname"><a href="structcontroller__data.html#acd075c0bb48062bf720b68d0a30116eb">controller_data::num_cgroups</a></div><div class="ttdeci">int num_cgroups</div><div class="ttdef"><b>Definition:</b> iterators.h:366</div></div>
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/* SPDX-License-Identifier: LGPL-2.1-only */</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#ifndef _LIBCGROUP_ITERATORS_H</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#define _LIBCGROUP_ITERATORS_H</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span> </div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#ifndef _LIBCGROUP_H_INSIDE</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#error "Only <libcgroup.h> should be included directly."</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#ifndef SWIG</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include <sys/types.h></span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include <stdio.h></span></div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include <features.h></span></div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"><a class="line" href="group__group__iterators.html#ga29a572cbc0c07e2b02dfa0f1ac0067d3"> 74</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="group__group__iterators.html#ga29a572cbc0c07e2b02dfa0f1ac0067d3">cgroup_walk_type</a> {</div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"><a class="line" href="group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3af865296e6a0e55cff574fbb132b9f913"> 87</a></span> <a class="code hl_enumvalue" href="group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3af865296e6a0e55cff574fbb132b9f913">CGROUP_WALK_TYPE_PRE_DIR</a> = 0x1,</div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"><a class="line" href="group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3abf3c31227768960bd6622d2562aae3e1"> 100</a></span> <a class="code hl_enumvalue" href="group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3abf3c31227768960bd6622d2562aae3e1">CGROUP_WALK_TYPE_POST_DIR</a> = 0x2,</div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span>};</div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> </div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"><a class="line" href="group__group__iterators.html#ga608b4aa32e2db58fed34771a6a272444"> 106</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="group__group__iterators.html#ga608b4aa32e2db58fed34771a6a272444">cgroup_file_type</a> {</div>
+<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"><a class="line" href="group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444ad925cc45f1b34fe80e14fc6b05269740"> 107</a></span> <a class="code hl_enumvalue" href="group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444ad925cc45f1b34fe80e14fc6b05269740">CGROUP_FILE_TYPE_FILE</a>, </div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"><a class="line" href="group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a5418798fc4bf9634429c6af167a0e7c3"> 108</a></span> <a class="code hl_enumvalue" href="group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a5418798fc4bf9634429c6af167a0e7c3">CGROUP_FILE_TYPE_DIR</a>, </div>
+<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"><a class="line" href="group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a24e202c59f318e63ad8cafcc1b4b102b"> 109</a></span> <a class="code hl_enumvalue" href="group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a24e202c59f318e63ad8cafcc1b4b102b">CGROUP_FILE_TYPE_OTHER</a>, </div>
+<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span>};</div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> </div>
+<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"><a class="line" href="structcgroup__file__info.html"> 115</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__file__info.html">cgroup_file_info</a> {</div>
+<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"><a class="line" href="structcgroup__file__info.html#a955506601f440d05cb11e4ee6b455c55"> 117</a></span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="group__group__iterators.html#ga608b4aa32e2db58fed34771a6a272444">cgroup_file_type</a> <a class="code hl_variable" href="structcgroup__file__info.html#a955506601f440d05cb11e4ee6b455c55">type</a>;</div>
+<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"><a class="line" href="structcgroup__file__info.html#a801424e68139c930e40ea24be4d96a68"> 119</a></span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code hl_variable" href="structcgroup__file__info.html#a801424e68139c930e40ea24be4d96a68">path</a>;</div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"><a class="line" href="structcgroup__file__info.html#a739c7f87593e36d8589d3ffa80b57059"> 121</a></span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code hl_variable" href="structcgroup__file__info.html#a739c7f87593e36d8589d3ffa80b57059">parent</a>;</div>
+<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"><a class="line" href="structcgroup__file__info.html#a4c61dc7f726ba0784ff8c71473dbc6e6"> 127</a></span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code hl_variable" href="structcgroup__file__info.html#a4c61dc7f726ba0784ff8c71473dbc6e6">full_path</a>;</div>
+<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"><a class="line" href="structcgroup__file__info.html#ad56dca35266f0f5f5c2666b946d72709"> 132</a></span> <span class="keywordtype">short</span> <a class="code hl_variable" href="structcgroup__file__info.html#ad56dca35266f0f5f5c2666b946d72709">depth</a>;</div>
+<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span>};</div>
+<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> </div>
+<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#ga7b19f10c06abb96d8c8ae88a04888a68">cgroup_walk_tree_begin</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *controller, <span class="keyword">const</span> <span class="keywordtype">char</span> *base_path, <span class="keywordtype">int</span> depth,</div>
+<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <span class="keywordtype">void</span> **handle, <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__file__info.html">cgroup_file_info</a> *info,</div>
+<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="keywordtype">int</span> *base_level);</div>
+<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#ga527f5499b0aa04d325074435baebdff1">cgroup_walk_tree_next</a>(<span class="keywordtype">int</span> depth, <span class="keywordtype">void</span> **handle,</div>
+<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__file__info.html">cgroup_file_info</a> *info, <span class="keywordtype">int</span> base_level);</div>
+<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> </div>
+<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#ga09a70990837a58e506a264f8c50d4cde">cgroup_walk_tree_end</a>(<span class="keywordtype">void</span> **handle);</div>
+<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> </div>
+<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span><span class="keywordtype">int</span> <a class="code hl_function" 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 id="l00180" name="l00180"></a><span class="lineno"> 180</span> </div>
+<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span><span class="keywordtype">int</span> <a class="code hl_function" 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 id="l00197" name="l00197"></a><span class="lineno"> 197</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 id="l00198" name="l00198"></a><span class="lineno"> 198</span> </div>
+<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span><span class="keywordtype">int</span> <a class="code hl_function" 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 id="l00213" name="l00213"></a><span class="lineno"> 213</span> </div>
+<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#gad348f041e283860cbf6bcea567e23a21">cgroup_read_value_end</a>(<span class="keywordtype">void</span> **handle);</div>
+<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> </div>
+<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"><a class="line" href="group__group__iterators.html#ga55d2eac2af703794651d344c073566f5"> 231</a></span><span class="preprocessor">#define CG_VALUE_MAX 100</span></div>
+<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"><a class="line" href="structcgroup__stat.html"> 235</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__stat.html">cgroup_stat</a> {</div>
+<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> <span class="keywordtype">char</span> name[FILENAME_MAX];</div>
+<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> <span class="keywordtype">char</span> value[<a class="code hl_define" href="group__group__iterators.html#ga55d2eac2af703794651d344c073566f5">CG_VALUE_MAX</a>];</div>
+<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span>};</div>
+<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> </div>
+<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#ga1138e47f124f0f634586db5e0c4ae5de">cgroup_read_stats_begin</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *controller, <span class="keyword">const</span> <span class="keywordtype">char</span> *path, <span class="keywordtype">void</span> **handle,</div>
+<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__stat.html">cgroup_stat</a> *stat);</div>
+<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> </div>
+<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#gaf95587508fc15d74fd5ed0df58024be7">cgroup_read_stats_next</a>(<span class="keywordtype">void</span> **handle, <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__stat.html">cgroup_stat</a> *stat);</div>
+<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> </div>
+<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#gaba386d9db6cadc6ad85c2552f63447bb">cgroup_read_stats_end</a>(<span class="keywordtype">void</span> **handle);</div>
+<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> </div>
+<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#gad7218154192f733120e1025cc19d0a36">cgroup_get_task_begin</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *controller, <span class="keywordtype">void</span> **handle,</div>
+<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> pid_t *pid);</div>
+<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> </div>
+<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#gaf3a0364682b7449ddccfb0862bbb565e">cgroup_get_task_next</a>(<span class="keywordtype">void</span> **handle, pid_t *pid);</div>
+<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> </div>
+<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#gaeb955e5f4da551268380b1271d478816">cgroup_get_task_end</a>(<span class="keywordtype">void</span> **handle);</div>
+<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> </div>
+<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"><a class="line" href="structcgroup__mount__point.html"> 313</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__mount__point.html">cgroup_mount_point</a> {</div>
+<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"><a class="line" href="structcgroup__mount__point.html#a849ccf1e77fffd5d45304c6adf0d2100"> 315</a></span> <span class="keywordtype">char</span> <a class="code hl_variable" href="structcgroup__mount__point.html#a849ccf1e77fffd5d45304c6adf0d2100">name</a>[FILENAME_MAX];</div>
+<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"><a class="line" href="structcgroup__mount__point.html#ad1e89dfc02cfd7341e2296086a4f251e"> 317</a></span> <span class="keywordtype">char</span> <a class="code hl_variable" href="structcgroup__mount__point.html#ad1e89dfc02cfd7341e2296086a4f251e">path</a>[FILENAME_MAX];</div>
+<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span>};</div>
+<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> </div>
+<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#ga5f9f21138f9b18912a16b21a45b53c44">cgroup_get_controller_begin</a>(<span class="keywordtype">void</span> **handle, <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__mount__point.html">cgroup_mount_point</a> *info);</div>
+<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> </div>
+<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#ga926b70423b6c087c21a14670cd23cd7d">cgroup_get_controller_next</a>(<span class="keywordtype">void</span> **handle, <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__mount__point.html">cgroup_mount_point</a> *info);</div>
+<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> </div>
+<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#gab485cda2bc9640bacbf61f1953ae750c">cgroup_get_controller_end</a>(<span class="keywordtype">void</span> **handle);</div>
+<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> </div>
+<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"><a class="line" href="structcontroller__data.html"> 357</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcontroller__data.html">controller_data</a> {</div>
+<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"><a class="line" href="structcontroller__data.html#a5474be4d8cc4553c94ca81c6a93f5a18"> 359</a></span> <span class="keywordtype">char</span> <a class="code hl_variable" href="structcontroller__data.html#a5474be4d8cc4553c94ca81c6a93f5a18">name</a>[FILENAME_MAX];</div>
+<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"><a class="line" href="structcontroller__data.html#a25e316f55473ca2b333b0d7e0ca644b4"> 365</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structcontroller__data.html#a25e316f55473ca2b333b0d7e0ca644b4">hierarchy</a>;</div>
+<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"><a class="line" href="structcontroller__data.html#acd075c0bb48062bf720b68d0a30116eb"> 367</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structcontroller__data.html#acd075c0bb48062bf720b68d0a30116eb">num_cgroups</a>;</div>
+<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"><a class="line" href="structcontroller__data.html#a24be412cfb6c19f7a13a4bff9e55206e"> 369</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structcontroller__data.html#a24be412cfb6c19f7a13a4bff9e55206e">enabled</a>;</div>
+<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span>};</div>
+<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span> </div>
+<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#gad48ef653388ca6739a9b6bbb9d7da82e">cgroup_get_all_controller_begin</a>(<span class="keywordtype">void</span> **handle,</div>
+<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcontroller__data.html">controller_data</a> *info);</div>
+<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#ga3d98a04b29b1fe409db1114b7aa76809">cgroup_get_all_controller_next</a>(<span class="keywordtype">void</span> **handle, <span class="keyword">struct</span> <a class="code hl_struct" href="structcontroller__data.html">controller_data</a> *info);</div>
+<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span> </div>
+<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#ga0c467d42a2c9a916a0edd339a6d7afc8">cgroup_get_all_controller_end</a>(<span class="keywordtype">void</span> **handle);</div>
+<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span> </div>
+<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#ga18a3c6fe7da42b9da96ce34dce1e31b8">cgroup_get_subsys_mount_point_begin</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *controller, <span class="keywordtype">void</span> **handle,</div>
+<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"> 409</span> <span class="keywordtype">char</span> *path);</div>
+<div class="line"><a id="l00416" name="l00416"></a><span class="lineno"> 416</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#ga3d66997158cb8a334317923ad94cc789">cgroup_get_subsys_mount_point_next</a>(<span class="keywordtype">void</span> **handle,</div>
+<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"> 417</span> <span class="keywordtype">char</span> *path);</div>
+<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"> 418</span> </div>
+<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__iterators.html#ga9c9b0f1921c205bd25bfc6c1d20486eb">cgroup_get_subsys_mount_point_end</a>(<span class="keywordtype">void</span> **handle);</div>
+<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span> </div>
+<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span>} <span class="comment">/* extern "C" */</span></div>
+<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"> 432</span> </div>
+<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</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:4663</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:5535</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:4921</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:5818</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:74</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:5849</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:5549</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:4636</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:231</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:5070</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:106</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:4749</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:4684</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:5037</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:4845</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:5871</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:5021</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:4883</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:4825</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:4809</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:5578</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:4988</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:4952</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:4966</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:4901</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:100</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:87</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:109</div></div>
+<div class="ttc" id="agroup__group__iterators_html_gga608b4aa32e2db58fed34771a6a272444a5418798fc4bf9634429c6af167a0e7c3"><div class="ttname"><a href="group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a5418798fc4bf9634429c6af167a0e7c3">CGROUP_FILE_TYPE_DIR</a></div><div class="ttdeci">@ CGROUP_FILE_TYPE_DIR</div><div class="ttdef"><b>Definition:</b> iterators.h:108</div></div>
+<div class="ttc" id="agroup__group__iterators_html_gga608b4aa32e2db58fed34771a6a272444ad925cc45f1b34fe80e14fc6b05269740"><div class="ttname"><a href="group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444ad925cc45f1b34fe80e14fc6b05269740">CGROUP_FILE_TYPE_FILE</a></div><div class="ttdeci">@ CGROUP_FILE_TYPE_FILE</div><div class="ttdef"><b>Definition:</b> iterators.h:107</div></div>
+<div class="ttc" id="astructcgroup__file__info_html"><div class="ttname"><a href="structcgroup__file__info.html">cgroup_file_info</a></div><div class="ttdef"><b>Definition:</b> iterators.h:115</div></div>
+<div class="ttc" id="astructcgroup__file__info_html_a4c61dc7f726ba0784ff8c71473dbc6e6"><div class="ttname"><a href="structcgroup__file__info.html#a4c61dc7f726ba0784ff8c71473dbc6e6">cgroup_file_info::full_path</a></div><div class="ttdeci">const char * full_path</div><div class="ttdef"><b>Definition:</b> iterators.h:127</div></div>
+<div class="ttc" id="astructcgroup__file__info_html_a739c7f87593e36d8589d3ffa80b57059"><div class="ttname"><a href="structcgroup__file__info.html#a739c7f87593e36d8589d3ffa80b57059">cgroup_file_info::parent</a></div><div class="ttdeci">const char * parent</div><div class="ttdef"><b>Definition:</b> iterators.h:121</div></div>
+<div class="ttc" id="astructcgroup__file__info_html_a801424e68139c930e40ea24be4d96a68"><div class="ttname"><a href="structcgroup__file__info.html#a801424e68139c930e40ea24be4d96a68">cgroup_file_info::path</a></div><div class="ttdeci">const char * path</div><div class="ttdef"><b>Definition:</b> iterators.h:119</div></div>
+<div class="ttc" id="astructcgroup__file__info_html_a955506601f440d05cb11e4ee6b455c55"><div class="ttname"><a href="structcgroup__file__info.html#a955506601f440d05cb11e4ee6b455c55">cgroup_file_info::type</a></div><div class="ttdeci">enum cgroup_file_type type</div><div class="ttdef"><b>Definition:</b> iterators.h:117</div></div>
+<div class="ttc" id="astructcgroup__file__info_html_ad56dca35266f0f5f5c2666b946d72709"><div class="ttname"><a href="structcgroup__file__info.html#ad56dca35266f0f5f5c2666b946d72709">cgroup_file_info::depth</a></div><div class="ttdeci">short depth</div><div class="ttdef"><b>Definition:</b> iterators.h:132</div></div>
+<div class="ttc" id="astructcgroup__mount__point_html"><div class="ttname"><a href="structcgroup__mount__point.html">cgroup_mount_point</a></div><div class="ttdef"><b>Definition:</b> iterators.h:313</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:315</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:317</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:235</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:109</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:357</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:369</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:365</div></div>
+<div class="ttc" id="astructcontroller__data_html_a5474be4d8cc4553c94ca81c6a93f5a18"><div class="ttname"><a href="structcontroller__data.html#a5474be4d8cc4553c94ca81c6a93f5a18">controller_data::name</a></div><div class="ttdeci">char name[FILENAME_MAX]</div><div class="ttdef"><b>Definition:</b> iterators.h:359</div></div>
+<div class="ttc" id="astructcontroller__data_html_acd075c0bb48062bf720b68d0a30116eb"><div class="ttname"><a href="structcontroller__data.html#acd075c0bb48062bf720b68d0a30116eb">controller_data::num_cgroups</a></div><div class="ttdeci">int num_cgroups</div><div class="ttdef"><b>Definition:</b> iterators.h:367</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
<div class="headertitle"><div class="title">libcgroup-internal.h</div></div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/*</span></div>
-<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"> * Copyright IBM Corporation. 2008</span></div>
-<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> *</span></div>
-<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"> * Author: Dhaval Giani <dhaval@linux.vnet.ibm.com></span></div>
-<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment"> *</span></div>
-<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment"> * This program is free software; you can redistribute it and/or modify it</span></div>
-<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment"> * under the terms of version 2.1 of the GNU Lesser General Public License</span></div>
-<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment"> * as published by the Free Software Foundation.</span></div>
-<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment"> *</span></div>
-<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment"> * This program is distributed in the hope that it would be useful, but</span></div>
-<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment"> * WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
-<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</span></div>
-<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment"> *</span></div>
-<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment"> */</span></div>
-<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#ifndef __LIBCG_INTERNAL</span></div>
-<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
-<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#define __LIBCG_INTERNAL</span></div>
-<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
-<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div>
-<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#include "config.h"</span></div>
-<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
-<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#include <libcgroup.h></span></div>
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/* SPDX-License-Identifier: LGPL-2.1-only */</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#ifndef __LIBCG_INTERNAL</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#define __LIBCG_INTERNAL</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include "config.h"</span></div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include <libcgroup.h></span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include <pthread.h></span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include <dirent.h></span></div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#include <limits.h></span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#include <mntent.h></span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#include <setjmp.h></span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#include <fts.h></span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
-<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#include <pthread.h></span></div>
-<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#include <dirent.h></span></div>
-<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#include <limits.h></span></div>
-<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#include <mntent.h></span></div>
-<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#include <setjmp.h></span></div>
-<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="preprocessor">#include <fts.h></span></div>
-<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
-<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="preprocessor">#include <sys/stat.h></span></div>
-<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="preprocessor">#include <sys/types.h></span></div>
-<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div>
-<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="comment">/* Maximum number of mount points/controllers */</span></div>
-<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="preprocessor">#define MAX_MNT_ELEMENTS 16</span></div>
-<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="comment">/* Estimated number of groups created */</span></div>
-<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="preprocessor">#define MAX_GROUP_ELEMENTS 128</span></div>
-<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
-<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="comment">/* Maximum length of a value */</span></div>
-<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="preprocessor">#define CG_CONTROL_VALUE_MAX 4096</span></div>
-<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="preprocessor">#define CG_NV_MAX 100</span></div>
-<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="preprocessor">#define CG_CONTROLLER_MAX 100</span></div>
-<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="preprocessor">#define CG_OPTIONS_MAX 100</span></div>
-<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="comment">/* Max number of mounted hierarchies. Event if one controller is mounted per</span></div>
-<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="comment"> * hier, it can not exceed CG_CONTROLLER_MAX</span></div>
-<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="comment"> */</span></div>
-<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="preprocessor">#define CG_HIER_MAX CG_CONTROLLER_MAX</span></div>
-<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span><span class="comment">/* Definitions for the uid and gid members of a cgroup_rules */</span></div>
-<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="preprocessor">#define CGRULE_INVALID ((uid_t) -1)</span></div>
-<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="preprocessor">#define CGRULE_WILD ((uid_t) -2)</span></div>
-<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><span class="preprocessor">#define CGRULE_SUCCESS_STORE_PID "SUCCESS_STORE_PID"</span></div>
-<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
-<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="comment">/* Definitions for the cgrules options field */</span></div>
-<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="preprocessor">#define CGRULE_OPTION_IGNORE "ignore"</span></div>
-<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> </div>
-<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="preprocessor">#define CGCONFIG_CONF_FILE "/etc/cgconfig.conf"</span></div>
-<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="comment">/* Minimum number of file in template file list for cgrulesengd */</span></div>
-<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="preprocessor">#define CGCONFIG_CONF_FILES_LIST_MINIMUM_SIZE 4</span></div>
-<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="preprocessor">#define CGCONFIG_CONF_DIR "/etc/cgconfig.d"</span></div>
-<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="preprocessor">#define CGRULES_CONF_FILE "/etc/cgrules.conf"</span></div>
-<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="preprocessor">#define CGRULES_CONF_DIR "/etc/cgrules.d"</span></div>
-<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="preprocessor">#define CGRULES_MAX_FIELDS_PER_LINE 3</span></div>
-<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
-<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="preprocessor">#define CGROUP_BUFFER_LEN (5 * FILENAME_MAX)</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#include <sys/stat.h></span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#include <sys/types.h></span></div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="comment">/* Maximum number of mount points/controllers */</span></div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#define MAX_MNT_ELEMENTS 16</span></div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="comment">/* Estimated number of groups created */</span></div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="preprocessor">#define MAX_GROUP_ELEMENTS 128</span></div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="comment">/* Maximum length of a value */</span></div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="preprocessor">#define CG_CONTROL_VALUE_MAX 4096</span></div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="preprocessor">#define CG_NV_MAX 100</span></div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="preprocessor">#define CG_CONTROLLER_MAX 100</span></div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="preprocessor">#define CG_OPTIONS_MAX 100</span></div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="comment">/* Max number of mounted hierarchies. Event if one controller is mounted per</span></div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="comment"> * hier, it can not exceed CG_CONTROLLER_MAX</span></div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="comment"> */</span></div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="preprocessor">#define CG_HIER_MAX CG_CONTROLLER_MAX</span></div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="comment">/* Definitions for the uid and gid members of a cgroup_rules */</span></div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="preprocessor">#define CGRULE_INVALID ((uid_t) -1)</span></div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="preprocessor">#define CGRULE_WILD ((uid_t) -2)</span></div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> </div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="preprocessor">#define CGRULE_SUCCESS_STORE_PID "SUCCESS_STORE_PID"</span></div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="comment">/* Definitions for the cgrules options field */</span></div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span><span class="preprocessor">#define CGRULE_OPTION_IGNORE "ignore"</span></div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> </div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="preprocessor">#define CGCONFIG_CONF_FILE "/etc/cgconfig.conf"</span></div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="comment">/* Minimum number of file in template file list for cgrulesengd */</span></div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><span class="preprocessor">#define CGCONFIG_CONF_FILES_LIST_MINIMUM_SIZE 4</span></div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="preprocessor">#define CGCONFIG_CONF_DIR "/etc/cgconfig.d"</span></div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> </div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="preprocessor">#define CGRULES_CONF_FILE "/etc/cgrules.conf"</span></div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="preprocessor">#define CGRULES_CONF_DIR "/etc/cgrules.d"</span></div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="preprocessor">#define CGRULES_MAX_FIELDS_PER_LINE 3</span></div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div>
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="preprocessor">#define CGROUP_BUFFER_LEN (5 * FILENAME_MAX)</span></div>
+<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="comment">/* Maximum length of a key(<user>:<process name>) in the daemon config file */</span></div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="preprocessor">#define CGROUP_RULE_MAXKEY (LOGIN_NAME_MAX + FILENAME_MAX + 1)</span></div>
+<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="comment">/* Maximum length of a line in the daemon config file */</span></div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="preprocessor">#define CGROUP_RULE_MAXLINE (FILENAME_MAX + CGROUP_RULE_MAXKEY + \</span></div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="preprocessor"> CG_CONTROLLER_MAX + 3)</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
-<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="comment">/* Maximum length of a key(<user>:<process name>) in the daemon config file */</span></div>
-<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span><span class="preprocessor">#define CGROUP_RULE_MAXKEY (LOGIN_NAME_MAX + FILENAME_MAX + 1)</span></div>
-<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> </div>
-<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><span class="comment">/* Maximum length of a line in the daemon config file */</span></div>
-<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="preprocessor">#define CGROUP_RULE_MAXLINE (FILENAME_MAX + CGROUP_RULE_MAXKEY + \</span></div>
-<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span><span class="preprocessor"> CG_CONTROLLER_MAX + 3)</span></div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="preprocessor">#define CGROUP_FILE_PREFIX "cgroup"</span></div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> </div>
+<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span><span class="preprocessor">#define cgroup_err(x...) cgroup_log(CGROUP_LOG_ERROR, "Error: "</span> x)</div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><span class="preprocessor">#define cgroup_warn(x...) cgroup_log(CGROUP_LOG_WARNING, "Warning: "</span> x)</div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="preprocessor">#define cgroup_info(x...) cgroup_log(CGROUP_LOG_INFO, "Info: "</span> x)</div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span><span class="preprocessor">#define cgroup_dbg(x...) cgroup_log(CGROUP_LOG_DEBUG, x)</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div>
-<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span><span class="preprocessor">#define CGROUP_FILE_PREFIX "cgroup"</span></div>
+<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span><span class="preprocessor">#define CGROUP_DEFAULT_LOGLEVEL CGROUP_LOG_ERROR</span></div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> </div>
-<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span><span class="preprocessor">#define cgroup_err(x...) cgroup_log(CGROUP_LOG_ERROR, "Error: "</span> x)</div>
-<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span><span class="preprocessor">#define cgroup_warn(x...) cgroup_log(CGROUP_LOG_WARNING, "Warning: "</span> x)</div>
-<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span><span class="preprocessor">#define cgroup_info(x...) cgroup_log(CGROUP_LOG_INFO, "Info: "</span> x)</div>
-<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span><span class="preprocessor">#define cgroup_dbg(x...) cgroup_log(CGROUP_LOG_DEBUG, x)</span></div>
-<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> </div>
-<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span><span class="preprocessor">#define CGROUP_DEFAULT_LOGLEVEL CGROUP_LOG_ERROR</span></div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span><span class="preprocessor">#define max(x, y) ((y) < (x)?(x):(y))</span></div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span><span class="preprocessor">#define min(x, y) ((y) > (x)?(x):(y))</span></div>
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> </div>
+<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"><a class="line" href="structcontrol__value.html"> 85</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcontrol__value.html">control_value</a> {</div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="keywordtype">char</span> name[FILENAME_MAX];</div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keywordtype">char</span> value[CG_CONTROL_VALUE_MAX];</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> </div>
-<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span><span class="preprocessor">#define max(x, y) ((y) < (x)?(x):(y))</span></div>
-<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="preprocessor">#define min(x, y) ((y) > (x)?(x):(y))</span></div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="comment">/* cgget uses this field for values that span multiple lines */</span></div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keywordtype">char</span> *multiline_value;</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> </div>
-<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"><a class="line" href="structcontrol__value.html"> 92</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcontrol__value.html">control_value</a> {</div>
-<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="keywordtype">char</span> name[FILENAME_MAX];</div>
-<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keywordtype">char</span> value[CG_CONTROL_VALUE_MAX];</div>
-<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> </div>
-<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="comment">/* cgget uses this field for values that span multiple lines */</span></div>
-<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keywordtype">char</span> *multiline_value;</div>
-<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> </div>
-<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="comment">/*</span></div>
-<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="comment"> * The abstraction layer uses prev_name when there's an N->1 or</span></div>
-<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="comment"> * 1->N relationship between cgroup v1 and v2 settings.</span></div>
-<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span><span class="comment"> */</span></div>
-<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordtype">char</span> *prev_name;</div>
-<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> </div>
-<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keywordtype">bool</span> dirty;</div>
-<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span>};</div>
-<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> </div>
-<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"><a class="line" href="structcgroup__controller.html"> 108</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> {</div>
-<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="keywordtype">char</span> name[FILENAME_MAX];</div>
-<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcontrol__value.html">control_value</a> *values[CG_NV_MAX];</div>
-<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>;</div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="comment">/*</span></div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="comment"> * The abstraction layer uses prev_name when there's an N->1 or</span></div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="comment"> * 1->N relationship between cgroup v1 and v2 settings.</span></div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span><span class="comment"> */</span></div>
+<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="keywordtype">char</span> *prev_name;</div>
+<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> </div>
+<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="keywordtype">bool</span> dirty;</div>
+<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span>};</div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> </div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"><a class="line" href="structcgroup__controller.html"> 101</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> {</div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keywordtype">char</span> name[FILENAME_MAX];</div>
+<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcontrol__value.html">control_value</a> *values[CG_NV_MAX];</div>
+<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>;</div>
+<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keywordtype">int</span> index;</div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="keyword">enum</span> cg_version_t version;</div>
+<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span>};</div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div>
+<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"><a class="line" href="structcgroup.html"> 109</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup.html">cgroup</a> {</div>
+<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keywordtype">char</span> name[FILENAME_MAX];</div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller[CG_CONTROLLER_MAX];</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="keywordtype">int</span> index;</div>
-<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="keyword">enum</span> cg_version_t version;</div>
-<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span>};</div>
-<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div>
-<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"><a class="line" href="structcgroup.html"> 116</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup.html">cgroup</a> {</div>
-<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="keywordtype">char</span> name[FILENAME_MAX];</div>
-<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *controller[CG_CONTROLLER_MAX];</div>
-<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="keywordtype">int</span> index;</div>
-<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> uid_t tasks_uid;</div>
-<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> gid_t tasks_gid;</div>
-<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> mode_t task_fperm;</div>
-<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> uid_t control_uid;</div>
-<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> gid_t control_gid;</div>
-<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> mode_t control_fperm;</div>
-<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> mode_t control_dperm;</div>
-<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span>};</div>
-<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> </div>
-<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"><a class="line" href="structcg__mount__point.html"> 129</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcg__mount__point.html">cg_mount_point</a> {</div>
-<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <span class="keywordtype">char</span> path[FILENAME_MAX];</div>
-<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcg__mount__point.html">cg_mount_point</a> *next;</div>
-<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span>};</div>
-<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> </div>
-<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"><a class="line" href="structcg__mount__table__s.html"> 134</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcg__mount__table__s.html">cg_mount_table_s</a> {</div>
-<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"><a class="line" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6"> 136</a></span> <span class="keywordtype">char</span> <a class="code hl_variable" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>[FILENAME_MAX];</div>
-<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"><a class="line" href="structcg__mount__table__s.html#a9704fa3ec3674f6d433345ea52b6aeef"> 140</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structcg__mount__point.html">cg_mount_point</a> <a class="code hl_variable" href="structcg__mount__table__s.html#a9704fa3ec3674f6d433345ea52b6aeef">mount</a>;</div>
-<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="keywordtype">int</span> index;</div>
-<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keyword">enum</span> cg_version_t version;</div>
-<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span>};</div>
-<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> </div>
-<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"><a class="line" href="structcgroup__rules__data.html"> 145</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__rules__data.html">cgroup_rules_data</a> {</div>
-<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> pid_t pid; <span class="comment">/* pid of the process which needs to change group */</span></div>
-<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> </div>
-<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="comment">/* Details of user under consideration for destination cgroup */</span></div>
-<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <span class="keyword">struct </span>passwd *pw;</div>
-<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> <span class="comment">/* Gid of the process */</span></div>
-<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> gid_t gid;</div>
-<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span>};</div>
-<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> </div>
-<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span><span class="comment">/* A rule that maps UID/GID to a cgroup */</span></div>
-<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"><a class="line" href="structcgroup__rule.html"> 155</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__rule.html">cgroup_rule</a> {</div>
-<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> uid_t uid;</div>
-<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> gid_t gid;</div>
-<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="keywordtype">bool</span> is_ignore;</div>
-<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <span class="keywordtype">char</span> *procname;</div>
-<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <span class="keywordtype">char</span> username[LOGIN_NAME_MAX];</div>
-<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> <span class="keywordtype">char</span> destination[FILENAME_MAX];</div>
-<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <span class="keywordtype">char</span> *controllers[MAX_MNT_ELEMENTS];</div>
-<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__rule.html">cgroup_rule</a> *next;</div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> uid_t tasks_uid;</div>
+<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> gid_t tasks_gid;</div>
+<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> mode_t task_fperm;</div>
+<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> uid_t control_uid;</div>
+<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> gid_t control_gid;</div>
+<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> mode_t control_fperm;</div>
+<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> mode_t control_dperm;</div>
+<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span>};</div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> </div>
+<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"><a class="line" href="structcg__mount__point.html"> 122</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcg__mount__point.html">cg_mount_point</a> {</div>
+<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keywordtype">char</span> path[FILENAME_MAX];</div>
+<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcg__mount__point.html">cg_mount_point</a> *next;</div>
+<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span>};</div>
+<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> </div>
+<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"><a class="line" href="structcg__mount__table__s.html"> 127</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcg__mount__table__s.html">cg_mount_table_s</a> {</div>
+<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"><a class="line" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6"> 129</a></span> <span class="keywordtype">char</span> <a class="code hl_variable" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>[FILENAME_MAX];</div>
+<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"><a class="line" href="structcg__mount__table__s.html#a9704fa3ec3674f6d433345ea52b6aeef"> 133</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structcg__mount__point.html">cg_mount_point</a> <a class="code hl_variable" href="structcg__mount__table__s.html#a9704fa3ec3674f6d433345ea52b6aeef">mount</a>;</div>
+<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="keywordtype">int</span> index;</div>
+<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="keyword">enum</span> cg_version_t version;</div>
+<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span>};</div>
+<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> </div>
+<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"><a class="line" href="structcgroup__rules__data.html"> 138</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__rules__data.html">cgroup_rules_data</a> {</div>
+<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> pid_t pid; <span class="comment">/* pid of the process which needs to change group */</span></div>
+<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> </div>
+<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="comment">/* Details of user under consideration for destination cgroup */</span></div>
+<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keyword">struct </span>passwd *pw;</div>
+<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="comment">/* Gid of the process */</span></div>
+<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> gid_t gid;</div>
+<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span>};</div>
+<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> </div>
+<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span><span class="comment">/* A rule that maps UID/GID to a cgroup */</span></div>
+<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"><a class="line" href="structcgroup__rule.html"> 148</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__rule.html">cgroup_rule</a> {</div>
+<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> uid_t uid;</div>
+<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> gid_t gid;</div>
+<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <span class="keywordtype">bool</span> is_ignore;</div>
+<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <span class="keywordtype">char</span> *procname;</div>
+<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="keywordtype">char</span> username[LOGIN_NAME_MAX];</div>
+<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <span class="keywordtype">char</span> destination[FILENAME_MAX];</div>
+<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="keywordtype">char</span> *controllers[MAX_MNT_ELEMENTS];</div>
+<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__rule.html">cgroup_rule</a> *next;</div>
+<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span>};</div>
+<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> </div>
+<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span><span class="comment">/* Container for a list of rules */</span></div>
+<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"><a class="line" href="structcgroup__rule__list.html"> 160</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__rule__list.html">cgroup_rule_list</a> {</div>
+<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__rule.html">cgroup_rule</a> *head;</div>
+<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__rule.html">cgroup_rule</a> *tail;</div>
+<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <span class="keywordtype">int</span> len;</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span>};</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> </div>
-<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span><span class="comment">/* Container for a list of rules */</span></div>
-<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"><a class="line" href="structcgroup__rule__list.html"> 167</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__rule__list.html">cgroup_rule_list</a> {</div>
-<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__rule.html">cgroup_rule</a> *head;</div>
-<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__rule.html">cgroup_rule</a> *tail;</div>
-<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <span class="keywordtype">int</span> len;</div>
-<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span>};</div>
-<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> </div>
-<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span><span class="comment">/*The walk_tree handle */</span></div>
-<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"><a class="line" href="structcgroup__tree__handle.html"> 174</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__tree__handle.html">cgroup_tree_handle</a> {</div>
-<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> FTS *fts;</div>
-<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <span class="keywordtype">int</span> flags;</div>
-<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span>};</div>
-<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> </div>
-<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"><a class="line" href="structcgroup__dictionary__item.html"> 186</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> {</div>
-<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *name;</div>
-<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *value;</div>
-<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> *next;</div>
-<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span>};</div>
-<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> </div>
-<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span><span class="comment">/* Flags for cgroup_dictionary_create */</span></div>
-<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span><span class="preprocessor">#define CG_DICT_DONT_FREE_ITEMS 1</span></div>
-<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> </div>
-<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"><a class="line" href="structcgroup__dictionary.html"> 209</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__dictionary.html">cgroup_dictionary</a> {</div>
-<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> *head;</div>
-<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> *tail;</div>
-<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> <span class="keywordtype">int</span> flags;</div>
-<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span>};</div>
-<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> </div>
-<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"><a class="line" href="structcgroup__dictionary__iterator.html"> 216</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__dictionary__iterator.html">cgroup_dictionary_iterator</a> {</div>
-<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> *item;</div>
-<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span>};</div>
-<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> </div>
-<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span><span class="keyword">extern</span> __thread <span class="keywordtype">int</span> last_errno;</div>
-<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> </div>
-<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span><span class="keyword">extern</span> jmp_buf parser_error_env;</div>
-<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> </div>
-<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span><span class="comment">/* Internal API */</span></div>
-<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</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 id="l00232" name="l00232"></a><span class="lineno"> 232</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 id="l00233" name="l00233"></a><span class="lineno"> 233</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 id="l00234" name="l00234"></a><span class="lineno"> 234</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 id="l00235" name="l00235"></a><span class="lineno"> 235</span><span class="keyword">struct </span><a class="code hl_struct" 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 id="l00236" name="l00236"></a><span class="lineno"> 236</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcontrol__value.html">control_value</a> *name_value, <span class="keywordtype">int</span> nv_number);</div>
-<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span><span class="keywordtype">void</span> init_cgroup_table(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *cgroups, <span class="keywordtype">size_t</span> count);</div>
-<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> </div>
-<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span><span class="comment">/*</span></div>
-<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span><span class="comment"> * Main mounting structures</span></div>
-<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span><span class="comment"> */</span></div>
-<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span><span class="keyword">extern</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcg__mount__table__s.html">cg_mount_table_s</a> cg_mount_table[CG_CONTROLLER_MAX];</div>
-<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span><span class="keyword">extern</span> pthread_rwlock_t cg_mount_table_lock;</div>
-<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> </div>
-<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span><span class="comment">/*</span></div>
-<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span><span class="comment"> * config related structures</span></div>
-<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span><span class="comment"> */</span></div>
-<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> </div>
-<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span><span class="keyword">extern</span> __thread <span class="keywordtype">char</span> *cg_namespace_table[CG_CONTROLLER_MAX];</div>
-<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> </div>
-<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span><span class="comment">/*</span></div>
-<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span><span class="comment"> * config related API</span></div>
-<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span><span class="comment"> */</span></div>
-<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span><span class="keywordtype">int</span> cgroup_config_insert_cgroup(<span class="keywordtype">char</span> *cg_name);</div>
-<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span><span class="keywordtype">int</span> cgroup_config_parse_controller_options(<span class="keywordtype">char</span> *controller,</div>
-<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__dictionary.html">cgroup_dictionary</a> *values);</div>
-<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span><span class="keywordtype">int</span> template_config_insert_cgroup(<span class="keywordtype">char</span> *cg_name);</div>
-<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span><span class="keywordtype">int</span> template_config_parse_controller_options(<span class="keywordtype">char</span> *controller,</div>
-<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__dictionary.html">cgroup_dictionary</a> *values);</div>
-<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</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 id="l00261" name="l00261"></a><span class="lineno"> 261</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 id="l00262" name="l00262"></a><span class="lineno"> 262</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 id="l00263" name="l00263"></a><span class="lineno"> 263</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 id="l00264" name="l00264"></a><span class="lineno"> 264</span><span class="keywordtype">int</span> cgroup_config_insert_into_mount_table(<span class="keywordtype">char</span> *<a class="code hl_variable" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>, <span class="keywordtype">char</span> *mount_point);</div>
-<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span><span class="keywordtype">int</span> cgroup_config_insert_into_namespace_table(<span class="keywordtype">char</span> *<a class="code hl_variable" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>, <span class="keywordtype">char</span> *mount_point);</div>
-<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span><span class="keywordtype">void</span> cgroup_config_cleanup_mount_table(<span class="keywordtype">void</span>);</div>
-<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span><span class="keywordtype">void</span> cgroup_config_cleanup_namespace_table(<span class="keywordtype">void</span>);</div>
-<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span><span class="keywordtype">int</span> cgroup_config_define_default(<span class="keywordtype">void</span>);</div>
-<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> </div>
-<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span><span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_create(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__dictionary.html">cgroup_dictionary</a> **dict,</div>
-<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> <span class="keywordtype">int</span> flags);</div>
-<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span><span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_add(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__dictionary.html">cgroup_dictionary</a> *dict,</div>
-<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code hl_variable" 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 id="l00284" name="l00284"></a><span class="lineno"> 284</span><span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_free(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__dictionary.html">cgroup_dictionary</a> *dict);</div>
-<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> </div>
-<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span><span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_iterator_begin(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__dictionary.html">cgroup_dictionary</a> *dict,</div>
-<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> <span class="keywordtype">void</span> **handle, <span class="keyword">const</span> <span class="keywordtype">char</span> **<a class="code hl_variable" 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 id="l00295" name="l00295"></a><span class="lineno"> 295</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 id="l00296" name="l00296"></a><span class="lineno"> 296</span> <span class="keyword">const</span> <span class="keywordtype">char</span> **<a class="code hl_variable" 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 id="l00300" name="l00300"></a><span class="lineno"> 300</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 id="l00301" name="l00301"></a><span class="lineno"> 301</span> </div>
-<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</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 id="l00312" name="l00312"></a><span class="lineno"> 312</span> </div>
-<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</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 id="l00323" name="l00323"></a><span class="lineno"> 323</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 id="l00324" name="l00324"></a><span class="lineno"> 324</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> ctrl_name);</div>
-<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> </div>
-<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</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 id="l00338" name="l00338"></a><span class="lineno"> 338</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *controller);</div>
-<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> </div>
-<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</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 hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>,</div>
-<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *cgc, <span class="keywordtype">int</span> cg_index);</div>
-<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span> </div>
-<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</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 id="l00361" name="l00361"></a><span class="lineno"> 361</span> </div>
-<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span><span class="keywordtype">int</span> cgroup_copy_controller_values(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst,</div>
-<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span> <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> src);</div>
-<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span> </div>
-<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span><span class="keywordtype">int</span> cgroup_remove_value(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> controller,</div>
-<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> <a class="code hl_variable" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>);</div>
-<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> </div>
-<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span><span class="keywordtype">void</span> cgroup_free_controller(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *ctrl);</div>
+<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span><span class="comment">/*The walk_tree handle */</span></div>
+<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"><a class="line" href="structcgroup__tree__handle.html"> 167</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__tree__handle.html">cgroup_tree_handle</a> {</div>
+<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> FTS *fts;</div>
+<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <span class="keywordtype">int</span> flags;</div>
+<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span>};</div>
+<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> </div>
+<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"><a class="line" href="structcgroup__dictionary__item.html"> 179</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> {</div>
+<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *name;</div>
+<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *value;</div>
+<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> *next;</div>
+<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span>};</div>
+<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> </div>
+<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span><span class="comment">/* Flags for cgroup_dictionary_create */</span></div>
+<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span><span class="preprocessor">#define CG_DICT_DONT_FREE_ITEMS 1</span></div>
+<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> </div>
+<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"><a class="line" href="structcgroup__dictionary.html"> 202</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__dictionary.html">cgroup_dictionary</a> {</div>
+<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> *head;</div>
+<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> *tail;</div>
+<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> <span class="keywordtype">int</span> flags;</div>
+<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span>};</div>
+<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> </div>
+<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"><a class="line" href="structcgroup__dictionary__iterator.html"> 209</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__dictionary__iterator.html">cgroup_dictionary_iterator</a> {</div>
+<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> *item;</div>
+<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span>};</div>
+<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> </div>
+<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span><span class="keyword">extern</span> __thread <span class="keywordtype">int</span> last_errno;</div>
+<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> </div>
+<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span><span class="keyword">extern</span> jmp_buf parser_error_env;</div>
+<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> </div>
+<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span><span class="comment">/* Internal API */</span></div>
+<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</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 id="l00225" name="l00225"></a><span class="lineno"> 225</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 id="l00226" name="l00226"></a><span class="lineno"> 226</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 id="l00227" name="l00227"></a><span class="lineno"> 227</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 id="l00228" name="l00228"></a><span class="lineno"> 228</span><span class="keyword">struct </span><a class="code hl_struct" 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 id="l00229" name="l00229"></a><span class="lineno"> 229</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcontrol__value.html">control_value</a> *name_value, <span class="keywordtype">int</span> nv_number);</div>
+<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span><span class="keywordtype">void</span> init_cgroup_table(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *cgroups, <span class="keywordtype">size_t</span> count);</div>
+<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> </div>
+<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span><span class="comment">/*</span></div>
+<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span><span class="comment"> * Main mounting structures</span></div>
+<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span><span class="comment"> */</span></div>
+<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span><span class="keyword">extern</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcg__mount__table__s.html">cg_mount_table_s</a> cg_mount_table[CG_CONTROLLER_MAX];</div>
+<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span><span class="keyword">extern</span> pthread_rwlock_t cg_mount_table_lock;</div>
+<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> </div>
+<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span><span class="comment">/*</span></div>
+<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span><span class="comment"> * config related structures</span></div>
+<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span><span class="comment"> */</span></div>
+<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> </div>
+<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span><span class="keyword">extern</span> __thread <span class="keywordtype">char</span> *cg_namespace_table[CG_CONTROLLER_MAX];</div>
+<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> </div>
+<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span><span class="comment">/*</span></div>
+<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span><span class="comment"> * config related API</span></div>
+<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span><span class="comment"> */</span></div>
+<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span><span class="keywordtype">int</span> cgroup_config_insert_cgroup(<span class="keywordtype">char</span> *cg_name);</div>
+<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span><span class="keywordtype">int</span> cgroup_config_parse_controller_options(<span class="keywordtype">char</span> *controller,</div>
+<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__dictionary.html">cgroup_dictionary</a> *values);</div>
+<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span><span class="keywordtype">int</span> template_config_insert_cgroup(<span class="keywordtype">char</span> *cg_name);</div>
+<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span><span class="keywordtype">int</span> template_config_parse_controller_options(<span class="keywordtype">char</span> *controller,</div>
+<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__dictionary.html">cgroup_dictionary</a> *values);</div>
+<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</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 id="l00254" name="l00254"></a><span class="lineno"> 254</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 id="l00255" name="l00255"></a><span class="lineno"> 255</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 id="l00256" name="l00256"></a><span class="lineno"> 256</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 id="l00257" name="l00257"></a><span class="lineno"> 257</span><span class="keywordtype">int</span> cgroup_config_insert_into_mount_table(<span class="keywordtype">char</span> *<a class="code hl_variable" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>, <span class="keywordtype">char</span> *mount_point);</div>
+<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span><span class="keywordtype">int</span> cgroup_config_insert_into_namespace_table(<span class="keywordtype">char</span> *<a class="code hl_variable" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>, <span class="keywordtype">char</span> *mount_point);</div>
+<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span><span class="keywordtype">void</span> cgroup_config_cleanup_mount_table(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span><span class="keywordtype">void</span> cgroup_config_cleanup_namespace_table(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span><span class="keywordtype">int</span> cgroup_config_define_default(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> </div>
+<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span><span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_create(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__dictionary.html">cgroup_dictionary</a> **dict,</div>
+<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> <span class="keywordtype">int</span> flags);</div>
+<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span><span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_add(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__dictionary.html">cgroup_dictionary</a> *dict,</div>
+<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code hl_variable" 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 id="l00277" name="l00277"></a><span class="lineno"> 277</span><span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_free(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__dictionary.html">cgroup_dictionary</a> *dict);</div>
+<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> </div>
+<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span><span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_iterator_begin(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__dictionary.html">cgroup_dictionary</a> *dict,</div>
+<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> <span class="keywordtype">void</span> **handle, <span class="keyword">const</span> <span class="keywordtype">char</span> **<a class="code hl_variable" 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 id="l00288" name="l00288"></a><span class="lineno"> 288</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 id="l00289" name="l00289"></a><span class="lineno"> 289</span> <span class="keyword">const</span> <span class="keywordtype">char</span> **<a class="code hl_variable" 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 id="l00293" name="l00293"></a><span class="lineno"> 293</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 id="l00294" name="l00294"></a><span class="lineno"> 294</span> </div>
+<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</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 id="l00305" name="l00305"></a><span class="lineno"> 305</span> </div>
+<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</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 id="l00316" name="l00316"></a><span class="lineno"> 316</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 id="l00317" name="l00317"></a><span class="lineno"> 317</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> ctrl_name);</div>
+<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> </div>
+<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</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 id="l00331" name="l00331"></a><span class="lineno"> 331</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *controller);</div>
+<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> </div>
+<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</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 hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>,</div>
+<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *cgc, <span class="keywordtype">int</span> cg_index);</div>
+<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span> </div>
+<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</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 id="l00354" name="l00354"></a><span class="lineno"> 354</span> </div>
+<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span><span class="keywordtype">int</span> cgroup_copy_controller_values(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst,</div>
+<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> src);</div>
+<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> </div>
+<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span><span class="keywordtype">int</span> cgroup_remove_value(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> controller,</div>
+<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> <a class="code hl_variable" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>);</div>
+<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span> </div>
+<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span><span class="keywordtype">void</span> cgroup_free_controller(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *ctrl);</div>
+<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span> </div>
+<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span><span class="preprocessor">#ifdef UNIT_TEST</span></div>
<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span> </div>
-<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</span><span class="preprocessor">#ifdef UNIT_TEST</span></div>
-<div class="line"><a id="l00397" name="l00397"></a><span class="lineno"> 397</span> </div>
-<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"> 398</span><span class="preprocessor">#define TEST_PROC_PID_CGROUP_FILE "test-procpidcgroup"</span></div>
+<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span><span class="preprocessor">#define TEST_PROC_PID_CGROUP_FILE "test-procpidcgroup"</span></div>
+<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span> </div>
+<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"> 393</span><span class="keywordtype">int</span> cgroup_parse_rules_options(<span class="keywordtype">char</span> *options,</div>
+<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__rule.html">cgroup_rule</a> * <span class="keyword">const</span> rule);</div>
+<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</span> </div>
+<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</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 id="l00397" name="l00397"></a><span class="lineno"> 397</span> <span class="keywordtype">char</span> *controller_list[],</div>
+<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"> 398</span> <span class="keywordtype">int</span> list_len);</div>
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"> 399</span> </div>
-<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"> 400</span><span class="keywordtype">int</span> cgroup_parse_rules_options(<span class="keywordtype">char</span> *options,</div>
-<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__rule.html">cgroup_rule</a> * <span class="keyword">const</span> rule);</div>
+<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"> 400</span><span class="keywordtype">bool</span> cgroup_compare_ignore_rule(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__rule.html">cgroup_rule</a> * <span class="keyword">const</span> rule,</div>
+<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</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 id="l00402" name="l00402"></a><span class="lineno"> 402</span> </div>
-<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</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 id="l00404" name="l00404"></a><span class="lineno"> 404</span> <span class="keywordtype">char</span> *controller_list[],</div>
-<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span> <span class="keywordtype">int</span> list_len);</div>
-<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span> </div>
-<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span><span class="keywordtype">bool</span> cgroup_compare_ignore_rule(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__rule.html">cgroup_rule</a> * <span class="keyword">const</span> rule,</div>
-<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</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 id="l00409" name="l00409"></a><span class="lineno"> 409</span> </div>
-<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"> 410</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 id="l00411" name="l00411"></a><span class="lineno"> 411</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> procname);</div>
-<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</span> </div>
-<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"> 413</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 id="l00414" name="l00414"></a><span class="lineno"> 414</span> <span class="keywordtype">int</span> *mnt_tbl_idx);</div>
-<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</span> </div>
-<div class="line"><a id="l00416" name="l00416"></a><span class="lineno"> 416</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 id="l00403" name="l00403"></a><span class="lineno"> 403</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 id="l00404" name="l00404"></a><span class="lineno"> 404</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> procname);</div>
+<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span> </div>
+<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</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 id="l00407" name="l00407"></a><span class="lineno"> 407</span> <span class="keywordtype">int</span> *mnt_tbl_idx);</div>
+<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span> </div>
+<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"> 409</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 id="l00410" name="l00410"></a><span class="lineno"> 410</span> </div>
+<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"> 411</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 id="l00412" name="l00412"></a><span class="lineno"> 412</span> <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> controller,</div>
+<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"> 413</span> <span class="keywordtype">bool</span> ignore_non_dirty_failures);</div>
+<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"> 414</span> </div>
+<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</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 id="l00416" name="l00416"></a><span class="lineno"> 416</span> uid_t uid, gid_t gid, mode_t fperm);</div>
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"> 417</span> </div>
-<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"> 418</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 id="l00419" name="l00419"></a><span class="lineno"> 419</span> <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> controller,</div>
-<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</span> <span class="keywordtype">bool</span> ignore_non_dirty_failures);</div>
-<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span> </div>
-<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</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 id="l00423" name="l00423"></a><span class="lineno"> 423</span> uid_t uid, gid_t gid, mode_t fperm);</div>
+<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"> 418</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 id="l00419" name="l00419"></a><span class="lineno"> 419</span> <span class="keywordtype">bool</span> enable);</div>
+<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</span> </div>
+<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</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 id="l00422" name="l00422"></a><span class="lineno"> 422</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *ctrl_name,</div>
+<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span> <span class="keywordtype">bool</span> * <span class="keyword">const</span> enabled);</div>
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span> </div>
-<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"> 425</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 id="l00426" name="l00426"></a><span class="lineno"> 426</span> <span class="keywordtype">bool</span> enable);</div>
+<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"> 425</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 id="l00426" name="l00426"></a><span class="lineno"> 426</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> ctrl_name);</div>
<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"> 427</span> </div>
-<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</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 id="l00429" name="l00429"></a><span class="lineno"> 429</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *ctrl_name,</div>
-<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span> <span class="keywordtype">bool</span> * <span class="keyword">const</span> enabled);</div>
-<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span> </div>
-<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"> 432</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 id="l00433" name="l00433"></a><span class="lineno"> 433</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> ctrl_name);</div>
-<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"> 434</span> </div>
-<div class="line"><a id="l00435" name="l00435"></a><span class="lineno"> 435</span><span class="preprocessor">#endif </span><span class="comment">/* UNIT_TEST */</span><span class="preprocessor"></span></div>
-<div class="line"><a id="l00436" name="l00436"></a><span class="lineno"> 436</span> </div>
-<div class="line"><a id="l00437" name="l00437"></a><span class="lineno"> 437</span><span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a id="l00438" name="l00438"></a><span class="lineno"> 438</span>} <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"> 439</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span> </div>
-<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"> 441</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:129</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:134</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:140</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:136</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:108</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:186</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:216</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:209</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:167</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:155</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:145</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:174</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:116</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:92</div></div>
+<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span><span class="preprocessor">#endif </span><span class="comment">/* UNIT_TEST */</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span> </div>
+<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span>} <span class="comment">/* extern "C" */</span></div>
+<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"> 432</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span> </div>
+<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"> 434</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:122</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:127</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:133</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:129</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:101</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:179</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:209</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:202</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:160</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:148</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:138</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:167</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:109</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:85</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
<div class="headertitle"><div class="title">libcgroup.h</div></div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/*</span></div>
-<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"> * Copyright IBM Corporation. 2007</span></div>
-<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> *</span></div>
-<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"> * Author: Balbir Singh <balbir@linux.vnet.ibm.com></span></div>
-<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment"> *</span></div>
-<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment"> * This program is free software; you can redistribute it and/or modify it</span></div>
-<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment"> * under the terms of version 2.1 of the GNU Lesser General Public License</span></div>
-<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment"> * as published by the Free Software Foundation.</span></div>
-<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment"> *</span></div>
-<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment"> * This program is distributed in the hope that it would be useful, but</span></div>
-<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment"> * WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
-<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</span></div>
-<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment"> *</span></div>
-<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment"> */</span></div>
-<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
-<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#ifndef _LIBCGROUP_H</span></div>
-<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#define _LIBCGROUP_H</span></div>
-<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
-<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#define _LIBCGROUP_H_INSIDE</span></div>
-<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
-<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include <libcgroup/error.h></span></div>
-<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#include <libcgroup/init.h></span></div>
-<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#include <libcgroup/iterators.h></span></div>
-<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#include <libcgroup/groups.h></span></div>
-<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#include <libcgroup/tasks.h></span></div>
-<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="preprocessor">#include <libcgroup/config.h></span></div>
-<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#include <libcgroup/log.h></span></div>
-<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#include <libcgroup/tools.h></span></div>
-<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
-<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#undef _LIBCGROUP_H_INSIDE</span></div>
-<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
-<div class="line"><a id="l00050" 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 class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/* SPDX-License-Identifier: LGPL-2.1-only */</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#ifndef _LIBCGROUP_H</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#define _LIBCGROUP_H</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#define _LIBCGROUP_H_INSIDE</span></div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include <libcgroup/error.h></span></div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include <libcgroup/init.h></span></div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include <libcgroup/iterators.h></span></div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include <libcgroup/groups.h></span></div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include <libcgroup/tasks.h></span></div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include <libcgroup/config.h></span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include <libcgroup/log.h></span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include <libcgroup/tools.h></span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#undef _LIBCGROUP_H_INSIDE</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</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>
<div class="headertitle"><div class="title">log.h</div></div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef _LIBCGROUP_LOG_H</span></div>
-<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define _LIBCGROUP_LOG_H</span></div>
-<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
-<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#ifndef _LIBCGROUP_H_INSIDE</span></div>
-<div class="line"><a id="l00005" 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 id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
-<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#ifndef SWIG</span></div>
-<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include <features.h></span></div>
-<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
-<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include <stdarg.h></span></div>
-<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
-<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
-<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"><a class="line" href="group__group__log.html#ga98b7aea5d23411e70c7e3da54d90233a"> 72</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="group__group__log.html#ga98b7aea5d23411e70c7e3da54d90233a">cgroup_log_level</a> {</div>
-<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa4dd44215cd3553e79dbf91eb9ca418a2"> 77</a></span> <a class="code hl_enumvalue" href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa4dd44215cd3553e79dbf91eb9ca418a2">CGROUP_LOG_ERROR</a> = 1,</div>
-<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aaa99ec9e854a543901bddf854d1960057"> 81</a></span> <a class="code hl_enumvalue" href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aaa99ec9e854a543901bddf854d1960057">CGROUP_LOG_WARNING</a>,</div>
-<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aad66ab51dba078ffc3b1c6d397053f9e2"> 86</a></span> <a class="code hl_enumvalue" href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aad66ab51dba078ffc3b1c6d397053f9e2">CGROUP_LOG_INFO</a>,</div>
-<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"><a class="line" href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa86b4157fb38d9f8053c6b7429bd26c72"> 90</a></span> <a class="code hl_enumvalue" href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa86b4157fb38d9f8053c6b7429bd26c72">CGROUP_LOG_DEBUG</a>,</div>
-<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span>};</div>
-<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> </div>
-<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="keyword">typedef</span> void (*cgroup_logger_callback)(<span class="keywordtype">void</span> *userdata, <span class="keywordtype">int</span> level,</div>
-<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, va_list ap);</div>
-<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> </div>
-<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__group__log.html#ga76d7032206f9b9d1c0be1a71a68c43d0">cgroup_set_logger</a>(cgroup_logger_callback logger, <span class="keywordtype">int</span> loglevel,</div>
-<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keywordtype">void</span> *userdata);</div>
-<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> </div>
-<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span><span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__group__log.html#gab1457ce518dcde0b9f3c14ec9efa2de7">cgroup_set_default_logger</a>(<span class="keywordtype">int</span> loglevel);</div>
-<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> </div>
-<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span><span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__group__log.html#gaac5fe2352800ff62465a5abe649d5b8c">cgroup_set_loglevel</a>(<span class="keywordtype">int</span> loglevel);</div>
-<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> </div>
-<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span><span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__group__log.html#gab514ad5d83422ddfe479bdf651e80958">cgroup_log</a>(<span class="keywordtype">int</span> loglevel, <span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, ...);</div>
-<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> </div>
-<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span><span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code hl_function" href="group__group__log.html#gaa364a06aee0e99228a1e6a26b25a9794">cgroup_parse_log_level_str</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *levelstr);</div>
-<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span><span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span>} <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> </div>
-<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span><span class="preprocessor">#endif </span><span class="comment">/* _LIBCGROUP_LOG_H */</span><span class="preprocessor"></span></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:49</div></div>
-<div class="ttc" id="agroup__group__log_html_ga98b7aea5d23411e70c7e3da54d90233a"><div class="ttname"><a href="group__group__log.html#ga98b7aea5d23411e70c7e3da54d90233a">cgroup_log_level</a></div><div class="ttdeci">cgroup_log_level</div><div class="ttdef"><b>Definition:</b> log.h:72</div></div>
-<div class="ttc" id="agroup__group__log_html_gaa364a06aee0e99228a1e6a26b25a9794"><div class="ttname"><a href="group__group__log.html#gaa364a06aee0e99228a1e6a26b25a9794">cgroup_parse_log_level_str</a></div><div class="ttdeci">int cgroup_parse_log_level_str(const char *levelstr)</div><div class="ttdef"><b>Definition:</b> log.c:63</div></div>
-<div class="ttc" id="agroup__group__log_html_gaac5fe2352800ff62465a5abe649d5b8c"><div class="ttname"><a href="group__group__log.html#gaac5fe2352800ff62465a5abe649d5b8c">cgroup_set_loglevel</a></div><div class="ttdeci">void cgroup_set_loglevel(int loglevel)</div><div class="ttdef"><b>Definition:</b> log.c:87</div></div>
-<div class="ttc" id="agroup__group__log_html_gab1457ce518dcde0b9f3c14ec9efa2de7"><div class="ttname"><a href="group__group__log.html#gab1457ce518dcde0b9f3c14ec9efa2de7">cgroup_set_default_logger</a></div><div class="ttdeci">void cgroup_set_default_logger(int loglevel)</div><div class="ttdef"><b>Definition:</b> log.c:57</div></div>
-<div class="ttc" id="agroup__group__log_html_gab514ad5d83422ddfe479bdf651e80958"><div class="ttname"><a href="group__group__log.html#gab514ad5d83422ddfe479bdf651e80958">cgroup_log</a></div><div class="ttdeci">void cgroup_log(int loglevel, const char *fmt,...)</div><div class="ttdef"><b>Definition:</b> log.c:34</div></div>
-<div class="ttc" id="agroup__group__log_html_gga98b7aea5d23411e70c7e3da54d90233aa4dd44215cd3553e79dbf91eb9ca418a2"><div class="ttname"><a href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa4dd44215cd3553e79dbf91eb9ca418a2">CGROUP_LOG_ERROR</a></div><div class="ttdeci">@ CGROUP_LOG_ERROR</div><div class="ttdef"><b>Definition:</b> log.h:77</div></div>
-<div class="ttc" id="agroup__group__log_html_gga98b7aea5d23411e70c7e3da54d90233aa86b4157fb38d9f8053c6b7429bd26c72"><div class="ttname"><a href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa86b4157fb38d9f8053c6b7429bd26c72">CGROUP_LOG_DEBUG</a></div><div class="ttdeci">@ CGROUP_LOG_DEBUG</div><div class="ttdef"><b>Definition:</b> log.h:90</div></div>
-<div class="ttc" id="agroup__group__log_html_gga98b7aea5d23411e70c7e3da54d90233aaa99ec9e854a543901bddf854d1960057"><div class="ttname"><a href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aaa99ec9e854a543901bddf854d1960057">CGROUP_LOG_WARNING</a></div><div class="ttdeci">@ CGROUP_LOG_WARNING</div><div class="ttdef"><b>Definition:</b> log.h:81</div></div>
-<div class="ttc" id="agroup__group__log_html_gga98b7aea5d23411e70c7e3da54d90233aad66ab51dba078ffc3b1c6d397053f9e2"><div class="ttname"><a href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aad66ab51dba078ffc3b1c6d397053f9e2">CGROUP_LOG_INFO</a></div><div class="ttdeci">@ CGROUP_LOG_INFO</div><div class="ttdef"><b>Definition:</b> log.h:86</div></div>
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/* SPDX-License-Identifier: LGPL-2.1-only */</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#ifndef _LIBCGROUP_LOG_H</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#define _LIBCGROUP_LOG_H</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span> </div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#ifndef _LIBCGROUP_H_INSIDE</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#error "Only <libcgroup.h> should be included directly."</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#ifndef SWIG</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include <features.h></span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include <stdarg.h></span></div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="group__group__log.html#ga98b7aea5d23411e70c7e3da54d90233a"> 73</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="group__group__log.html#ga98b7aea5d23411e70c7e3da54d90233a">cgroup_log_level</a> {</div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa4dd44215cd3553e79dbf91eb9ca418a2"> 78</a></span> <a class="code hl_enumvalue" href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa4dd44215cd3553e79dbf91eb9ca418a2">CGROUP_LOG_ERROR</a> = 1,</div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aaa99ec9e854a543901bddf854d1960057"> 82</a></span> <a class="code hl_enumvalue" href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aaa99ec9e854a543901bddf854d1960057">CGROUP_LOG_WARNING</a>,</div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"><a class="line" href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aad66ab51dba078ffc3b1c6d397053f9e2"> 87</a></span> <a class="code hl_enumvalue" href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aad66ab51dba078ffc3b1c6d397053f9e2">CGROUP_LOG_INFO</a>,</div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"><a class="line" href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa86b4157fb38d9f8053c6b7429bd26c72"> 91</a></span> <a class="code hl_enumvalue" href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa86b4157fb38d9f8053c6b7429bd26c72">CGROUP_LOG_DEBUG</a>,</div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span>};</div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> </div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="keyword">typedef</span> void (*cgroup_logger_callback)(<span class="keywordtype">void</span> *userdata, <span class="keywordtype">int</span> level,</div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, va_list ap);</div>
+<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
+<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__group__log.html#ga76d7032206f9b9d1c0be1a71a68c43d0">cgroup_set_logger</a>(cgroup_logger_callback logger, <span class="keywordtype">int</span> loglevel,</div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="keywordtype">void</span> *userdata);</div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> </div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__group__log.html#gab1457ce518dcde0b9f3c14ec9efa2de7">cgroup_set_default_logger</a>(<span class="keywordtype">int</span> loglevel);</div>
+<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> </div>
+<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__group__log.html#gaac5fe2352800ff62465a5abe649d5b8c">cgroup_set_loglevel</a>(<span class="keywordtype">int</span> loglevel);</div>
+<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> </div>
+<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span><span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__group__log.html#gab514ad5d83422ddfe479bdf651e80958">cgroup_log</a>(<span class="keywordtype">int</span> loglevel, <span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, ...);</div>
+<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> </div>
+<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span><span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code hl_function" href="group__group__log.html#gaa364a06aee0e99228a1e6a26b25a9794">cgroup_parse_log_level_str</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *levelstr);</div>
+<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span>} <span class="comment">/* extern "C" */</span></div>
+<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> </div>
+<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span><span class="preprocessor">#endif </span><span class="comment">/* _LIBCGROUP_LOG_H */</span><span class="preprocessor"></span></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:42</div></div>
+<div class="ttc" id="agroup__group__log_html_ga98b7aea5d23411e70c7e3da54d90233a"><div class="ttname"><a href="group__group__log.html#ga98b7aea5d23411e70c7e3da54d90233a">cgroup_log_level</a></div><div class="ttdeci">cgroup_log_level</div><div class="ttdef"><b>Definition:</b> log.h:73</div></div>
+<div class="ttc" id="agroup__group__log_html_gaa364a06aee0e99228a1e6a26b25a9794"><div class="ttname"><a href="group__group__log.html#gaa364a06aee0e99228a1e6a26b25a9794">cgroup_parse_log_level_str</a></div><div class="ttdeci">int cgroup_parse_log_level_str(const char *levelstr)</div><div class="ttdef"><b>Definition:</b> log.c:56</div></div>
+<div class="ttc" id="agroup__group__log_html_gaac5fe2352800ff62465a5abe649d5b8c"><div class="ttname"><a href="group__group__log.html#gaac5fe2352800ff62465a5abe649d5b8c">cgroup_set_loglevel</a></div><div class="ttdeci">void cgroup_set_loglevel(int loglevel)</div><div class="ttdef"><b>Definition:</b> log.c:80</div></div>
+<div class="ttc" id="agroup__group__log_html_gab1457ce518dcde0b9f3c14ec9efa2de7"><div class="ttname"><a href="group__group__log.html#gab1457ce518dcde0b9f3c14ec9efa2de7">cgroup_set_default_logger</a></div><div class="ttdeci">void cgroup_set_default_logger(int loglevel)</div><div class="ttdef"><b>Definition:</b> log.c:50</div></div>
+<div class="ttc" id="agroup__group__log_html_gab514ad5d83422ddfe479bdf651e80958"><div class="ttname"><a href="group__group__log.html#gab514ad5d83422ddfe479bdf651e80958">cgroup_log</a></div><div class="ttdeci">void cgroup_log(int loglevel, const char *fmt,...)</div><div class="ttdef"><b>Definition:</b> log.c:27</div></div>
+<div class="ttc" id="agroup__group__log_html_gga98b7aea5d23411e70c7e3da54d90233aa4dd44215cd3553e79dbf91eb9ca418a2"><div class="ttname"><a href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa4dd44215cd3553e79dbf91eb9ca418a2">CGROUP_LOG_ERROR</a></div><div class="ttdeci">@ CGROUP_LOG_ERROR</div><div class="ttdef"><b>Definition:</b> log.h:78</div></div>
+<div class="ttc" id="agroup__group__log_html_gga98b7aea5d23411e70c7e3da54d90233aa86b4157fb38d9f8053c6b7429bd26c72"><div class="ttname"><a href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa86b4157fb38d9f8053c6b7429bd26c72">CGROUP_LOG_DEBUG</a></div><div class="ttdeci">@ CGROUP_LOG_DEBUG</div><div class="ttdef"><b>Definition:</b> log.h:91</div></div>
+<div class="ttc" id="agroup__group__log_html_gga98b7aea5d23411e70c7e3da54d90233aaa99ec9e854a543901bddf854d1960057"><div class="ttname"><a href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aaa99ec9e854a543901bddf854d1960057">CGROUP_LOG_WARNING</a></div><div class="ttdeci">@ CGROUP_LOG_WARNING</div><div class="ttdef"><b>Definition:</b> log.h:82</div></div>
+<div class="ttc" id="agroup__group__log_html_gga98b7aea5d23411e70c7e3da54d90233aad66ab51dba078ffc3b1c6d397053f9e2"><div class="ttname"><a href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aad66ab51dba078ffc3b1c6d397053f9e2">CGROUP_LOG_INFO</a></div><div class="ttdeci">@ CGROUP_LOG_INFO</div><div class="ttdef"><b>Definition:</b> log.h:87</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
<div class="headertitle"><div class="title">tasks.h</div></div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef _LIBCGROUP_TASKS_H</span></div>
-<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define _LIBCGROUP_TASKS_H</span></div>
-<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
-<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#ifndef _LIBCGROUP_H_INSIDE</span></div>
-<div class="line"><a id="l00005" 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 id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
-<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include <libcgroup/groups.h></span></div>
-<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
-<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#ifndef SWIG</span></div>
-<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include <features.h></span></div>
-<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include <stdbool.h></span></div>
-<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
-<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
-<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="keyword">enum</span> cgflags {</div>
-<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> CGFLAG_USECACHE = 0x01,</div>
-<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> CGFLAG_USE_TEMPLATE_CACHE = 0x02,</div>
-<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span>};</div>
-<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
-<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="keyword">enum</span> cgroup_daemon_type {</div>
-<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> CGROUP_DAEMON_UNCHANGE_CHILDREN = 0x1,</div>
-<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> CGROUP_DAEMON_CANCEL_UNCHANGE_PROCESS = 0x2,</div>
-<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span>};</div>
-<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div>
-<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__tasks.html#ga43414ac2b1fc73bbb46b6278c7500188">cgroup_attach_task</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>);</div>
-<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__tasks.html#ga9c7532681986d156ac3f6bac1fcf6aab">cgroup_attach_task_pid</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>, pid_t tid);</div>
-<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__tasks.html#ga2d4677baef780c003fc6fba6b5dc78f2">cgroup_change_cgroup_path</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *path, pid_t pid,</div>
-<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> controllers[]);</div>
-<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div>
-<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__tasks.html#ga6f2c17b99cf2526cb46df4769eb3f46e">cgroup_get_current_controller_path</a>(pid_t pid, <span class="keyword">const</span> <span class="keywordtype">char</span> *controller,</div>
-<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <span class="keywordtype">char</span> **current_path);</div>
-<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> </div>
-<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__tasks.html#gad7fa5a2c4db08d31da5bfbecaf482d3d">cgroup_init_rules_cache</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> </div>
-<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__tasks.html#gaf81ebd9cb5575c75b4c85f385ebda1ce">cgroup_reload_cached_rules</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> </div>
-<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__group__tasks.html#gac4e3f29cfbdc3d77f08c9fe60857274a">cgroup_print_rules_config</a>(FILE *fp);</div>
-<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> </div>
-<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__tasks.html#gafc69658b012b6f1c11ba078ffccd70a2">cgroup_change_all_cgroups</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> </div>
-<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__tasks.html#ga368e7b8e19b3943ab6fb50e76a09e6ea">cgroup_change_cgroup_flags</a>(uid_t uid, gid_t gid,</div>
-<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *procname, pid_t pid, <span class="keywordtype">int</span> flags);</div>
-<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> </div>
-<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__tasks.html#gae472183a7c9a37826ef15c77014c47fb">cgroup_change_cgroup_uid_gid_flags</a>(uid_t uid, gid_t gid,</div>
-<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> pid_t pid, <span class="keywordtype">int</span> flags);</div>
-<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> </div>
-<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__tasks.html#ga5eab78a922dbacd368360f03c70146be">cgroup_change_cgroup_uid_gid</a>(uid_t uid, gid_t gid, pid_t pid);</div>
-<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> </div>
-<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__tasks.html#ga64f7967d6d5edfff9afddaa6a6974b1c">cgroup_register_unchanged_process</a>(pid_t pid, <span class="keywordtype">int</span> flags);</div>
-<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> </div>
-<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span><span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span>} <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> </div>
-<div class="line"><a id="l00213" 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:4277</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:4043</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:1870</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:4265</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:5467</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:4499</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:1802</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:4391</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:4477</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:4248</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:4451</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:4345</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:116</div></div>
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/* SPDX-License-Identifier: LGPL-2.1-only */</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#ifndef _LIBCGROUP_TASKS_H</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#define _LIBCGROUP_TASKS_H</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span> </div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#ifndef _LIBCGROUP_H_INSIDE</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#error "Only <libcgroup.h> should be included directly."</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include <libcgroup/groups.h></span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#ifndef SWIG</span></div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include <features.h></span></div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include <stdbool.h></span></div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="keyword">enum</span> cgflags {</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> CGFLAG_USECACHE = 0x01,</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> CGFLAG_USE_TEMPLATE_CACHE = 0x02,</div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span>};</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="keyword">enum</span> cgroup_daemon_type {</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> CGROUP_DAEMON_UNCHANGE_CHILDREN = 0x1,</div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> CGROUP_DAEMON_CANCEL_UNCHANGE_PROCESS = 0x2,</div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span>};</div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__tasks.html#ga43414ac2b1fc73bbb46b6278c7500188">cgroup_attach_task</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>);</div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__tasks.html#ga9c7532681986d156ac3f6bac1fcf6aab">cgroup_attach_task_pid</a>(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>, pid_t tid);</div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__tasks.html#ga2d4677baef780c003fc6fba6b5dc78f2">cgroup_change_cgroup_path</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *path, pid_t pid,</div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> controllers[]);</div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> </div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__tasks.html#ga6f2c17b99cf2526cb46df4769eb3f46e">cgroup_get_current_controller_path</a>(pid_t pid, <span class="keyword">const</span> <span class="keywordtype">char</span> *controller,</div>
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keywordtype">char</span> **current_path);</div>
+<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> </div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__tasks.html#gad7fa5a2c4db08d31da5bfbecaf482d3d">cgroup_init_rules_cache</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> </div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__tasks.html#gaf81ebd9cb5575c75b4c85f385ebda1ce">cgroup_reload_cached_rules</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> </div>
+<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__group__tasks.html#gac4e3f29cfbdc3d77f08c9fe60857274a">cgroup_print_rules_config</a>(FILE *fp);</div>
+<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div>
+<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__tasks.html#gafc69658b012b6f1c11ba078ffccd70a2">cgroup_change_all_cgroups</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> </div>
+<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__tasks.html#ga368e7b8e19b3943ab6fb50e76a09e6ea">cgroup_change_cgroup_flags</a>(uid_t uid, gid_t gid,</div>
+<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *procname, pid_t pid, <span class="keywordtype">int</span> flags);</div>
+<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> </div>
+<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__tasks.html#gae472183a7c9a37826ef15c77014c47fb">cgroup_change_cgroup_uid_gid_flags</a>(uid_t uid, gid_t gid,</div>
+<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> pid_t pid, <span class="keywordtype">int</span> flags);</div>
+<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> </div>
+<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__tasks.html#ga5eab78a922dbacd368360f03c70146be">cgroup_change_cgroup_uid_gid</a>(uid_t uid, gid_t gid, pid_t pid);</div>
+<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> </div>
+<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span><span class="keywordtype">int</span> <a class="code hl_function" href="group__group__tasks.html#ga64f7967d6d5edfff9afddaa6a6974b1c">cgroup_register_unchanged_process</a>(pid_t pid, <span class="keywordtype">int</span> flags);</div>
+<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> </div>
+<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span>} <span class="comment">/* extern "C" */</span></div>
+<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> </div>
+<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</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:4270</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:4036</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:1863</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:4258</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:5460</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:4492</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:1795</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:4384</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:4470</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:4241</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:4444</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:4338</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:109</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
<div class="headertitle"><div class="title">tools-common.h</div></div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/*</span></div>
-<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"> * Copyright Red Hat, Inc. 2009</span></div>
-<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> *</span></div>
-<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"> * Author: Vivek Goyal <vgoyal@redhat.com></span></div>
-<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment"> * Jan Safranek <jsafrane@redhat.com></span></div>
-<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment"> *</span></div>
-<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment"> * This program is free software; you can redistribute it and/or modify it</span></div>
-<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment"> * under the terms of version 2.1 of the GNU Lesser General Public License</span></div>
-<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment"> * as published by the Free Software Foundation.</span></div>
-<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment"> *</span></div>
-<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment"> * This program is distributed in the hope that it would be useful, but</span></div>
-<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment"> * WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
-<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</span></div>
-<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment"> *</span></div>
-<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment"> */</span></div>
-<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
-<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#ifndef __TOOLS_COMMON</span></div>
-<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
-<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#define __TOOLS_COMMON</span></div>
-<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
-<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#include "config.h"</span></div>
-<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#include <libcgroup.h></span></div>
-<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="preprocessor">#include "../libcgroup-internal.h"</span></div>
-<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
-<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#define cgroup_err(x...) cgroup_log(CGROUP_LOG_ERROR, "Error: "</span> x)</div>
-<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#define cgroup_warn(x...) cgroup_log(CGROUP_LOG_WARNING, "Warning: "</span> x)</div>
-<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#define cgroup_info(x...) cgroup_log(CGROUP_LOG_INFO, "Info: "</span> x)</div>
-<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#define cgroup_dbg(x...) cgroup_log(CGROUP_LOG_DEBUG, x)</span></div>
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/* SPDX-License-Identifier: LGPL-2.1-only */</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#ifndef __TOOLS_COMMON</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#define __TOOLS_COMMON</span></div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include "config.h"</span></div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include <libcgroup.h></span></div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include "../libcgroup-internal.h"</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#define cgroup_err(x...) cgroup_log(CGROUP_LOG_ERROR, "Error: "</span> x)</div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#define cgroup_warn(x...) cgroup_log(CGROUP_LOG_WARNING, "Warning: "</span> x)</div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#define cgroup_info(x...) cgroup_log(CGROUP_LOG_INFO, "Info: "</span> x)</div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#define cgroup_dbg(x...) cgroup_log(CGROUP_LOG_DEBUG, x)</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"><a class="line" href="structcgroup__group__spec.html"> 28</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__group__spec.html">cgroup_group_spec</a> {</div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="keywordtype">char</span> path[FILENAME_MAX];</div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keywordtype">char</span> *controllers[CG_CONTROLLER_MAX];</div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span>};</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div>
-<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="structcgroup__group__spec.html"> 36</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__group__spec.html">cgroup_group_spec</a> {</div>
-<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordtype">char</span> path[FILENAME_MAX];</div>
-<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordtype">char</span> *controllers[CG_CONTROLLER_MAX];</div>
-<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span>};</div>
-<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
-<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
-<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="structcgroup__string__list.html"> 45</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__string__list.html">cgroup_string_list</a> {</div>
-<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keywordtype">char</span> **items;</div>
-<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="keywordtype">int</span> size;</div>
-<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="keywordtype">int</span> count;</div>
-<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span>};</div>
-<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="keywordtype">int</span> parse_cgroup_spec(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__group__spec.html">cgroup_group_spec</a> **cdptr, <span class="keywordtype">char</span> *optarg,</div>
-<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keywordtype">int</span> capacity);</div>
-<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="keywordtype">void</span> cgroup_free_group_spec(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__group__spec.html">cgroup_group_spec</a> *cl);</div>
-<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"><a class="line" href="structcgroup__string__list.html"> 37</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__string__list.html">cgroup_string_list</a> {</div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordtype">char</span> **items;</div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="keywordtype">int</span> size;</div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="keywordtype">int</span> count;</div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span>};</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="keywordtype">int</span> parse_cgroup_spec(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__group__spec.html">cgroup_group_spec</a> **cdptr, <span class="keywordtype">char</span> *optarg,</div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keywordtype">int</span> capacity);</div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="keywordtype">void</span> cgroup_free_group_spec(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__group__spec.html">cgroup_group_spec</a> *cl);</div>
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> </div>
+<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="keywordtype">int</span> cgroup_string_list_init(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__string__list.html">cgroup_string_list</a> *list,</div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="keywordtype">int</span> initial_size);</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div>
-<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span><span class="keywordtype">int</span> cgroup_string_list_init(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__string__list.html">cgroup_string_list</a> *list,</div>
-<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordtype">int</span> initial_size);</div>
-<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> </div>
-<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span><span class="keywordtype">void</span> cgroup_string_list_free(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__string__list.html">cgroup_string_list</a> *list);</div>
-<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
-<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="keywordtype">int</span> cgroup_string_list_add_item(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__string__list.html">cgroup_string_list</a> *list,</div>
-<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *item);</div>
-<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
-<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="keywordtype">int</span> cgroup_string_list_add_directory(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__string__list.html">cgroup_string_list</a> *list,</div>
-<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordtype">char</span> *dirname, <span class="keywordtype">char</span> *program_name);</div>
-<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span><span class="keywordtype">void</span> cgroup_string_list_free(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__string__list.html">cgroup_string_list</a> *list);</div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span><span class="keywordtype">int</span> cgroup_string_list_add_item(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__string__list.html">cgroup_string_list</a> *list,</div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *item);</div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> </div>
+<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="keywordtype">int</span> cgroup_string_list_add_directory(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__string__list.html">cgroup_string_list</a> *list,</div>
+<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keywordtype">char</span> *dirname, <span class="keywordtype">char</span> *program_name);</div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> </div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> </div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="keywordtype">int</span> parse_mode(<span class="keywordtype">char</span> *<span class="keywordtype">string</span>, mode_t *pmode, <span class="keyword">const</span> <span class="keywordtype">char</span> *program_name);</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div>
-<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span><span class="keywordtype">int</span> parse_mode(<span class="keywordtype">char</span> *<span class="keywordtype">string</span>, mode_t *pmode, <span class="keyword">const</span> <span class="keywordtype">char</span> *program_name);</div>
-<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> </div>
-<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="keywordtype">int</span> parse_uid_gid(<span class="keywordtype">char</span> *<span class="keywordtype">string</span>, uid_t *uid, gid_t *gid,</div>
-<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *program_name);</div>
-<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> </div>
-<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span><span class="preprocessor">#ifdef UNIT_TEST</span></div>
-<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> </div>
-<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span><span class="keywordtype">int</span> parse_r_flag(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> program_name,</div>
-<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> name_value_str,</div>
-<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcontrol__value.html">control_value</a> * <span class="keyword">const</span> name_value);</div>
-<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> </div>
-<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span><span class="preprocessor">#endif </span><span class="comment">/* UNIT_TEST */</span><span class="preprocessor"></span></div>
-<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> </div>
-<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span><span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span>} <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> </div>
-<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="preprocessor">#endif </span><span class="comment">/* TOOLS_COMMON */</span><span class="preprocessor"></span></div>
-<div class="ttc" id="astructcgroup__group__spec_html"><div class="ttname"><a href="structcgroup__group__spec.html">cgroup_group_spec</a></div><div class="ttdef"><b>Definition:</b> tools-common.h:36</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="astructcontrol__value_html"><div class="ttname"><a href="structcontrol__value.html">control_value</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:92</div></div>
+<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="keywordtype">int</span> parse_uid_gid(<span class="keywordtype">char</span> *<span class="keywordtype">string</span>, uid_t *uid, gid_t *gid,</div>
+<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *program_name);</div>
+<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> </div>
+<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="preprocessor">#ifdef UNIT_TEST</span></div>
+<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> </div>
+<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span><span class="keywordtype">int</span> parse_r_flag(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> program_name,</div>
+<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> name_value_str,</div>
+<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcontrol__value.html">control_value</a> * <span class="keyword">const</span> name_value);</div>
+<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> </div>
+<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span><span class="preprocessor">#endif </span><span class="comment">/* UNIT_TEST */</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> </div>
+<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span>} <span class="comment">/* extern "C" */</span></div>
+<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> </div>
+<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span><span class="preprocessor">#endif </span><span class="comment">/* TOOLS_COMMON */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="astructcgroup__group__spec_html"><div class="ttname"><a href="structcgroup__group__spec.html">cgroup_group_spec</a></div><div class="ttdef"><b>Definition:</b> tools-common.h:28</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:37</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:85</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
<div class="headertitle"><div class="title">tools.h</div></div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">/*</span></div>
-<div class="line"><a id="l00009" 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 id="l00010" 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 id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment"> * published by the Free Software Foundation.</span></div>
-<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment"> *</span></div>
-<div class="line"><a id="l00013" 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 id="l00014" 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 id="l00015" 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 id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment"> * for more details.</span></div>
-<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment"> *</span></div>
-<div class="line"><a id="l00018" 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 id="l00019" 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 id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment"> */</span></div>
-<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#ifndef _LIBCGROUP_TOOLS_H</span></div>
-<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#define _LIBCGROUP_TOOLS_H</span></div>
-<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
-<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#ifndef _LIBCGROUP_H_INSIDE</span></div>
-<div class="line"><a id="l00025" 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 id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
-<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#ifndef SWIG</span></div>
-<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#include <features.h></span></div>
-<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#include <sys/types.h></span></div>
-<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#include <stdbool.h></span></div>
-<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
-<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
-<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span><span class="keywordtype">int</span> cgroup_cgxget(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> ** cg,</div>
-<div class="line"><a id="l00054" 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 id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
-<div class="line"><a id="l00066" 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 hl_struct" href="structcgroup.html">cgroup</a> * <span class="keyword">const</span> cg,</div>
-<div class="line"><a id="l00067" 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 id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
-<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span>} <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
-<div class="line"><a id="l00073" 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:116</div></div>
+<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/* SPDX-License-Identifier: LGPL-2.1-only */</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#ifndef _LIBCGROUP_TOOLS_H</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#define _LIBCGROUP_TOOLS_H</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#ifndef _LIBCGROUP_H_INSIDE</span></div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#error "Only <libcgroup.h> should be included directly."</span></div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#ifndef SWIG</span></div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include <features.h></span></div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include <sys/types.h></span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include <stdbool.h></span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="keywordtype">int</span> cgroup_cgxget(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> ** cg,</div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">enum</span> cg_version_t version, <span class="keywordtype">bool</span> ignore_unmappable);</div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> </div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="keywordtype">int</span> cgroup_cgxset(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> * <span class="keyword">const</span> cg,</div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">enum</span> cg_version_t version, <span class="keywordtype">bool</span> ignore_unmappable);</div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> </div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span>} <span class="comment">/* extern "C" */</span></div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</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:109</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>