<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: src/abstraction-common.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
</div>
</div><!-- top -->
<div class="header">
- <div class="headertitle">
-<div class="title">abstraction-common.h</div> </div>
+ <div class="headertitle"><div class="title">abstraction-common.h</div></div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">/*</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * This library is free software; you can redistribute it and/or modify it</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * under the terms of version 2.1 of the GNU Lesser General Public License as</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * published by the Free Software Foundation.</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * This library is distributed in the hope that it will be useful, but WITHOUT</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * for more details.</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * You should have received a copy of the GNU Lesser General Public License</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * along with this library; if not, see <http://www.gnu.org/licenses>.</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#ifndef __ABSTRACTION_COMMON</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#define __ABSTRACTION_COMMON</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "config.h"</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <libcgroup.h></span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "libcgroup-internal.h"</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keywordtype">int</span> cgroup_strtol(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_str, <span class="keywordtype">int</span> base,</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordtype">long</span> <span class="keywordtype">int</span> * <span class="keyword">const</span> out_value);</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keywordtype">int</span> cgroup_convert_int(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keywordtype">int</span> cgroup_convert_name_only(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  </div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keywordtype">int</span> cgroup_convert_passthrough(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  </div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keywordtype">int</span> cgroup_convert_unmappable(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  </div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment">/* cpu */</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keywordtype">int</span> cgroup_convert_cpu_nto1(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> out_cgc,</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> in_cgc);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  </div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keywordtype">int</span> cgroup_convert_cpu_quota_to_max(</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  </div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keywordtype">int</span> cgroup_convert_cpu_period_to_max(</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  </div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keywordtype">int</span> cgroup_convert_cpu_max_to_quota(</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  </div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="keywordtype">int</span> cgroup_convert_cpu_max_to_period(</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  </div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="comment">/* cpuset */</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="keywordtype">int</span> cgroup_convert_cpuset_to_exclusive(</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  </div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="keywordtype">int</span> cgroup_convert_cpuset_to_partition(</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  </div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  </div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> } <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  </div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="preprocessor">#endif </span><span class="comment">/* __ABSTRACTION_COMMON */</span><span class="preprocessor"></span></div>
+<div class="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><span class="preprocessor">#include <libcgroup.h></span></div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#include "libcgroup-internal.h"</span></div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="keywordtype">int</span> cgroup_strtol(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_str, <span class="keywordtype">int</span> base,</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> * <span class="keyword">const</span> out_value);</div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</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="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a 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> out_setting,</div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> </div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="keywordtype">int</span> cgroup_convert_name_only(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a 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> out_setting,</div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> </div>
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</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="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a 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> out_setting,</div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> </div>
+<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</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="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a 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> out_setting,</div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> </div>
+<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span><span class="comment">/* cpu */</span></div>
+<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span><span class="keywordtype">int</span> cgroup_convert_cpu_nto1(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> out_cgc,</div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</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="l00107" name="l00107"></a><span class="lineno"> 107</span> </div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</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="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="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a 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> out_setting,</div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> </div>
+<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</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="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="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a 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> out_setting,</div>
+<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> </div>
+<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span><span class="keywordtype">int</span> cgroup_convert_cpu_max_to_quota(</div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</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="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a 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> out_setting,</div>
+<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a 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><span class="keywordtype">int</span> cgroup_convert_cpu_max_to_period(</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> * <span class="keyword">const</span> dst_cgc,</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> in_value,</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> out_setting,</div>
+<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> </div>
+<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span><span class="comment">/* cpuset */</span></div>
+<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span><span class="keywordtype">int</span> cgroup_convert_cpuset_to_exclusive(</div>
+<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</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="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a 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> out_setting,</div>
+<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a 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="keywordtype">int</span> cgroup_convert_cpuset_to_partition(</div>
+<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</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="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
+<div class="line"><a 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> out_setting,</div>
+<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
+<div class="line"><a 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> </div>
+<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span>} <span class="comment">/* extern "C" */</span></div>
+<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> </div>
+<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span><span class="preprocessor">#endif </span><span class="comment">/* __ABSTRACTION_COMMON */</span><span class="preprocessor"></span></div>
<div class="ttc" id="astructcgroup__controller_html"><div class="ttname"><a href="structcgroup__controller.html">cgroup_controller</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:106</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: src/abstraction-map.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
</div>
</div><!-- top -->
<div class="header">
- <div class="headertitle">
-<div class="title">abstraction-map.h</div> </div>
+ <div class="headertitle"><div class="title">abstraction-map.h</div></div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">/*</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * This library is free software; you can redistribute it and/or modify it</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * under the terms of version 2.1 of the GNU Lesser General Public License as</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * published by the Free Software Foundation.</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * This library is distributed in the hope that it will be useful, but WITHOUT</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * for more details.</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * You should have received a copy of the GNU Lesser General Public License</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * along with this library; if not, see <http://www.gnu.org/licenses>.</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#ifndef __ABSTRACTION_MAP</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#define __ABSTRACTION_MAP</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
-<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="structcgroup__abstraction__map.html"> 28</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__abstraction__map.html">cgroup_abstraction_map</a> {</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="comment">/* if the conversion isn't a one-to-one mapping or the mathematical</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment"> * conversion is unique, create a custom conversion function.</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  int (*cgroup_convert)(<span class="keyword">struct </span><a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst_cgc,</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> in_value,</div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> out_setting,</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keywordtype">void</span> *in_dflt, <span class="keywordtype">void</span> *out_dflt);</div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keywordtype">char</span> *in_setting;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keywordtype">void</span> *in_dflt;</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keywordtype">char</span> *out_setting;</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordtype">void</span> *out_dflt;</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> };</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structcgroup__abstraction__map.html">cgroup_abstraction_map</a> cgroup_v1_to_v2_map[];</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">int</span> cgroup_v1_to_v2_map_sz;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structcgroup__abstraction__map.html">cgroup_abstraction_map</a> cgroup_v2_to_v1_map[];</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">int</span> cgroup_v2_to_v1_map_sz;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> } <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#endif </span><span class="comment">/* __ABSTRACTION_MAP */</span><span class="preprocessor"></span></div>
+<div class="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:106</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: Data Structures</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
</div>
<div class="header">
- <div class="headertitle">
-<div class="title">Data Structures</div> </div>
+ <div class="headertitle"><div class="title">Data Structures</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here are the data structures with brief descriptions:</div><div class="directory">
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: src/daemon/cgrulesengd.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
</div>
</div><!-- top -->
<div class="header">
- <div class="headertitle">
-<div class="title">cgrulesengd.h</div> </div>
+ <div class="headertitle"><div class="title">cgrulesengd.h</div></div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright Red Hat Inc. 2008</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * Author: Steve Olivieri <sjo@redhat.com></span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> *</span></div>
-<div class="line"><a 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 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 name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * as published by the Free Software Foundation.</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> *</span></div>
-<div class="line"><a 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 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 name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  </div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#ifndef _CGRULESENGD_H</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#define _CGRULESENGD_H</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <features.h></span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  </div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "config.h"</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "libcgroup.h"</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <linux/connector.h></span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <linux/cn_proc.h></span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#ifndef _GNU_SOURCE</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#define _GNU_SOURCE</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#ifndef __USE_GNU</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#define __USE_GNU</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  </div>
-<div class="line"><a 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 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 name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor"> sizeof(enum proc_cn_mcast_op)))</span></div>
-<div class="line"><a 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 name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor"> sizeof(struct proc_event)))</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  </div>
-<div class="line"><a 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 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 name="l00045"></a><span class="lineno"> 45</span>  </div>
-<div class="line"><a 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 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 name="l00048"></a><span class="lineno"> 48</span>  </div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#define PROC_CN_MCAST_LISTEN (1)</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#define PROC_CN_MCAST_IGNORE (2)</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div>
-<div class="line"><a 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 name="l00060"></a><span class="lineno"> 60</span>  </div>
-<div class="line"><a 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 name="l00070"></a><span class="lineno"> 70</span>  </div>
-<div class="line"><a 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 name="l00080"></a><span class="lineno"> 80</span>  </div>
-<div class="line"><a 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 name="l00089"></a><span class="lineno"> 89</span>  </div>
-<div class="line"><a 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 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="line"><a name="l00102"></a><span class="lineno"> 102</span>  </div>
-<div class="line"><a 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 name="l00109"></a><span class="lineno"> 109</span>  </div>
-<div class="line"><a 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 name="l00116"></a><span class="lineno"> 116</span>  </div>
-<div class="line"><a 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 name="l00123"></a><span class="lineno"> 123</span>  </div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> } <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  </div>
-<div class="line"><a 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 name="l00129"></a><span class="lineno"> 129</span>  </div>
+<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="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="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="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><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: Data Structure Index</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
</div>
<div class="header">
- <div class="headertitle">
-<div class="title">Data Structure Index</div> </div>
+ <div class="headertitle"><div class="title">Data Structure Index</div></div>
</div><!--header-->
<div class="contents">
<div class="qindex"><a class="qindex" href="#letter_A">A</a> | <a class="qindex" href="#letter_B">B</a> | <a class="qindex" href="#letter_C">C</a> | <a class="qindex" href="#letter_E">E</a> | <a class="qindex" href="#letter_P">P</a> | <a class="qindex" href="#letter_U">U</a></div>
<div class="classindex">
<dl class="classindex even">
-<dt class="alphachar"><a name="letter_A">A</a></dt>
+<dt class="alphachar"><a id="letter_A" name="letter_A">A</a></dt>
<dd><a class="el" href="structarray__parent__info.html">array_parent_info</a></dd><dd><a class="el" href="structarray__unchanged.html">array_unchanged</a></dd></dl>
<dl class="classindex odd">
-<dt class="alphachar"><a name="letter_B">B</a></dt>
+<dt class="alphachar"><a id="letter_B" name="letter_B">B</a></dt>
<dd><a class="el" href="structblack__list__type.html">black_list_type</a></dd></dl>
<dl class="classindex even">
-<dt class="alphachar"><a name="letter_C">C</a></dt>
+<dt class="alphachar"><a id="letter_C" name="letter_C">C</a></dt>
<dd><a class="el" href="structcg__mount__point.html">cg_mount_point</a></dd><dd><a class="el" href="structcg__mount__table__s.html">cg_mount_table_s</a></dd><dd><a class="el" href="structcgroup.html">cgroup</a></dd><dd><a class="el" href="structcgroup__abstraction__map.html">cgroup_abstraction_map</a></dd><dd><a class="el" href="structcgroup__controller.html">cgroup_controller</a></dd><dd><a class="el" href="structcgroup__dictionary.html">cgroup_dictionary</a></dd><dd><a class="el" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a></dd><dd><a class="el" href="structcgroup__dictionary__iterator.html">cgroup_dictionary_iterator</a></dd><dd><a class="el" href="structcgroup__file__info.html">cgroup_file_info</a></dd><dd><a class="el" href="structcgroup__group__spec.html">cgroup_group_spec</a></dd><dd><a class="el" href="structcgroup__mount__point.html">cgroup_mount_point</a></dd><dd><a class="el" href="structcgroup__rule.html">cgroup_rule</a></dd><dd><a class="el" href="structcgroup__rule__list.html">cgroup_rule_list</a></dd><dd><a class="el" href="structcgroup__rules__data.html">cgroup_rules_data</a></dd><dd><a class="el" href="structcgroup__stat.html">cgroup_stat</a></dd><dd><a class="el" href="structcgroup__string__list.html">cgroup_string_list</a></dd><dd><a class="el" href="structcgroup__tree__handle.html">cgroup_tree_handle</a></dd><dd><a class="el" href="structcontrol__value.html">control_value</a></dd><dd><a class="el" href="structcontroller__data.html">controller_data</a></dd></dl>
<dl class="classindex odd">
-<dt class="alphachar"><a name="letter_E">E</a></dt>
+<dt class="alphachar"><a id="letter_E" name="letter_E">E</a></dt>
<dd><a class="el" href="structext__cgroup__record.html">ext_cgroup_record</a></dd></dl>
<dl class="classindex even">
-<dt class="alphachar"><a name="letter_P">P</a></dt>
+<dt class="alphachar"><a id="letter_P" name="letter_P">P</a></dt>
<dd><a class="el" href="structparent__info.html">parent_info</a></dd></dl>
<dl class="classindex odd">
-<dt class="alphachar"><a name="letter_U">U</a></dt>
+<dt class="alphachar"><a id="letter_U" name="letter_U">U</a></dt>
<dd><a class="el" href="structunchanged__pid.html">unchanged_pid</a></dd></dl>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: include/libcgroup/config.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
</div>
</div><!-- top -->
<div class="header">
- <div class="headertitle">
-<div class="title">config.h</div> </div>
+ <div class="headertitle"><div class="title">config.h</div></div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="preprocessor">#ifndef _LIBCGROUP_CONFIG_H</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="preprocessor">#define _LIBCGROUP_CONFIG_H</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  </div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#ifndef _LIBCGROUP_H_INSIDE</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="preprocessor">#error "Only <libcgroup.h> should be included directly."</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>  </div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#ifndef SWIG</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include <features.h></span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  </div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keywordtype">int</span> <a class="code" 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 name="l00037"></a><span class="lineno"> 37</span>  </div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keywordtype">int</span> <a class="code" href="group__group__config.html#ga85b285712354faca495193075035938d">cgroup_unload_cgroups</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keywordtype">int</span> <a class="code" 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 name="l00059"></a><span class="lineno"> 59</span>  </div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keywordtype">int</span> <a class="code" href="group__group__config.html#ga2d3a252b2c0c61c8f64cb1fc41e370ea">cgroup_config_set_default</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *new_default);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keywordtype">int</span> <a class="code" href="group__group__config.html#ga6f8c41bb920565e674787fe6dabaef00">cgroup_init_templates_cache</a>(<span class="keywordtype">char</span> *pathname);</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keywordtype">int</span> <a class="code" href="group__group__config.html#ga89fe0d7943b29cc10d57b07abcdfa7b5">cgroup_reload_cached_templates</a>(<span class="keywordtype">char</span> *pathname);</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  </div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keywordtype">int</span> <a class="code" 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 name="l00095"></a><span class="lineno"> 95</span>  </div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">struct </span><a class="code" href="structcgroup__string__list.html">cgroup_string_list</a>;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keywordtype">void</span> <a class="code" href="group__group__config.html#gacb09024dc469a1a1ff8cdebd8d0ab422">cgroup_templates_cache_set_source_files</a>(</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__string__list.html">cgroup_string_list</a> *tmpl_files);</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  </div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="keywordtype">int</span> <a class="code" href="group__group__config.html#ga72066260cd31ceed7ecc1a648eba37f2">cgroup_config_create_template_group</a>(</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>, <span class="keywordtype">char</span> *template_name,</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordtype">int</span> flags);</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  </div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> } <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  </div>
-<div class="line"><a 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="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:1470</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:1557</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:1778</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: src/tools Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
</div>
</div><!-- top -->
<div class="header">
- <div class="headertitle">
-<div class="title">tools Directory Reference</div> </div>
+ <div class="headertitle"><div class="title">tools Directory Reference</div></div>
</div><!--header-->
<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>tools-common.h</b> <a href="tools-common_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: src/daemon Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
</div>
</div><!-- top -->
<div class="header">
- <div class="headertitle">
-<div class="title">daemon Directory Reference</div> </div>
+ <div class="headertitle"><div class="title">daemon Directory Reference</div></div>
</div><!--header-->
<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>cgrulesengd.h</b> <a href="cgrulesengd_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: src/pam Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
</div>
</div><!-- top -->
<div class="header">
- <div class="headertitle">
-<div class="title">pam Directory Reference</div> </div>
+ <div class="headertitle"><div class="title">pam Directory Reference</div></div>
</div><!--header-->
<div class="contents">
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: src/python Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
</div>
</div><!-- top -->
<div class="header">
- <div class="headertitle">
-<div class="title">python Directory Reference</div> </div>
+ <div class="headertitle"><div class="title">python Directory Reference</div></div>
</div><!--header-->
<div class="contents">
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: include/libcgroup Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
</div>
</div><!-- top -->
<div class="header">
- <div class="headertitle">
-<div class="title">libcgroup Directory Reference</div> </div>
+ <div class="headertitle"><div class="title">libcgroup Directory Reference</div></div>
</div><!--header-->
<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>config.h</b> <a href="config_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>error.h</b> <a href="error_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>groups.h</b> <a href="groups_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>iterators.h</b> <a href="iterators_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>log.h</b> <a href="log_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>tasks.h</b> <a href="tasks_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>tools.h</b> <a href="tools_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: src Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
</div>
</div><!-- top -->
<div class="header">
- <div class="headertitle">
-<div class="title">src Directory Reference</div> </div>
+ <div class="headertitle"><div class="title">src Directory Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="subdirs" name="subdirs"></a>
Directories</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory  </td><td class="memItemRight" valign="bottom"><a class="el" href="dir_2d094300ae4f2c55dd459b9ec7dd0ad3.html">daemon</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory  </td><td class="memItemRight" valign="bottom"><a class="el" href="dir_501cbd49daf77f17c121ad0979f93200.html">pam</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory  </td><td class="memItemRight" valign="bottom"><a class="el" href="dir_5c0d64f70903e893b1efe571a4b8de29.html">python</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory  </td><td class="memItemRight" valign="bottom"><a class="el" href="dir_1563a38af0d3a5e4a6330d6d45e9792a.html">tools</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>abstraction-common.h</b> <a href="abstraction-common_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>abstraction-map.h</b> <a href="abstraction-map_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>libcgroup-internal.h</b> <a href="libcgroup-internal_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: include Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
</div>
</div><!-- top -->
<div class="header">
- <div class="headertitle">
-<div class="title">include Directory Reference</div> </div>
+ <div class="headertitle"><div class="title">include Directory Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="subdirs" name="subdirs"></a>
Directories</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory  </td><td class="memItemRight" valign="bottom"><a class="el" href="dir_66a7763e2a9b96033a682558820d533e.html">libcgroup</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><b>libcgroup.h</b> <a href="libcgroup_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
-/* The standard CSS for doxygen 1.9.1 */
+/* The standard CSS for doxygen 1.9.3 */
body, table, div, p, dl {
font: 400 14px/22px Roboto,sans-serif;
color: #4665A2;
}
+a.code.hl_class { /* style for links to class names in code snippets */ }
+a.code.hl_struct { /* style for links to struct names in code snippets */ }
+a.code.hl_union { /* style for links to union names in code snippets */ }
+a.code.hl_interface { /* style for links to interface names in code snippets */ }
+a.code.hl_protocol { /* style for links to protocol names in code snippets */ }
+a.code.hl_category { /* style for links to category names in code snippets */ }
+a.code.hl_exception { /* style for links to exception names in code snippets */ }
+a.code.hl_service { /* style for links to service names in code snippets */ }
+a.code.hl_singleton { /* style for links to singleton names in code snippets */ }
+a.code.hl_concept { /* style for links to concept names in code snippets */ }
+a.code.hl_namespace { /* style for links to namespace names in code snippets */ }
+a.code.hl_package { /* style for links to package names in code snippets */ }
+a.code.hl_define { /* style for links to macro names in code snippets */ }
+a.code.hl_function { /* style for links to function names in code snippets */ }
+a.code.hl_variable { /* style for links to variable names in code snippets */ }
+a.code.hl_typedef { /* style for links to typedef names in code snippets */ }
+a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ }
+a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ }
+a.code.hl_signal { /* style for links to Qt signal names in code snippets */ }
+a.code.hl_slot { /* style for links to Qt slot names in code snippets */ }
+a.code.hl_friend { /* style for links to friend names in code snippets */ }
+a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ }
+a.code.hl_property { /* style for links to property names in code snippets */ }
+a.code.hl_event { /* style for links to event names in code snippets */ }
+a.code.hl_sequence { /* style for links to sequence names in code snippets */ }
+a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ }
+
/* @end */
dl.el {
}
ul {
- overflow: hidden; /*Fixed: list item bullets overlap floating elements*/
+ overflow: visible;
}
#side-nav ul {
span.lineno {
padding-right: 4px;
+ margin-right: 9px;
text-align: right;
border-right: 2px solid #0F0;
background-color: #E8E8E8;
vertical-align: middle;
}
+.compoundTemplParams {
+ color: #4665A2;
+ font-size: 80%;
+ line-height: 120%;
+}
+
/* @group Code Colorization */
span.keyword {
}
+#projectrow
+{
+ height: 56px;
+}
+
#projectlogo
{
text-align: center;
#projectalign
{
vertical-align: middle;
+ padding-left: 0.5em;
}
#projectname
{
- font: 300% Tahoma, Arial,sans-serif;
+ font: 200% Tahoma, Arial,sans-serif;
margin: 0px;
padding: 2px 0px;
}
#projectbrief
{
- font: 120% Tahoma, Arial,sans-serif;
+ font: 90% Tahoma, Arial,sans-serif;
margin: 0px;
padding: 0px;
}
*/
}
+span.obfuscator {
+ display: none;
+}
+
.PageDocRTL-title div.toc li.level1 {
margin-left: 0 !important;
margin-right: 0;
#powerTip {
cursor: default;
- white-space: nowrap;
+ /*white-space: nowrap;*/
background-color: white;
border: 1px solid gray;
border-radius: 4px 4px 4px 4px;
margin-left: 0;
}
+code.JavaDocCode
+ direction:ltr;
+}
+
tt, code, kbd, samp
{
display: inline-block;
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: include/libcgroup/error.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
</div>
</div><!-- top -->
<div class="header">
- <div class="headertitle">
-<div class="title">error.h</div> </div>
+ <div class="headertitle"><div class="title">error.h</div></div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="preprocessor">#ifndef _LIBCGROUP_ERROR_H</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="preprocessor">#define _LIBCGROUP_ERROR_H</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  </div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#ifndef _LIBCGROUP_H_INSIDE</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="preprocessor">#error "Only <libcgroup.h> should be included directly."</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>  </div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#ifndef SWIG</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include <features.h></span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  </div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">enum</span> {</div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  ECGROUPNOTCOMPILED = 50000,</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  ECGROUPNOTMOUNTED,</div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  ECGROUPNOTEXIST,</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  ECGROUPNOTCREATED,</div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  ECGROUPSUBSYSNOTMOUNTED,</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  ECGROUPNOTOWNER,</div>
-<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba24a6584dd4238475a4e247bdf6956def"> 39</a></span>  <a class="code" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba24a6584dd4238475a4e247bdf6956def">ECGROUPMULTIMOUNTED</a>,</div>
-<div class="line"><a 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 name="l00041"></a><span class="lineno"> 41</span>  ECGROUPNOTALLOWED,</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  ECGMAXVALUESEXCEEDED,</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  ECGCONTROLLEREXISTS,</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  ECGVALUEEXISTS,</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  ECGINVAL,</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  ECGCONTROLLERCREATEFAILED,</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  ECGFAIL,</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  ECGROUPNOTINITIALIZED,</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  ECGROUPVALUENOTEXIST,</div>
-<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba88111f9ca2e967cbf7565724444c0193"> 55</a></span>  <a class="code" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba88111f9ca2e967cbf7565724444c0193">ECGOTHER</a>,</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  ECGROUPNOTEQUAL,</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  ECGCONTROLLERNOTEQUAL,</div>
-<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55bac62bda67f3029c39ef456100008b1f39"> 59</a></span>  <a class="code" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55bac62bda67f3029c39ef456100008b1f39">ECGROUPPARSEFAIL</a>,</div>
-<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba7c23c1a7cbfb7e8e9c66dd96b5c66d21"> 61</a></span>  <a class="code" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba7c23c1a7cbfb7e8e9c66dd96b5c66d21">ECGROUPNORULES</a>,</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  ECGMOUNTFAIL,</div>
-<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba2724c2f0af0d3e3cea66027f6bf2e436"> 67</a></span>  <a class="code" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba2724c2f0af0d3e3cea66027f6bf2e436">ECGEOF</a> = 50023,</div>
-<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55baf808b0e31be4bfbe8a21f800f913f9c0"> 69</a></span>  <a class="code" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55baf808b0e31be4bfbe8a21f800f913f9c0">ECGCONFIGPARSEFAIL</a>,</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  ECGNAMESPACEPATHS,</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  ECGNAMESPACECONTROLLER,</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  ECGMOUNTNAMESPACE,</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  ECGROUPUNSUPP,</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  ECGCANTSETVALUE,</div>
-<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba94dbe90328ef8a212633ec464b9b9b11"> 76</a></span>  <a class="code" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba94dbe90328ef8a212633ec464b9b9b11">ECGNONEMPTY</a>,</div>
-<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba33cc635e4cc4055b2c487f027fbdd960"> 78</a></span>  <a class="code" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba33cc635e4cc4055b2c487f027fbdd960">ECGNOVERSIONCONVERT</a>,</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> };</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  </div>
-<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="group__group__errors.html#ga515eba7218b187ffe263b7d9ecb3ac1b"> 84</a></span> <span class="preprocessor">#define ECGRULESPARSEFAIL ECGROUPPARSEFAIL</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  </div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__group__errors.html#gaeae1d51db8528c89d84501c745020e6b">cgroup_strerror</a>(<span class="keywordtype">int</span> code);</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  </div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keywordtype">int</span> <a class="code" href="group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46">cgroup_get_last_errno</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  </div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> } <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  </div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="preprocessor">#endif </span><span class="comment">/* _LIBCGROUP_INIT_H */</span><span class="preprocessor"></span></div>
+<div class="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:4484</div></div>
-<div class="ttc" id="agroup__group__errors_html_gaeae1d51db8528c89d84501c745020e6b"><div class="ttname"><a href="group__group__errors.html#gaeae1d51db8528c89d84501c745020e6b">cgroup_strerror</a></div><div class="ttdeci">const char * cgroup_strerror(int code)</div><div class="ttdef"><b>Definition:</b> api.c:4473</div></div>
+<div class="ttc" id="agroup__group__errors_html_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:4473</div></div>
<div class="ttc" id="agroup__group__errors_html_gga06fc87d81c62e9abb8790b6e5713c55ba24a6584dd4238475a4e247bdf6956def"><div class="ttname"><a href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba24a6584dd4238475a4e247bdf6956def">ECGROUPMULTIMOUNTED</a></div><div class="ttdeci">@ ECGROUPMULTIMOUNTED</div><div class="ttdef"><b>Definition:</b> error.h:39</div></div>
<div class="ttc" id="agroup__group__errors_html_gga06fc87d81c62e9abb8790b6e5713c55ba2724c2f0af0d3e3cea66027f6bf2e436"><div class="ttname"><a href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba2724c2f0af0d3e3cea66027f6bf2e436">ECGEOF</a></div><div class="ttdeci">@ ECGEOF</div><div class="ttdef"><b>Definition:</b> error.h:67</div></div>
<div class="ttc" id="agroup__group__errors_html_gga06fc87d81c62e9abb8790b6e5713c55ba33cc635e4cc4055b2c487f027fbdd960"><div class="ttname"><a href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba33cc635e4cc4055b2c487f027fbdd960">ECGNOVERSIONCONVERT</a></div><div class="ttdeci">@ ECGNOVERSIONCONVERT</div><div class="ttdef"><b>Definition:</b> error.h:78</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: File List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
</div>
<div class="header">
- <div class="headertitle">
-<div class="title">File List</div> </div>
+ <div class="headertitle"><div class="title">File List</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory">
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: Data Fields</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div class="contents">
<div class="textblock">Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:</div><ul>
-<li>depth
-: <a class="el" href="structcgroup__file__info.html#ad56dca35266f0f5f5c2666b946d72709">cgroup_file_info</a>
-</li>
-<li>enabled
-: <a class="el" href="structcontroller__data.html#a24be412cfb6c19f7a13a4bff9e55206e">controller_data</a>
-</li>
-<li>full_path
-: <a class="el" href="structcgroup__file__info.html#a4c61dc7f726ba0784ff8c71473dbc6e6">cgroup_file_info</a>
-</li>
-<li>hierarchy
-: <a class="el" href="structcontroller__data.html#a25e316f55473ca2b333b0d7e0ca644b4">controller_data</a>
-</li>
-<li>mount
-: <a class="el" href="structcg__mount__table__s.html#a9704fa3ec3674f6d433345ea52b6aeef">cg_mount_table_s</a>
-</li>
-<li>name
-: <a class="el" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">cg_mount_table_s</a>
-, <a class="el" href="structcgroup__mount__point.html#a849ccf1e77fffd5d45304c6adf0d2100">cgroup_mount_point</a>
-, <a class="el" href="structcontroller__data.html#a5474be4d8cc4553c94ca81c6a93f5a18">controller_data</a>
-</li>
-<li>num_cgroups
-: <a class="el" href="structcontroller__data.html#acd075c0bb48062bf720b68d0a30116eb">controller_data</a>
-</li>
-<li>parent
-: <a class="el" href="structcgroup__file__info.html#a739c7f87593e36d8589d3ffa80b57059">cgroup_file_info</a>
-</li>
-<li>path
-: <a class="el" href="structcgroup__file__info.html#a801424e68139c930e40ea24be4d96a68">cgroup_file_info</a>
-, <a class="el" href="structcgroup__mount__point.html#ad1e89dfc02cfd7341e2296086a4f251e">cgroup_mount_point</a>
-</li>
-<li>type
-: <a class="el" href="structcgroup__file__info.html#a955506601f440d05cb11e4ee6b455c55">cgroup_file_info</a>
-</li>
+<li>depth : <a class="el" href="structcgroup__file__info.html#ad56dca35266f0f5f5c2666b946d72709">cgroup_file_info</a></li>
+<li>enabled : <a class="el" href="structcontroller__data.html#a24be412cfb6c19f7a13a4bff9e55206e">controller_data</a></li>
+<li>full_path : <a class="el" href="structcgroup__file__info.html#a4c61dc7f726ba0784ff8c71473dbc6e6">cgroup_file_info</a></li>
+<li>hierarchy : <a class="el" href="structcontroller__data.html#a25e316f55473ca2b333b0d7e0ca644b4">controller_data</a></li>
+<li>mount : <a class="el" href="structcg__mount__table__s.html#a9704fa3ec3674f6d433345ea52b6aeef">cg_mount_table_s</a></li>
+<li>name : <a class="el" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">cg_mount_table_s</a>, <a class="el" href="structcgroup__mount__point.html#a849ccf1e77fffd5d45304c6adf0d2100">cgroup_mount_point</a>, <a class="el" href="structcontroller__data.html#a5474be4d8cc4553c94ca81c6a93f5a18">controller_data</a></li>
+<li>num_cgroups : <a class="el" href="structcontroller__data.html#acd075c0bb48062bf720b68d0a30116eb">controller_data</a></li>
+<li>parent : <a class="el" href="structcgroup__file__info.html#a739c7f87593e36d8589d3ffa80b57059">cgroup_file_info</a></li>
+<li>path : <a class="el" href="structcgroup__file__info.html#a801424e68139c930e40ea24be4d96a68">cgroup_file_info</a>, <a class="el" href="structcgroup__mount__point.html#ad1e89dfc02cfd7341e2296086a4f251e">cgroup_mount_point</a></li>
+<li>type : <a class="el" href="structcgroup__file__info.html#a955506601f440d05cb11e4ee6b455c55">cgroup_file_info</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: Data Fields - Variables</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div class="contents">
 <ul>
-<li>depth
-: <a class="el" href="structcgroup__file__info.html#ad56dca35266f0f5f5c2666b946d72709">cgroup_file_info</a>
-</li>
-<li>enabled
-: <a class="el" href="structcontroller__data.html#a24be412cfb6c19f7a13a4bff9e55206e">controller_data</a>
-</li>
-<li>full_path
-: <a class="el" href="structcgroup__file__info.html#a4c61dc7f726ba0784ff8c71473dbc6e6">cgroup_file_info</a>
-</li>
-<li>hierarchy
-: <a class="el" href="structcontroller__data.html#a25e316f55473ca2b333b0d7e0ca644b4">controller_data</a>
-</li>
-<li>mount
-: <a class="el" href="structcg__mount__table__s.html#a9704fa3ec3674f6d433345ea52b6aeef">cg_mount_table_s</a>
-</li>
-<li>name
-: <a class="el" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">cg_mount_table_s</a>
-, <a class="el" href="structcgroup__mount__point.html#a849ccf1e77fffd5d45304c6adf0d2100">cgroup_mount_point</a>
-, <a class="el" href="structcontroller__data.html#a5474be4d8cc4553c94ca81c6a93f5a18">controller_data</a>
-</li>
-<li>num_cgroups
-: <a class="el" href="structcontroller__data.html#acd075c0bb48062bf720b68d0a30116eb">controller_data</a>
-</li>
-<li>parent
-: <a class="el" href="structcgroup__file__info.html#a739c7f87593e36d8589d3ffa80b57059">cgroup_file_info</a>
-</li>
-<li>path
-: <a class="el" href="structcgroup__file__info.html#a801424e68139c930e40ea24be4d96a68">cgroup_file_info</a>
-, <a class="el" href="structcgroup__mount__point.html#ad1e89dfc02cfd7341e2296086a4f251e">cgroup_mount_point</a>
-</li>
-<li>type
-: <a class="el" href="structcgroup__file__info.html#a955506601f440d05cb11e4ee6b455c55">cgroup_file_info</a>
-</li>
+<li>depth : <a class="el" href="structcgroup__file__info.html#ad56dca35266f0f5f5c2666b946d72709">cgroup_file_info</a></li>
+<li>enabled : <a class="el" href="structcontroller__data.html#a24be412cfb6c19f7a13a4bff9e55206e">controller_data</a></li>
+<li>full_path : <a class="el" href="structcgroup__file__info.html#a4c61dc7f726ba0784ff8c71473dbc6e6">cgroup_file_info</a></li>
+<li>hierarchy : <a class="el" href="structcontroller__data.html#a25e316f55473ca2b333b0d7e0ca644b4">controller_data</a></li>
+<li>mount : <a class="el" href="structcg__mount__table__s.html#a9704fa3ec3674f6d433345ea52b6aeef">cg_mount_table_s</a></li>
+<li>name : <a class="el" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">cg_mount_table_s</a>, <a class="el" href="structcgroup__mount__point.html#a849ccf1e77fffd5d45304c6adf0d2100">cgroup_mount_point</a>, <a class="el" href="structcontroller__data.html#a5474be4d8cc4553c94ca81c6a93f5a18">controller_data</a></li>
+<li>num_cgroups : <a class="el" href="structcontroller__data.html#acd075c0bb48062bf720b68d0a30116eb">controller_data</a></li>
+<li>parent : <a class="el" href="structcgroup__file__info.html#a739c7f87593e36d8589d3ffa80b57059">cgroup_file_info</a></li>
+<li>path : <a class="el" href="structcgroup__file__info.html#a801424e68139c930e40ea24be4d96a68">cgroup_file_info</a>, <a class="el" href="structcgroup__mount__point.html#ad1e89dfc02cfd7341e2296086a4f251e">cgroup_mount_point</a></li>
+<li>type : <a class="el" href="structcgroup__file__info.html#a955506601f440d05cb11e4ee6b455c55">cgroup_file_info</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: 5. Configuration</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
</div>
<div class="header">
- <div class="headertitle">
-<div class="title">5. Configuration</div> </div>
+ <div class="headertitle"><div class="title">5. Configuration</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader">Configuration file</h2></td></tr>
-<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp0e02ce690a683c3ba45b7ef59ad72acd"></a><code>libcgroup</code> can mount and create control groups and set their parameters as specified in a configuration file.</p>
+<tr><td class="ititle" colspan="2"><p ><a class="anchor" id="amgrp0e02ce690a683c3ba45b7ef59ad72acd"></a><code>libcgroup</code> can mount and create control groups and set their parameters as specified in a configuration file.</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>add this description?: These functions are mostly intended to be used by internal <code>libcgroup</code> tools, however they are fully supported and applications can benefit from them. </dd></dl>
</td></tr>
<tr class="memitem:ga8adfaca013333acf922a167f55b84140"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__config.html#ga8adfaca013333acf922a167f55b84140">cgroup_config_load_config</a> (const char *pathname)</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Function Documentation</h2>
-<a id="ga72066260cd31ceed7ecc1a648eba37f2"></a>
+<a id="ga72066260cd31ceed7ecc1a648eba37f2" name="ga72066260cd31ceed7ecc1a648eba37f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga72066260cd31ceed7ecc1a648eba37f2">◆ </a></span>cgroup_config_create_template_group()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Physically create a new control group in kernel, based on given control group template and configuration file. If given template is not set in configuration file, then the procedure works create the control group using <a class="el" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup()</a> function</p>
-<p>Templates are loaded using cgroup_load_templates_cache_from_files function, which must be preceded by cgroup_templates_cache_set_source_files call.</p>
-<p>The flags can alter the behavior of this function: CGFLAG_USE_TEMPLATE_CACHE: Use cached templates instead of parsing the config file</p>
+<p >Physically create a new control group in kernel, based on given control group template and configuration file. If given template is not set in configuration file, then the procedure works create the control group using <a class="el" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup()</a> function</p>
+<p >Templates are loaded using cgroup_load_templates_cache_from_files function, which must be preceded by cgroup_templates_cache_set_source_files call.</p>
+<p >The flags can alter the behavior of this function: CGFLAG_USE_TEMPLATE_CACHE: Use cached templates instead of parsing the config file</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">pathname</td><td>Name of the configuration file with template definitions </td></tr>
</div>
</div>
-<a id="ga8adfaca013333acf922a167f55b84140"></a>
+<a id="ga8adfaca013333acf922a167f55b84140" name="ga8adfaca013333acf922a167f55b84140"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8adfaca013333acf922a167f55b84140">◆ </a></span>cgroup_config_load_config()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Load configuration file and mount and create control groups described there. See cgconfig.conf man page for format of the file. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Load configuration file and mount and create control groups described there. See cgconfig.conf man page for format of the file. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">pathname</td><td>Name of the configuration file to load. </td></tr>
</table>
</div>
</div>
-<a id="ga2d3a252b2c0c61c8f64cb1fc41e370ea"></a>
+<a id="ga2d3a252b2c0c61c8f64cb1fc41e370ea" name="ga2d3a252b2c0c61c8f64cb1fc41e370ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2d3a252b2c0c61c8f64cb1fc41e370ea">◆ </a></span>cgroup_config_set_default()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Sets default permissions of groups created by subsequent <a class="el" href="group__group__config.html#ga8adfaca013333acf922a167f55b84140">cgroup_config_load_config()</a> calls. If a config file contains a 'default {}' section, the default permissions from the config file is then used.</p>
-<p>Use <a class="el" href="group__group__groups.html#ga6cd4733e5982ac2c92ee3cb3dbd10a31">cgroup_new_cgroup()</a> to create a dummy group and <a class="el" href="group__group__groups.html#ga53b9e13e30660c805ab5773d69397a43">cgroup_set_uid_gid()</a> and <a class="el" href="group__group__groups.html#gaa0400f1ff2fba7fbb6db82d97039d92b">cgroup_set_permissions()</a> to set its permissions. Use NO_UID_GID instead of GID/UID and NO_PERMS instead of file/directory permissions to let kernel decide the default permissions where you don't want specific user and/or permissions. Kernel then uses current user/group and permissions from umask then.</p>
+<p >Sets default permissions of groups created by subsequent <a class="el" href="group__group__config.html#ga8adfaca013333acf922a167f55b84140">cgroup_config_load_config()</a> calls. If a config file contains a 'default {}' section, the default permissions from the config file is then used.</p>
+<p >Use <a class="el" href="group__group__groups.html#gad34c82ead174988d418f3dcb003aaca7">cgroup_new_cgroup()</a> to create a dummy group and <a class="el" href="group__group__groups.html#ga53b9e13e30660c805ab5773d69397a43">cgroup_set_uid_gid()</a> and <a class="el" href="group__group__groups.html#gaa0400f1ff2fba7fbb6db82d97039d92b">cgroup_set_permissions()</a> to set its permissions. Use NO_UID_GID instead of GID/UID and NO_PERMS instead of file/directory permissions to let kernel decide the default permissions where you don't want specific user and/or permissions. Kernel then uses current user/group and permissions from umask then.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">new_default</td><td>New default permissions from this group are copied to libcgroup internal structures. I.e., this group can be freed immediatelly after this function returns. </td></tr>
</div>
</div>
-<a id="gaff77affa0b80ccf507b4b46cc0a8c085"></a>
+<a id="gaff77affa0b80ccf507b4b46cc0a8c085" name="gaff77affa0b80ccf507b4b46cc0a8c085"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaff77affa0b80ccf507b4b46cc0a8c085">◆ </a></span>cgroup_config_unload_config()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Delete all cgroups and unmount all mount points defined in specified config file.</p>
-<p>The groups are either removed recursively or only the empty ones, based on given flags. Mount point are always umounted only if they are empty, regardless of any flags.</p>
-<p>The groups are sorted before they are removed, so the removal of empty ones actually works (i.e. subgroups are removed first).</p>
+<p >Delete all cgroups and unmount all mount points defined in specified config file.</p>
+<p >The groups are either removed recursively or only the empty ones, based on given flags. Mount point are always umounted only if they are empty, regardless of any flags.</p>
+<p >The groups are sorted before they are removed, so the removal of empty ones actually works (i.e. subgroups are removed first).</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">pathname</td><td>Name of the configuration file to unload. </td></tr>
</div>
</div>
-<a id="ga6f8c41bb920565e674787fe6dabaef00"></a>
+<a id="ga6f8c41bb920565e674787fe6dabaef00" name="ga6f8c41bb920565e674787fe6dabaef00"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6f8c41bb920565e674787fe6dabaef00">◆ </a></span>cgroup_init_templates_cache()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Initializes the templates cache and load it from file pathname.</p>
-<p>Initializes the templates cache. </p><dl class="section return"><dt>Returns</dt><dd>0 on success, > 0 on error </dd></dl>
+<p >Initializes the templates cache and load it from file pathname.</p>
+<p >Initializes the templates cache. </p><dl class="section return"><dt>Returns</dt><dd>0 on success, > 0 on error </dd></dl>
</div>
</div>
-<a id="ga924860998c37da53cababe24163fc89b"></a>
+<a id="ga924860998c37da53cababe24163fc89b" name="ga924860998c37da53cababe24163fc89b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga924860998c37da53cababe24163fc89b">◆ </a></span>cgroup_load_templates_cache_from_files()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Load the templates cache from files. Before calling this function, cgroup_templates_cache_set_source_files has to be called first. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Load the templates cache from files. Before calling this function, cgroup_templates_cache_set_source_files has to be called first. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">file_index</td><td>index of file which was unable to be parsed </td></tr>
</table>
</div>
</div>
-<a id="ga89fe0d7943b29cc10d57b07abcdfa7b5"></a>
+<a id="ga89fe0d7943b29cc10d57b07abcdfa7b5" name="ga89fe0d7943b29cc10d57b07abcdfa7b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga89fe0d7943b29cc10d57b07abcdfa7b5">◆ </a></span>cgroup_reload_cached_templates()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Reloads the templates list from file pathname.</p>
-<p>Reloads the templates list, using the given configuration file. </p><dl class="section return"><dt>Returns</dt><dd>0 on success, > 0 on failure </dd></dl>
+<p >Reloads the templates list from file pathname.</p>
+<p >Reloads the templates list, using the given configuration file. </p><dl class="section return"><dt>Returns</dt><dd>0 on success, > 0 on failure </dd></dl>
</div>
</div>
-<a id="gacb09024dc469a1a1ff8cdebd8d0ab422"></a>
+<a id="gacb09024dc469a1a1ff8cdebd8d0ab422" name="gacb09024dc469a1a1ff8cdebd8d0ab422"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacb09024dc469a1a1ff8cdebd8d0ab422">◆ </a></span>cgroup_templates_cache_set_source_files()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Setting source files of templates. This function has to be called before any call of cgroup_load_templates_cache_from_files. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Setting source files of templates. This function has to be called before any call of cgroup_load_templates_cache_from_files. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tmpl_files</td><td></td></tr>
</table>
</div>
</div>
-<a id="ga85b285712354faca495193075035938d"></a>
+<a id="ga85b285712354faca495193075035938d" name="ga85b285712354faca495193075035938d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga85b285712354faca495193075035938d">◆ </a></span>cgroup_unload_cgroups()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Delete all control groups and unmount all hierarchies. </p>
+<p >Delete all control groups and unmount all hierarchies. </p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: 6. Error handling</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
</div>
<div class="header">
- <div class="headertitle">
-<div class="title">6. Error handling</div> </div>
+ <div class="headertitle"><div class="title">6. Error handling</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader">Error handling</h2></td></tr>
-<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrpaf042bafd560f7bd09b37efa40772311"></a>Unless states otherwise in documentation of a function, all functions return <code>int</code>, which is zero (0) when the function succeeds, and positive number if the function fails.</p>
-<p>The returned integer is one of the ECG* values described below. Value <a class="el" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba88111f9ca2e967cbf7565724444c0193">ECGOTHER</a> means that the error was caused by underlying OS and the real cause can be found by calling <a class="el" href="group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46">cgroup_get_last_errno()</a>. </p>
+<tr><td class="ititle" colspan="2"><p ><a class="anchor" id="amgrpaf042bafd560f7bd09b37efa40772311"></a>Unless states otherwise in documentation of a function, all functions return <code>int</code>, which is zero (0) when the function succeeds, and positive number if the function fails.</p>
+<p >The returned integer is one of the ECG* values described below. Value <a class="el" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba88111f9ca2e967cbf7565724444c0193">ECGOTHER</a> means that the error was caused by underlying OS and the real cause can be found by calling <a class="el" href="group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46">cgroup_get_last_errno()</a>. </p>
</td></tr>
<tr class="memitem:ga06fc87d81c62e9abb8790b6e5713c55b"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom">{ <br />
  <b>ECGROUPNOTCOMPILED</b> = 50000
<br />
}</td></tr>
<tr class="separator:ga06fc87d81c62e9abb8790b6e5713c55b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaeae1d51db8528c89d84501c745020e6b"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__errors.html#gaeae1d51db8528c89d84501c745020e6b">cgroup_strerror</a> (int code)</td></tr>
-<tr class="separator:gaeae1d51db8528c89d84501c745020e6b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7ee3be57533b25d597a2bfd19819307a"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__errors.html#ga7ee3be57533b25d597a2bfd19819307a">cgroup_strerror</a> (int code)</td></tr>
+<tr class="separator:ga7ee3be57533b25d597a2bfd19819307a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga29057c4aec05bef2b6bf2855ae5d5d46"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46">cgroup_get_last_errno</a> (void)</td></tr>
<tr class="separator:ga29057c4aec05bef2b6bf2855ae5d5d46"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga515eba7218b187ffe263b7d9ecb3ac1b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__errors.html#ga515eba7218b187ffe263b7d9ecb3ac1b">ECGRULESPARSEFAIL</a>   <a class="el" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55bac62bda67f3029c39ef456100008b1f39">ECGROUPPARSEFAIL</a></td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="ga515eba7218b187ffe263b7d9ecb3ac1b"></a>
+<a id="ga515eba7218b187ffe263b7d9ecb3ac1b" name="ga515eba7218b187ffe263b7d9ecb3ac1b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga515eba7218b187ffe263b7d9ecb3ac1b">◆ </a></span>ECGRULESPARSEFAIL</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Legacy definition of ECGRULESPARSEFAIL error code. </p>
+<p >Legacy definition of ECGRULESPARSEFAIL error code. </p>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
-<a id="ga06fc87d81c62e9abb8790b6e5713c55b"></a>
+<a id="ga06fc87d81c62e9abb8790b6e5713c55b" name="ga06fc87d81c62e9abb8790b6e5713c55b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga06fc87d81c62e9abb8790b6e5713c55b">◆ </a></span>anonymous enum</h2>
<div class="memitem">
</table>
</div><div class="memdoc">
<table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga06fc87d81c62e9abb8790b6e5713c55ba24a6584dd4238475a4e247bdf6956def"></a>ECGROUPMULTIMOUNTED </td><td class="fielddoc"><p>Controllers bound to different mount points </p>
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga06fc87d81c62e9abb8790b6e5713c55ba24a6584dd4238475a4e247bdf6956def" name="gga06fc87d81c62e9abb8790b6e5713c55ba24a6584dd4238475a4e247bdf6956def"></a>ECGROUPMULTIMOUNTED </td><td class="fielddoc"><p >Controllers bound to different mount points </p>
</td></tr>
-<tr><td class="fieldname"><a id="gga06fc87d81c62e9abb8790b6e5713c55ba88111f9ca2e967cbf7565724444c0193"></a>ECGOTHER </td><td class="fielddoc"><p>Represents error coming from other libraries like glibc. <code>libcgroup</code> users need to check <a class="el" href="group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46">cgroup_get_last_errno()</a> upon encountering this error. </p>
+<tr><td class="fieldname"><a id="gga06fc87d81c62e9abb8790b6e5713c55ba88111f9ca2e967cbf7565724444c0193" name="gga06fc87d81c62e9abb8790b6e5713c55ba88111f9ca2e967cbf7565724444c0193"></a>ECGOTHER </td><td class="fielddoc"><p >Represents error coming from other libraries like glibc. <code>libcgroup</code> users need to check <a class="el" href="group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46">cgroup_get_last_errno()</a> upon encountering this error. </p>
</td></tr>
-<tr><td class="fieldname"><a id="gga06fc87d81c62e9abb8790b6e5713c55bac62bda67f3029c39ef456100008b1f39"></a>ECGROUPPARSEFAIL </td><td class="fielddoc"><p>Failed to parse rules configuration file. </p>
+<tr><td class="fieldname"><a id="gga06fc87d81c62e9abb8790b6e5713c55bac62bda67f3029c39ef456100008b1f39" name="gga06fc87d81c62e9abb8790b6e5713c55bac62bda67f3029c39ef456100008b1f39"></a>ECGROUPPARSEFAIL </td><td class="fielddoc"><p >Failed to parse rules configuration file. </p>
</td></tr>
-<tr><td class="fieldname"><a id="gga06fc87d81c62e9abb8790b6e5713c55ba7c23c1a7cbfb7e8e9c66dd96b5c66d21"></a>ECGROUPNORULES </td><td class="fielddoc"><p>Rules list does not exist. </p>
+<tr><td class="fieldname"><a id="gga06fc87d81c62e9abb8790b6e5713c55ba7c23c1a7cbfb7e8e9c66dd96b5c66d21" name="gga06fc87d81c62e9abb8790b6e5713c55ba7c23c1a7cbfb7e8e9c66dd96b5c66d21"></a>ECGROUPNORULES </td><td class="fielddoc"><p >Rules list does not exist. </p>
</td></tr>
-<tr><td class="fieldname"><a id="gga06fc87d81c62e9abb8790b6e5713c55ba2724c2f0af0d3e3cea66027f6bf2e436"></a>ECGEOF </td><td class="fielddoc"><p>Not an real error, it just indicates that iterator has come to end of sequence and no more items are left. </p>
+<tr><td class="fieldname"><a id="gga06fc87d81c62e9abb8790b6e5713c55ba2724c2f0af0d3e3cea66027f6bf2e436" name="gga06fc87d81c62e9abb8790b6e5713c55ba2724c2f0af0d3e3cea66027f6bf2e436"></a>ECGEOF </td><td class="fielddoc"><p >Not an real error, it just indicates that iterator has come to end of sequence and no more items are left. </p>
</td></tr>
-<tr><td class="fieldname"><a id="gga06fc87d81c62e9abb8790b6e5713c55baf808b0e31be4bfbe8a21f800f913f9c0"></a>ECGCONFIGPARSEFAIL </td><td class="fielddoc"><p>Failed to parse config file (cgconfig.conf). </p>
+<tr><td class="fieldname"><a id="gga06fc87d81c62e9abb8790b6e5713c55baf808b0e31be4bfbe8a21f800f913f9c0" name="gga06fc87d81c62e9abb8790b6e5713c55baf808b0e31be4bfbe8a21f800f913f9c0"></a>ECGCONFIGPARSEFAIL </td><td class="fielddoc"><p >Failed to parse config file (cgconfig.conf). </p>
</td></tr>
-<tr><td class="fieldname"><a id="gga06fc87d81c62e9abb8790b6e5713c55ba94dbe90328ef8a212633ec464b9b9b11"></a>ECGNONEMPTY </td><td class="fielddoc"><p>Removing of a group failed because it was not empty. </p>
+<tr><td class="fieldname"><a id="gga06fc87d81c62e9abb8790b6e5713c55ba94dbe90328ef8a212633ec464b9b9b11" name="gga06fc87d81c62e9abb8790b6e5713c55ba94dbe90328ef8a212633ec464b9b9b11"></a>ECGNONEMPTY </td><td class="fielddoc"><p >Removing of a group failed because it was not empty. </p>
</td></tr>
-<tr><td class="fieldname"><a id="gga06fc87d81c62e9abb8790b6e5713c55ba33cc635e4cc4055b2c487f027fbdd960"></a>ECGNOVERSIONCONVERT </td><td class="fielddoc"><p>Failed to convert from cgroup v1 to/from cgroup v2 </p>
+<tr><td class="fieldname"><a id="gga06fc87d81c62e9abb8790b6e5713c55ba33cc635e4cc4055b2c487f027fbdd960" name="gga06fc87d81c62e9abb8790b6e5713c55ba33cc635e4cc4055b2c487f027fbdd960"></a>ECGNOVERSIONCONVERT </td><td class="fielddoc"><p >Failed to convert from cgroup v1 to/from cgroup v2 </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
-<a id="ga29057c4aec05bef2b6bf2855ae5d5d46"></a>
+<a id="ga29057c4aec05bef2b6bf2855ae5d5d46" name="ga29057c4aec05bef2b6bf2855ae5d5d46"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga29057c4aec05bef2b6bf2855ae5d5d46">◆ </a></span>cgroup_get_last_errno()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Return last errno, which caused ECGOTHER error. </p>
+<p >Return last errno, which caused ECGOTHER error. </p>
</div>
</div>
-<a id="gaeae1d51db8528c89d84501c745020e6b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gaeae1d51db8528c89d84501c745020e6b">◆ </a></span>cgroup_strerror()</h2>
+<a id="ga7ee3be57533b25d597a2bfd19819307a" name="ga7ee3be57533b25d597a2bfd19819307a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7ee3be57533b25d597a2bfd19819307a">◆ </a></span>cgroup_strerror()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">const char* cgroup_strerror </td>
+ <td class="memname">const char * cgroup_strerror </td>
<td>(</td>
<td class="paramtype">int </td>
<td class="paramname"><em>code</em></td><td>)</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Format error code to a human-readable English string. No internationalization is currently done. Returned pointer leads to <code>libcgroup</code> memory and must not be freed nor modified. The memory is rewritten by subsequent call to this function. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Format error code to a human-readable English string. No internationalization is currently done. Returned pointer leads to <code>libcgroup</code> memory and must not be freed nor modified. The memory is rewritten by subsequent call to this function. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">code</td><td>Error code for which the corresponding error string is returned. When <a class="el" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba88111f9ca2e967cbf7565724444c0193">ECGOTHER</a> is used, text with glibc's description of <a class="el" href="group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46">cgroup_get_last_errno()</a> value is returned. </td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: 2. Group manipulation API</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> </div>
- <div class="headertitle">
-<div class="title">2. Group manipulation API</div> </div>
+ <div class="headertitle"><div class="title">2. Group manipulation API</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structcgroup.html">cgroup</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader">Basic infrastructure</h2></td></tr>
-<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp8b151c1f58f3f15039d7fd770cc3dab8"></a><code>struct cgroup*</code> is the heart of <code>libcgroup</code> API. The structure is opaque to applications, all access to the structure is through appropriate functions.</p>
-<p>The most important information is that <b> one <code>struct cgroup*</code> can represent zero, one or more real control groups in kernel</b>. The <code>struct cgroup*</code> is identified by name of the group, which must be set by <a class="el" href="group__group__groups.html#ga6cd4733e5982ac2c92ee3cb3dbd10a31">cgroup_new_cgroup()</a>. Multiple controllers (aka subsystems) can be attached to one <code>struct cgroup*</code> using <a class="el" href="group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130">cgroup_add_controller()</a>. These controllers <b>can belong to different hierarchies</b>.</p>
-<p>This approach is different to the one in the Linux kernel - a control group must be part of exactly one hierarchy there. In <code>libcgroup</code>, a group can be part of multiple hierarchies, as long as the group name is the same.</p>
+<tr><td class="ititle" colspan="2"><p ><a class="anchor" id="amgrp8b151c1f58f3f15039d7fd770cc3dab8"></a><code>struct cgroup*</code> is the heart of <code>libcgroup</code> API. The structure is opaque to applications, all access to the structure is through appropriate functions.</p>
+<p >The most important information is that <b> one <code>struct cgroup*</code> can represent zero, one or more real control groups in kernel</b>. The <code>struct cgroup*</code> is identified by name of the group, which must be set by <a class="el" href="group__group__groups.html#gad34c82ead174988d418f3dcb003aaca7">cgroup_new_cgroup()</a>. Multiple controllers (aka subsystems) can be attached to one <code>struct cgroup*</code> using <a class="el" href="group__group__groups.html#ga3929afd6ced9fe877613286b5f06cf8d">cgroup_add_controller()</a>. These controllers <b>can belong to different hierarchies</b>.</p>
+<p >This approach is different to the one in the Linux kernel - a control group must be part of exactly one hierarchy there. In <code>libcgroup</code>, a group can be part of multiple hierarchies, as long as the group name is the same.</p>
<dl class="section user"><dt>Example:</dt><dd>Let there be following control groups: <div class="fragment"><div class="line">cpu,cpuacct:/</div>
<div class="line">cpu,cpuacct:/foo</div>
<div class="line">cpu,cpuacct:/bar</div>
<div class="line">freezer:/</div>
<div class="line">freezer:/foo</div>
</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" href="structcgroup.html">cgroup</a> *foo = <a class="code" href="group__group__groups.html#ga6cd4733e5982ac2c92ee3cb3dbd10a31">cgroup_new_cgroup</a>(<span class="stringliteral">"foo"</span>);</div>
-<div class="line"><a class="code" href="group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130">cgroup_add_controller</a>(foo, <span class="stringliteral">"cpu"</span>);</div>
-<div class="ttc" id="agroup__group__groups_html_ga6cd4733e5982ac2c92ee3cb3dbd10a31"><div class="ttname"><a href="group__group__groups.html#ga6cd4733e5982ac2c92ee3cb3dbd10a31">cgroup_new_cgroup</a></div><div class="ttdeci">struct cgroup * cgroup_new_cgroup(const char *name)</div><div class="ttdef"><b>Definition:</b> wrapper.c:44</div></div>
-<div class="ttc" id="agroup__group__groups_html_gaa2f9c2ac75fd7e56e5ec6fb970304130"><div class="ttname"><a href="group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130">cgroup_add_controller</a></div><div class="ttdeci">struct cgroup_controller * cgroup_add_controller(struct cgroup *cgroup, const char *name)</div><div class="ttdef"><b>Definition:</b> wrapper.c:56</div></div>
+<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:56</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:44</div></div>
<div class="ttc" id="astructcgroup_html"><div class="ttname"><a href="structcgroup.html">cgroup</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:114</div></div>
</div><!-- fragment --> Now, you can call e.g. <a class="el" href="group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565">cgroup_delete_cgroup()</a> and the group is deleted from the hierarchy. You can note that it's enough to add only one controller to the group to fully identify a group in <code>cpu,cpuacct</code> hierarchy.</dd></dl>
-<dl class="section user"><dt></dt><dd>Following code creates <code>struct cgroup*</code> structure, which represents <b>two</b> groups, <code>cpu,cpuacct:/foo</code> and <code>freezer:/foo</code>: <div class="fragment"><div class="line"><span class="keyword">struct </span><a class="code" href="structcgroup.html">cgroup</a> *foo = <a class="code" href="group__group__groups.html#ga6cd4733e5982ac2c92ee3cb3dbd10a31">cgroup_new_cgroup</a>(<span class="stringliteral">"foo"</span>);</div>
-<div class="line"><a class="code" href="group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130">cgroup_add_controller</a>(foo, <span class="stringliteral">"cpu"</span>);</div>
-<div class="line"><a class="code" href="group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130">cgroup_add_controller</a>(foo, <span class="stringliteral">"freezer"</span>);</div>
+<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 class="line"><a class="code hl_function" href="group__group__groups.html#ga3929afd6ced9fe877613286b5f06cf8d">cgroup_add_controller</a>(foo, <span class="stringliteral">"freezer"</span>);</div>
</div><!-- fragment --> Now, if you call e.g. <a class="el" href="group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565">cgroup_delete_cgroup()</a>, the group gets deleted from <b>both</b> hierarchies.</dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000002">Todo:</a></b></dt><dd>add some propaganda what's so great on this approach... I personally think it is broken and confusing (see TODOs below).</dd></dl>
-<p>Following functions are provided to create/destroy various libcgroup structures. Please note that none of these functions actually create or delete a cgroup in kernel! </p>
+<p >Following functions are provided to create/destroy various libcgroup structures. Please note that none of these functions actually create or delete a cgroup in kernel! </p>
</td></tr>
-<tr class="memitem:ga6cd4733e5982ac2c92ee3cb3dbd10a31"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structcgroup.html">cgroup</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__groups.html#ga6cd4733e5982ac2c92ee3cb3dbd10a31">cgroup_new_cgroup</a> (const char *name)</td></tr>
-<tr class="separator:ga6cd4733e5982ac2c92ee3cb3dbd10a31"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa2f9c2ac75fd7e56e5ec6fb970304130"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structcgroup__controller.html">cgroup_controller</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130">cgroup_add_controller</a> (struct <a class="el" href="structcgroup.html">cgroup</a> *<a class="el" href="structcgroup.html">cgroup</a>, const char *name)</td></tr>
-<tr class="separator:gaa2f9c2ac75fd7e56e5ec6fb970304130"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad34c82ead174988d418f3dcb003aaca7"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structcgroup.html">cgroup</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__groups.html#gad34c82ead174988d418f3dcb003aaca7">cgroup_new_cgroup</a> (const char *name)</td></tr>
+<tr class="separator:gad34c82ead174988d418f3dcb003aaca7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3929afd6ced9fe877613286b5f06cf8d"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structcgroup__controller.html">cgroup_controller</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__groups.html#ga3929afd6ced9fe877613286b5f06cf8d">cgroup_add_controller</a> (struct <a class="el" href="structcgroup.html">cgroup</a> *<a class="el" href="structcgroup.html">cgroup</a>, const char *name)</td></tr>
+<tr class="separator:ga3929afd6ced9fe877613286b5f06cf8d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gae870d271b789b5c54c2e3d35de3cd6f9"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__groups.html#gae870d271b789b5c54c2e3d35de3cd6f9">cgroup_add_all_controllers</a> (struct <a class="el" href="structcgroup.html">cgroup</a> *<a class="el" href="structcgroup.html">cgroup</a>)</td></tr>
<tr class="separator:gae870d271b789b5c54c2e3d35de3cd6f9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8335b0aec59c8f845639a7404affce05"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structcgroup__controller.html">cgroup_controller</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__groups.html#ga8335b0aec59c8f845639a7404affce05">cgroup_get_controller</a> (struct <a class="el" href="structcgroup.html">cgroup</a> *<a class="el" href="structcgroup.html">cgroup</a>, const char *name)</td></tr>
-<tr class="separator:ga8335b0aec59c8f845639a7404affce05"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6b60ab9187a883a2ae114f8d87191e27"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structcgroup__controller.html">cgroup_controller</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__groups.html#ga6b60ab9187a883a2ae114f8d87191e27">cgroup_get_controller</a> (struct <a class="el" href="structcgroup.html">cgroup</a> *<a class="el" href="structcgroup.html">cgroup</a>, const char *name)</td></tr>
+<tr class="separator:ga6b60ab9187a883a2ae114f8d87191e27"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab20fdb1ae479f8baac482336abf73900"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__groups.html#gab20fdb1ae479f8baac482336abf73900">cgroup_free</a> (struct <a class="el" href="structcgroup.html">cgroup</a> **<a class="el" href="structcgroup.html">cgroup</a>)</td></tr>
<tr class="separator:gab20fdb1ae479f8baac482336abf73900"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga92d27c9ff0d655838642a7aa68497596"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__groups.html#ga92d27c9ff0d655838642a7aa68497596">cgroup_free_controllers</a> (struct <a class="el" href="structcgroup.html">cgroup</a> *<a class="el" href="structcgroup.html">cgroup</a>)</td></tr>
<tr class="separator:ga2a7954a987e3fbf8eabcc94cf381353e"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader">Group manipulation API</h2></td></tr>
-<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp6b4054463bf55b809b07532413f393be"></a>Using following functions you can create and remove control groups and change their parameters. </p><dl class="section note"><dt>Note</dt><dd>All access to kernel is through previously mounted cgroup filesystems. <code>libcgroup</code> does not mount/unmount anything for you. </dd></dl>
+<tr><td class="ititle" colspan="2"><p ><a class="anchor" id="amgrp6b4054463bf55b809b07532413f393be"></a>Using following functions you can create and remove control groups and change their parameters. </p><dl class="section note"><dt>Note</dt><dd>All access to kernel is through previously mounted cgroup filesystems. <code>libcgroup</code> does not mount/unmount anything for you. </dd></dl>
</td></tr>
<tr class="memitem:gadb8e13df6064841d3c9707960f782fa7"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup</a> (struct <a class="el" href="structcgroup.html">cgroup</a> *<a class="el" href="structcgroup.html">cgroup</a>, int ignore_ownership)</td></tr>
<tr class="separator:gadb8e13df6064841d3c9707960f782fa7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="separator:ga860c1ec70189c969b2c8373fc1e96d36"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader">Other functions</h2></td></tr>
-<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrpb175402ebe89f00c62233c5453c5a243"></a>Helper functions to manipulate with control groups. </p>
+<tr><td class="ititle" colspan="2"><p ><a class="anchor" id="amgrpb175402ebe89f00c62233c5453c5a243"></a>Helper functions to manipulate with control groups. </p>
</td></tr>
<tr class="memitem:gad4ba31fe5a8bba63b33b1ea339b849e6"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup</a> (struct <a class="el" href="structcgroup.html">cgroup</a> *<a class="el" href="structcgroup.html">cgroup</a>)</td></tr>
<tr class="separator:gad4ba31fe5a8bba63b33b1ea339b849e6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="separator:gaa0400f1ff2fba7fbb6db82d97039d92b"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader">Group parameters</h2></td></tr>
-<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrpfd51c673001c3ce3c69cbaad587df3af"></a>These are functions can read or modify parameter of a group. </p><dl class="section note"><dt>Note</dt><dd>All these functions read/write parameters to <code>libcgorup</code> internal structures. Use <a class="el" href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup()</a> to load parameters from kernel to these internal structures and <a class="el" href="group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071">cgroup_modify_cgroup()</a> or <a class="el" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup()</a> to write changes to kernel. </dd></dl>
+<tr><td class="ititle" colspan="2"><p ><a class="anchor" id="amgrpfd51c673001c3ce3c69cbaad587df3af"></a>These are functions can read or modify parameter of a group. </p><dl class="section note"><dt>Note</dt><dd>All these functions read/write parameters to <code>libcgorup</code> internal structures. Use <a class="el" href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup()</a> to load parameters from kernel to these internal structures and <a class="el" href="group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071">cgroup_modify_cgroup()</a> or <a class="el" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup()</a> to write changes to kernel. </dd></dl>
</td></tr>
<tr class="memitem:ga4817c68ab791c09c07b663c29b3fb029"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__groups.html#ga4817c68ab791c09c07b663c29b3fb029">cgroup_add_value_string</a> (struct <a class="el" href="structcgroup__controller.html">cgroup_controller</a> *controller, const char *name, const char *value)</td></tr>
<tr class="separator:ga4817c68ab791c09c07b663c29b3fb029"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="separator:gafb24892bc221cffee0f5fe07f64d54d7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga25115085978ce2a8d671e7876cc49c1d"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__groups.html#ga25115085978ce2a8d671e7876cc49c1d">cgroup_get_value_name_count</a> (struct <a class="el" href="structcgroup__controller.html">cgroup_controller</a> *controller)</td></tr>
<tr class="separator:ga25115085978ce2a8d671e7876cc49c1d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga16ca75fd16eda7cfc642421111e9a331"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__groups.html#ga16ca75fd16eda7cfc642421111e9a331">cgroup_get_value_name</a> (struct <a class="el" href="structcgroup__controller.html">cgroup_controller</a> *controller, int index)</td></tr>
-<tr class="separator:ga16ca75fd16eda7cfc642421111e9a331"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9d01743fd3f97014e08fc67149ec5f0b"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__groups.html#ga9d01743fd3f97014e08fc67149ec5f0b">cgroup_get_value_name</a> (struct <a class="el" href="structcgroup__controller.html">cgroup_controller</a> *controller, int index)</td></tr>
+<tr class="separator:ga9d01743fd3f97014e08fc67149ec5f0b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga08a4fe913d59f61a39e61b8b02537dc2"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__groups.html#ga08a4fe913d59f61a39e61b8b02537dc2">cgroup_get_procs</a> (char *name, char *controller, pid_t **pids, int *size)</td></tr>
<tr class="separator:ga08a4fe913d59f61a39e61b8b02537dc2"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaef0bf6cd480f2dcb5e964de151a27dd1"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__groups.html#gaef0bf6cd480f2dcb5e964de151a27dd1">cg_chmod_recursive</a> (struct <a class="el" href="structcgroup.html">cgroup</a> *<a class="el" href="structcgroup.html">cgroup</a>, mode_t dir_mode, int dirm_change, mode_t file_mode, int filem_change)</td></tr>
<tr class="separator:gaef0bf6cd480f2dcb5e964de151a27dd1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac9b5ff481de08ba8fdfcbd42940d2cbf"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__groups.html#gac9b5ff481de08ba8fdfcbd42940d2cbf">cgroup_get_cgroup_name</a> (struct <a class="el" href="structcgroup.html">cgroup</a> *<a class="el" href="structcgroup.html">cgroup</a>)</td></tr>
-<tr class="separator:gac9b5ff481de08ba8fdfcbd42940d2cbf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1a54be8341476951bd5bce94f521db6e"><td class="memItemLeft" align="right" valign="top"><a id="ga1a54be8341476951bd5bce94f521db6e"></a>
+<tr class="memitem:gab60b1f528fbfb17d69a88f499c7071aa"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__groups.html#gab60b1f528fbfb17d69a88f499c7071aa">cgroup_get_cgroup_name</a> (struct <a class="el" href="structcgroup.html">cgroup</a> *<a class="el" href="structcgroup.html">cgroup</a>)</td></tr>
+<tr class="separator:gab60b1f528fbfb17d69a88f499c7071aa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1a54be8341476951bd5bce94f521db6e"><td class="memItemLeft" align="right" valign="top"><a id="ga1a54be8341476951bd5bce94f521db6e" name="ga1a54be8341476951bd5bce94f521db6e"></a>
int </td><td class="memItemRight" valign="bottom"><b>cgroup_convert_cgroup</b> (struct <a class="el" href="structcgroup.html">cgroup</a> *const out_cgroup, enum cg_version_t out_version, const struct <a class="el" href="structcgroup.html">cgroup</a> *const in_cgroup, enum cg_version_t in_version)</td></tr>
<tr class="separator:ga1a54be8341476951bd5bce94f521db6e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga452d8c5e95c8d694e26e7efda045360f"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__groups.html#ga452d8c5e95c8d694e26e7efda045360f">cgroup_get_controller_version</a> (const char *const controller, enum cg_version_t *const version)</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="gad4ffad2eccf9fcbfa8a551e269e0ad58"></a>
+<a id="gad4ffad2eccf9fcbfa8a551e269e0ad58" name="gad4ffad2eccf9fcbfa8a551e269e0ad58"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad4ffad2eccf9fcbfa8a551e269e0ad58">◆ </a></span>NO_PERMS</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Uninitialized file/directory permissions used for task/control files. </p>
+<p >Uninitialized file/directory permissions used for task/control files. </p>
</div>
</div>
-<a id="ga2a7954a987e3fbf8eabcc94cf381353e"></a>
+<a id="ga2a7954a987e3fbf8eabcc94cf381353e" name="ga2a7954a987e3fbf8eabcc94cf381353e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2a7954a987e3fbf8eabcc94cf381353e">◆ </a></span>NO_UID_GID</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Uninitialized UID/GID used for task/control files. </p>
+<p >Uninitialized UID/GID used for task/control files. </p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
-<a id="gaef0bf6cd480f2dcb5e964de151a27dd1"></a>
+<a id="gaef0bf6cd480f2dcb5e964de151a27dd1" name="gaef0bf6cd480f2dcb5e964de151a27dd1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaef0bf6cd480f2dcb5e964de151a27dd1">◆ </a></span>cg_chmod_recursive()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Change permission of files and directories of given group </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Change permission of files and directories of given group </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cgroup</td><td>The cgroup which permissions should be changed </td></tr>
<tr><td class="paramname">dir_mode</td><td>The permission mode of group directory </td></tr>
</div>
</div>
-<a id="gae870d271b789b5c54c2e3d35de3cd6f9"></a>
+<a id="gae870d271b789b5c54c2e3d35de3cd6f9" name="gae870d271b789b5c54c2e3d35de3cd6f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae870d271b789b5c54c2e3d35de3cd6f9">◆ </a></span>cgroup_add_all_controllers()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Attach all mounted controllers to given cgroup. This function just modifies internal libcgroup structure, not the kernel control group.</p>
+<p >Attach all mounted controllers to given cgroup. This function just modifies internal libcgroup structure, not the kernel control group.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cgroup</td><td></td></tr>
</div>
</div>
-<a id="gaa2f9c2ac75fd7e56e5ec6fb970304130"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gaa2f9c2ac75fd7e56e5ec6fb970304130">◆ </a></span>cgroup_add_controller()</h2>
+<a id="ga3929afd6ced9fe877613286b5f06cf8d" name="ga3929afd6ced9fe877613286b5f06cf8d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3929afd6ced9fe877613286b5f06cf8d">◆ </a></span>cgroup_add_controller()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">struct <a class="el" href="structcgroup__controller.html">cgroup_controller</a>* cgroup_add_controller </td>
+ <td class="memname">struct <a class="el" href="structcgroup__controller.html">cgroup_controller</a> * cgroup_add_controller </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structcgroup.html">cgroup</a> * </td>
<td class="paramname"><em>cgroup</em>, </td>
</tr>
</table>
</div><div class="memdoc">
-<p>Attach new controller to cgroup. This function just modifies internal libcgroup structure, not the kernel control group.</p>
+<p >Attach new controller to cgroup. This function just modifies internal libcgroup structure, not the kernel control group.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cgroup</td><td></td></tr>
</div>
</div>
-<a id="ga4b191a600f84b00ea7afd12c01d918f3"></a>
+<a id="ga4b191a600f84b00ea7afd12c01d918f3" name="ga4b191a600f84b00ea7afd12c01d918f3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4b191a600f84b00ea7afd12c01d918f3">◆ </a></span>cgroup_add_value_bool()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Add parameter and its value to internal <code>libcgroup</code> structures. Use <a class="el" href="group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071">cgroup_modify_cgroup()</a> or <a class="el" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup()</a> to write it to kernel.</p>
+<p >Add parameter and its value to internal <code>libcgroup</code> structures. Use <a class="el" href="group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071">cgroup_modify_cgroup()</a> or <a class="el" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup()</a> to write it to kernel.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">controller</td><td></td></tr>
</div>
</div>
-<a id="ga6c973bb5ce99e7a91def2032f23d7087"></a>
+<a id="ga6c973bb5ce99e7a91def2032f23d7087" name="ga6c973bb5ce99e7a91def2032f23d7087"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6c973bb5ce99e7a91def2032f23d7087">◆ </a></span>cgroup_add_value_int64()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Add parameter and its value to internal <code>libcgroup</code> structures. Use <a class="el" href="group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071">cgroup_modify_cgroup()</a> or <a class="el" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup()</a> to write it to kernel. Content of the value is copied to internal structures and is not needed after return from the function.</p>
+<p >Add parameter and its value to internal <code>libcgroup</code> structures. Use <a class="el" href="group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071">cgroup_modify_cgroup()</a> or <a class="el" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup()</a> to write it to kernel. Content of the value is copied to internal structures and is not needed after return from the function.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">controller</td><td></td></tr>
</div>
</div>
-<a id="ga4817c68ab791c09c07b663c29b3fb029"></a>
+<a id="ga4817c68ab791c09c07b663c29b3fb029" name="ga4817c68ab791c09c07b663c29b3fb029"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4817c68ab791c09c07b663c29b3fb029">◆ </a></span>cgroup_add_value_string()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Add parameter and its value to internal <code>libcgroup</code> structures. Use <a class="el" href="group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071">cgroup_modify_cgroup()</a> or <a class="el" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup()</a> to write it to kernel.</p>
+<p >Add parameter and its value to internal <code>libcgroup</code> structures. Use <a class="el" href="group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071">cgroup_modify_cgroup()</a> or <a class="el" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup()</a> to write it to kernel.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">controller</td><td></td></tr>
</div>
</div>
-<a id="gad9d2216205b96278c626122f8d5e63bb"></a>
+<a id="gad9d2216205b96278c626122f8d5e63bb" name="gad9d2216205b96278c626122f8d5e63bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad9d2216205b96278c626122f8d5e63bb">◆ </a></span>cgroup_add_value_uint64()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Add parameter and its value to internal <code>libcgroup</code> structures. Use <a class="el" href="group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071">cgroup_modify_cgroup()</a> or <a class="el" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup()</a> to write it to kernel.</p>
+<p >Add parameter and its value to internal <code>libcgroup</code> structures. Use <a class="el" href="group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071">cgroup_modify_cgroup()</a> or <a class="el" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup()</a> to write it to kernel.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">controller</td><td></td></tr>
</div>
</div>
-<a id="ga86898b59e50335f99fe84a11fa38d3fc"></a>
+<a id="ga86898b59e50335f99fe84a11fa38d3fc" name="ga86898b59e50335f99fe84a11fa38d3fc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga86898b59e50335f99fe84a11fa38d3fc">◆ </a></span>cgroup_compare_cgroup()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Compare names, owners, controllers, parameters and values of two groups.</p>
+<p >Compare names, owners, controllers, parameters and values of two groups.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cgroup_a</td><td></td></tr>
</div>
</div>
-<a id="gab1725c50c49cec4b0bdad1f26b150ca7"></a>
+<a id="gab1725c50c49cec4b0bdad1f26b150ca7" name="gab1725c50c49cec4b0bdad1f26b150ca7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab1725c50c49cec4b0bdad1f26b150ca7">◆ </a></span>cgroup_compare_controllers()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Compare names, parameters and values of two controllers.</p>
+<p >Compare names, parameters and values of two controllers.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cgca</td><td></td></tr>
</div>
</div>
-<a id="gaa981a95e0917d3167601a4c1b392336a"></a>
+<a id="gaa981a95e0917d3167601a4c1b392336a" name="gaa981a95e0917d3167601a4c1b392336a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa981a95e0917d3167601a4c1b392336a">◆ </a></span>cgroup_copy_cgroup()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Copy all controllers, their parameters and values. Group name, permissions and ownerships are not coppied. All existing controllers in the source group are discarded.</p>
+<p >Copy all controllers, their parameters and values. Group name, permissions and ownerships are not coppied. All existing controllers in the source group are discarded.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dst</td><td>Destination group. </td></tr>
</dd>
</dl>
<p>@dst: Destination control group @src: Source from which values will be copied to dst</p>
-<p>Create a duplicate copy of src in dst. This will be useful for those who that intend to create new instances based on an existing control group </p>
+<p >Create a duplicate copy of src in dst. This will be useful for those who that intend to create new instances based on an existing control group </p>
</div>
</div>
-<a id="gadb8e13df6064841d3c9707960f782fa7"></a>
+<a id="gadb8e13df6064841d3c9707960f782fa7" name="gadb8e13df6064841d3c9707960f782fa7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadb8e13df6064841d3c9707960f782fa7">◆ </a></span>cgroup_create_cgroup()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Physically create a control group in kernel. The group is created in all hierarchies, which cover controllers added by <a class="el" href="group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130">cgroup_add_controller()</a>. All parameters set by cgroup_add_value_* functions are written. The created groups has owner which was set by <a class="el" href="group__group__groups.html#ga53b9e13e30660c805ab5773d69397a43">cgroup_set_uid_gid()</a> and permissions set by cgroup_set_permissions. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Physically create a control group in kernel. The group is created in all hierarchies, which cover controllers added by <a class="el" href="group__group__groups.html#ga3929afd6ced9fe877613286b5f06cf8d">cgroup_add_controller()</a>. All parameters set by cgroup_add_value_* functions are written. The created groups has owner which was set by <a class="el" href="group__group__groups.html#ga53b9e13e30660c805ab5773d69397a43">cgroup_set_uid_gid()</a> and permissions set by cgroup_set_permissions. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cgroup</td><td></td></tr>
<tr><td class="paramname">ignore_ownership</td><td>When nozero, all errors are ignored when setting owner of the group and/or its tasks file. </td></tr>
</dd>
</dl>
<p>cgroup_create_cgroup creates a new control group. struct cgroup *cgroup: The control group to be created</p>
-<p>returns 0 on success. We recommend calling cg_delete_cgroup if this routine fails. That should do the cleanup operation. If ECGCANTSETVALUE is returned, the group was created successfully but not all controller parameters were successfully set. </p>
+<p >returns 0 on success. We recommend calling cg_delete_cgroup if this routine fails. That should do the cleanup operation. If ECGCANTSETVALUE is returned, the group was created successfully but not all controller parameters were successfully set. </p>
</div>
</div>
-<a id="ga90e1ce96f3cb540f7e82d076dd938f62"></a>
+<a id="ga90e1ce96f3cb540f7e82d076dd938f62" name="ga90e1ce96f3cb540f7e82d076dd938f62"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga90e1ce96f3cb540f7e82d076dd938f62">◆ </a></span>cgroup_create_cgroup_from_parent()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Physically create new control group in kernel, with all parameters and values copied from its parent group. The group is created in all hierarchies, where the parent group exists. I.e. following code creates subgroup in all hierarchies, because all of them have root (=parent) group. </p><div class="fragment"><div class="line"><span class="keyword">struct </span><a class="code" href="structcgroup.html">cgroup</a> *foo = <a class="code" href="group__group__groups.html#ga6cd4733e5982ac2c92ee3cb3dbd10a31">cgroup_new_cgroup</a>(<span class="stringliteral">"foo"</span>);</div>
-<div class="line"><a class="code" href="group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62">cgroup_create_cgroup_from_parent</a>(foo, 0);</div>
+<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:2669</div></div>
-</div><!-- fragment --> <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000006">Todo:</a></b></dt><dd>what is this good for? Why the list of controllers added by <a class="el" href="group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130">cgroup_add_controller()</a> is not used, like in <a class="el" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup()</a>? I can't crate subgroup of root group in just one hierarchy with this function!</dd></dl>
+</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">
<tr><td class="paramname">cgroup</td><td>The cgroup to create. Only it's name is used, everything else is discarded. </td></tr>
</div>
</div>
-<a id="ga1dca18434e5d6be30c28c556da94f565"></a>
+<a id="ga1dca18434e5d6be30c28c556da94f565" name="ga1dca18434e5d6be30c28c556da94f565"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1dca18434e5d6be30c28c556da94f565">◆ </a></span>cgroup_delete_cgroup()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Physically remove a control group from kernel. The group is removed from all hierarchies, which cover controllers added by <a class="el" href="group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130">cgroup_add_controller()</a> or <a class="el" href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup()</a>. All tasks inside the group are automatically moved to parent group.</p>
-<p>The group being removed must be empty, i.e. without subgroups. Use <a class="el" href="group__group__groups.html#ga860c1ec70189c969b2c8373fc1e96d36">cgroup_delete_cgroup_ext()</a> for recursive delete.</p>
+<p >Physically remove a control group from kernel. The group is removed from all hierarchies, which cover controllers added by <a class="el" href="group__group__groups.html#ga3929afd6ced9fe877613286b5f06cf8d">cgroup_add_controller()</a> or <a class="el" href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup()</a>. All tasks inside the group are automatically moved to parent group.</p>
+<p >The group being removed must be empty, i.e. without subgroups. Use <a class="el" href="group__group__groups.html#ga860c1ec70189c969b2c8373fc1e96d36">cgroup_delete_cgroup_ext()</a> for recursive delete.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cgroup</td><td></td></tr>
</dd>
</dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000008">Todo:</a></b></dt><dd>what is ignore_migration good for? rmdir() will fail if tasks were not moved. </dd></dl>
-<p>cgroup_delete cgroup deletes a control group. struct cgroup *cgroup takes the group which is to be deleted.</p>
-<p>returns 0 on success. </p>
+<p >cgroup_delete cgroup deletes a control group. struct cgroup *cgroup takes the group which is to be deleted.</p>
+<p >returns 0 on success. </p>
</div>
</div>
-<a id="ga860c1ec70189c969b2c8373fc1e96d36"></a>
+<a id="ga860c1ec70189c969b2c8373fc1e96d36" name="ga860c1ec70189c969b2c8373fc1e96d36"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga860c1ec70189c969b2c8373fc1e96d36">◆ </a></span>cgroup_delete_cgroup_ext()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Physically remove a control group from kernel. All tasks are automatically moved to parent group. If #CGFLAG_DELETE_IGNORE_MIGRATION flag is used, the errors that occurred during the task movement are ignored. #CGFLAG_DELETE_RECURSIVE flag specifies that all subgroups should be removed too. If root group is being removed with this flag specified, all subgroups are removed but the root group itself is left undeleted. </p><dl class="section see"><dt>See also</dt><dd>cgroup_delete_flag.</dd></dl>
+<p >Physically remove a control group from kernel. All tasks are automatically moved to parent group. If #CGFLAG_DELETE_IGNORE_MIGRATION flag is used, the errors that occurred during the task movement are ignored. #CGFLAG_DELETE_RECURSIVE flag specifies that all subgroups should be removed too. If root group is being removed with this flag specified, all subgroups are removed but the root group itself is left undeleted. </p><dl class="section see"><dt>See also</dt><dd>cgroup_delete_flag.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cgroup</td><td></td></tr>
</div>
</div>
-<a id="gab20fdb1ae479f8baac482336abf73900"></a>
+<a id="gab20fdb1ae479f8baac482336abf73900" name="gab20fdb1ae479f8baac482336abf73900"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab20fdb1ae479f8baac482336abf73900">◆ </a></span>cgroup_free()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Free internal <code>cgroup</code> structure. This function frees also all controllers attached to the <code>cgroup</code>, including all parameters and their values. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Free internal <code>cgroup</code> structure. This function frees also all controllers attached to the <code>cgroup</code>, including all parameters and their values. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cgroup</td><td></td></tr>
</table>
</div>
</div>
-<a id="ga92d27c9ff0d655838642a7aa68497596"></a>
+<a id="ga92d27c9ff0d655838642a7aa68497596" name="ga92d27c9ff0d655838642a7aa68497596"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga92d27c9ff0d655838642a7aa68497596">◆ </a></span>cgroup_free_controllers()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Free internal list of controllers from the group. </p><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000004">Todo:</a></b></dt><dd>should this function be public??? </dd></dl>
+<p >Free internal list of controllers from the group. </p><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000004">Todo:</a></b></dt><dd>should this function be public??? </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cgroup</td><td></td></tr>
</div>
</div>
-<a id="gad4ba31fe5a8bba63b33b1ea339b849e6"></a>
+<a id="gad4ba31fe5a8bba63b33b1ea339b849e6" name="gad4ba31fe5a8bba63b33b1ea339b849e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad4ba31fe5a8bba63b33b1ea339b849e6">◆ </a></span>cgroup_get_cgroup()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Read all information regarding the group from kernel. Based on name of the group, list of controllers and all parameters and their values are read from all hierarchies, where a group with given name exists. All existing controllers are replaced. I.e. following code will fill <code>root</code> with controllers from all hierarchies, because the root group is available in all of them. </p><div class="fragment"><div class="line"><span class="keyword">struct </span><a class="code" href="structcgroup.html">cgroup</a> *root = <a class="code" href="group__group__groups.html#ga6cd4733e5982ac2c92ee3cb3dbd10a31">cgroup_new_cgroup</a>(<span class="stringliteral">"/"</span>);</div>
-<div class="line"><a class="code" href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup</a>(root);</div>
+<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:3222</div></div>
-</div><!-- fragment --><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000009">Todo:</a></b></dt><dd>what is this function good for? Why is not considered only the list of controllers attached by <a class="el" href="group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130">cgroup_add_controller()</a>? What owners will return <a class="el" href="group__group__groups.html#ga007d21c304d9cc6e948dc0ae51ecfa86">cgroup_get_uid_gid()</a> if the group is in multiple hierarchies, each with different owner of tasks file?</dd></dl>
+</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">
<tr><td class="paramname">cgroup</td><td>The cgroup to load. Only it's name is used, everything else is replaced. </td></tr>
</div>
</div>
-<a id="gac9b5ff481de08ba8fdfcbd42940d2cbf"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gac9b5ff481de08ba8fdfcbd42940d2cbf">◆ </a></span>cgroup_get_cgroup_name()</h2>
+<a id="gab60b1f528fbfb17d69a88f499c7071aa" name="gab60b1f528fbfb17d69a88f499c7071aa"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab60b1f528fbfb17d69a88f499c7071aa">◆ </a></span>cgroup_get_cgroup_name()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">char* cgroup_get_cgroup_name </td>
+ <td class="memname">char * cgroup_get_cgroup_name </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structcgroup.html">cgroup</a> * </td>
<td class="paramname"><em>cgroup</em></td><td>)</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Get the name of the cgroup from a given cgroup </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Get the name of the cgroup from a given cgroup </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cgroup</td><td>The cgroup whose name is needed </td></tr>
</table>
</div>
</div>
-<a id="ga8335b0aec59c8f845639a7404affce05"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga8335b0aec59c8f845639a7404affce05">◆ </a></span>cgroup_get_controller()</h2>
+<a id="ga6b60ab9187a883a2ae114f8d87191e27" name="ga6b60ab9187a883a2ae114f8d87191e27"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6b60ab9187a883a2ae114f8d87191e27">◆ </a></span>cgroup_get_controller()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">struct <a class="el" href="structcgroup__controller.html">cgroup_controller</a>* cgroup_get_controller </td>
+ <td class="memname">struct <a class="el" href="structcgroup__controller.html">cgroup_controller</a> * cgroup_get_controller </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structcgroup.html">cgroup</a> * </td>
<td class="paramname"><em>cgroup</em>, </td>
</tr>
</table>
</div><div class="memdoc">
-<p>Return appropriate controller from given group. The controller must be added before using <a class="el" href="group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130">cgroup_add_controller()</a> or loaded from kernel using <a class="el" href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup()</a>. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Return appropriate controller from given group. The controller must be added before using <a class="el" href="group__group__groups.html#ga3929afd6ced9fe877613286b5f06cf8d">cgroup_add_controller()</a> or loaded from kernel using <a class="el" href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup()</a>. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cgroup</td><td></td></tr>
<tr><td class="paramname">name</td><td>Name of the controller, e.g. "freezer". </td></tr>
</div>
</div>
-<a id="ga452d8c5e95c8d694e26e7efda045360f"></a>
+<a id="ga452d8c5e95c8d694e26e7efda045360f" name="ga452d8c5e95c8d694e26e7efda045360f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga452d8c5e95c8d694e26e7efda045360f">◆ </a></span>cgroup_get_controller_version()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Get the cgroup version of a controller. Version is set to CGROUP_UNK if the version cannot be determined.</p>
+<p >Get the cgroup version of a controller. Version is set to CGROUP_UNK if the version cannot be determined.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">controller</td><td>The controller of interest </td></tr>
</div>
</div>
-<a id="ga08a4fe913d59f61a39e61b8b02537dc2"></a>
+<a id="ga08a4fe913d59f61a39e61b8b02537dc2" name="ga08a4fe913d59f61a39e61b8b02537dc2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga08a4fe913d59f61a39e61b8b02537dc2">◆ </a></span>cgroup_get_procs()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Get the list of process in a cgroup. This list is guaranteed to be sorted. It is not necessary that it is unique. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Get the list of process in a cgroup. This list is guaranteed to be sorted. It is not necessary that it is unique. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">name</td><td>The name of the cgroup </td></tr>
<tr><td class="paramname">controller</td><td>The name of the controller </td></tr>
</div>
</div>
-<a id="ga007d21c304d9cc6e948dc0ae51ecfa86"></a>
+<a id="ga007d21c304d9cc6e948dc0ae51ecfa86" name="ga007d21c304d9cc6e948dc0ae51ecfa86"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga007d21c304d9cc6e948dc0ae51ecfa86">◆ </a></span>cgroup_get_uid_gid()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Return owners of the group's <code>tasks</code> file and control files. The data is read from <code>libcgroup</code> internal <code>cgroup</code> structure, use <a class="el" href="group__group__groups.html#ga53b9e13e30660c805ab5773d69397a43">cgroup_set_uid_gid()</a> or <a class="el" href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup()</a> to fill it. </p>
+<p >Return owners of the group's <code>tasks</code> file and control files. The data is read from <code>libcgroup</code> internal <code>cgroup</code> structure, use <a class="el" href="group__group__groups.html#ga53b9e13e30660c805ab5773d69397a43">cgroup_set_uid_gid()</a> or <a class="el" href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup()</a> to fill it. </p>
</div>
</div>
-<a id="gab95007148eac89b7e935d93a4524787b"></a>
+<a id="gab95007148eac89b7e935d93a4524787b" name="gab95007148eac89b7e935d93a4524787b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab95007148eac89b7e935d93a4524787b">◆ </a></span>cgroup_get_value_bool()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Read a parameter value from <code>libcgroup</code> internal structures. Use <code><a class="el" href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup()</a></code> to fill these structures with data from kernel.</p>
+<p >Read a parameter value from <code>libcgroup</code> internal structures. Use <code><a class="el" href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup()</a></code> to fill these structures with data from kernel.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">controller</td><td></td></tr>
</div>
</div>
-<a id="ga0fe9b05f26b3cab21fc446c9a2700526"></a>
+<a id="ga0fe9b05f26b3cab21fc446c9a2700526" name="ga0fe9b05f26b3cab21fc446c9a2700526"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0fe9b05f26b3cab21fc446c9a2700526">◆ </a></span>cgroup_get_value_int64()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Read a parameter value from <code>libcgroup</code> internal structures. Use <code><a class="el" href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup()</a></code> to fill these structures with data from kernel.</p>
+<p >Read a parameter value from <code>libcgroup</code> internal structures. Use <code><a class="el" href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup()</a></code> to fill these structures with data from kernel.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">controller</td><td></td></tr>
</div>
</div>
-<a id="ga16ca75fd16eda7cfc642421111e9a331"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga16ca75fd16eda7cfc642421111e9a331">◆ </a></span>cgroup_get_value_name()</h2>
+<a id="ga9d01743fd3f97014e08fc67149ec5f0b" name="ga9d01743fd3f97014e08fc67149ec5f0b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9d01743fd3f97014e08fc67149ec5f0b">◆ </a></span>cgroup_get_value_name()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">char* cgroup_get_value_name </td>
+ <td class="memname">char * cgroup_get_value_name </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structcgroup__controller.html">cgroup_controller</a> * </td>
<td class="paramname"><em>controller</em>, </td>
</tr>
</table>
</div><div class="memdoc">
-<p>Return the name of parameter of controller at given index. The index goes from 0 to <a class="el" href="group__group__groups.html#ga25115085978ce2a8d671e7876cc49c1d">cgroup_get_value_name_count()</a>-1. Use this function to list all parameter of the controller.</p>
+<p >Return the name of parameter of controller at given index. The index goes from 0 to <a class="el" href="group__group__groups.html#ga25115085978ce2a8d671e7876cc49c1d">cgroup_get_value_name_count()</a>-1. Use this function to list all parameter of the controller.</p>
<dl class="section note"><dt>Note</dt><dd>The returned value is pointer to internal <code>libcgroup</code> structure, do not free it.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
</div>
</div>
-<a id="ga25115085978ce2a8d671e7876cc49c1d"></a>
+<a id="ga25115085978ce2a8d671e7876cc49c1d" name="ga25115085978ce2a8d671e7876cc49c1d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga25115085978ce2a8d671e7876cc49c1d">◆ </a></span>cgroup_get_value_name_count()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Return the number of variables for the specified controller in <code>libcgroup</code> internal structures. Use <a class="el" href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup()</a> to fill these structures with data from kernel. Use this function together with <a class="el" href="group__group__groups.html#ga16ca75fd16eda7cfc642421111e9a331">cgroup_get_value_name()</a> to list all parameters of a group.</p>
+<p >Return the number of variables for the specified controller in <code>libcgroup</code> internal structures. Use <a class="el" href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup()</a> to fill these structures with data from kernel. Use this function together with <a class="el" href="group__group__groups.html#ga9d01743fd3f97014e08fc67149ec5f0b">cgroup_get_value_name()</a> to list all parameters of a group.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">controller</td><td></td></tr>
</div>
</div>
-<a id="gafaa51e5ffe09f8ad05585a1d3b6f7fa9"></a>
+<a id="gafaa51e5ffe09f8ad05585a1d3b6f7fa9" name="gafaa51e5ffe09f8ad05585a1d3b6f7fa9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafaa51e5ffe09f8ad05585a1d3b6f7fa9">◆ </a></span>cgroup_get_value_string()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Read a parameter value from <code>libcgroup</code> internal structures. Use <code><a class="el" href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup()</a></code> to fill these structures with data from kernel. It's up to the caller to free returned value.</p>
-<p>This function works only for 'short' parameters. Use <a class="el" href="group__group__iterators.html#ga1138e47f124f0f634586db5e0c4ae5de">cgroup_read_stats_begin()</a>, <a class="el" href="group__group__iterators.html#gaf95587508fc15d74fd5ed0df58024be7">cgroup_read_stats_next()</a> and <a class="el" href="group__group__iterators.html#gaba386d9db6cadc6ad85c2552f63447bb">cgroup_read_stats_end()</a> to read <code>stats</code> parameter, which can be longer than libcgroup's internal buffers. </p><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000010">Todo:</a></b></dt><dd>rephrase, it's too vague... How big is the buffer actually?</dd></dl>
+<p >Read a parameter value from <code>libcgroup</code> internal structures. Use <code><a class="el" href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup()</a></code> to fill these structures with data from kernel. It's up to the caller to free returned value.</p>
+<p >This function works only for 'short' parameters. Use <a class="el" href="group__group__iterators.html#ga1138e47f124f0f634586db5e0c4ae5de">cgroup_read_stats_begin()</a>, <a class="el" href="group__group__iterators.html#gaf95587508fc15d74fd5ed0df58024be7">cgroup_read_stats_next()</a> and <a class="el" href="group__group__iterators.html#gaba386d9db6cadc6ad85c2552f63447bb">cgroup_read_stats_end()</a> to read <code>stats</code> parameter, which can be longer than libcgroup's internal buffers. </p><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000010">Todo:</a></b></dt><dd>rephrase, it's too vague... How big is the buffer actually?</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">controller</td><td></td></tr>
</div>
</div>
-<a id="ga951861259c0373895bfb637fce337312"></a>
+<a id="ga951861259c0373895bfb637fce337312" name="ga951861259c0373895bfb637fce337312"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga951861259c0373895bfb637fce337312">◆ </a></span>cgroup_get_value_uint64()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Read a parameter value from <code>libcgroup</code> internal structures. Use <code><a class="el" href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup()</a></code> to fill these structures with data from kernel.</p>
+<p >Read a parameter value from <code>libcgroup</code> internal structures. Use <code><a class="el" href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup()</a></code> to fill these structures with data from kernel.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">controller</td><td></td></tr>
</div>
</div>
-<a id="ga31ba5e865ae8d58b4453c0ef06d2c071"></a>
+<a id="ga31ba5e865ae8d58b4453c0ef06d2c071" name="ga31ba5e865ae8d58b4453c0ef06d2c071"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga31ba5e865ae8d58b4453c0ef06d2c071">◆ </a></span>cgroup_modify_cgroup()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Physically modify a control group in kernel. All parameters added by cgroup_add_value_ or cgroup_set_value_ are written. Currently it's not possible to change and owner of a group.</p>
+<p >Physically modify a control group in kernel. All parameters added by cgroup_add_value_ or cgroup_set_value_ are written. Currently it's not possible to change and owner of a group.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">cgroup</td><td>cgroup_modify_cgroup modifies the cgroup control files. struct cgroup *cgroup: The name will be the cgroup to be modified. The values will be the values to be modified, those not mentioned in the structure will not be modified.</td></tr>
+ <tr><td class="paramname">cgroup</td><td></td></tr>
</table>
</dd>
</dl>
-<p>The uids cannot be modified yet.</p>
-<p>returns 0 on success. </p>
+<p>cgroup_modify_cgroup modifies the cgroup control files. struct cgroup *cgroup: The name will be the cgroup to be modified. The values will be the values to be modified, those not mentioned in the structure will not be modified.</p>
+<p >The uids cannot be modified yet.</p>
+<p >returns 0 on success. </p>
</div>
</div>
-<a id="ga6cd4733e5982ac2c92ee3cb3dbd10a31"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga6cd4733e5982ac2c92ee3cb3dbd10a31">◆ </a></span>cgroup_new_cgroup()</h2>
+<a id="gad34c82ead174988d418f3dcb003aaca7" name="gad34c82ead174988d418f3dcb003aaca7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad34c82ead174988d418f3dcb003aaca7">◆ </a></span>cgroup_new_cgroup()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">struct <a class="el" href="structcgroup.html">cgroup</a>* cgroup_new_cgroup </td>
+ <td class="memname">struct <a class="el" href="structcgroup.html">cgroup</a> * cgroup_new_cgroup </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>name</em></td><td>)</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Allocate new cgroup structure. This function itself does not create new control group in kernel, only new <code>struct cgroup</code> inside libcgroup!</p>
+<p >Allocate new cgroup structure. This function itself does not create new control group in kernel, only new <code>struct cgroup</code> inside libcgroup!</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">name</td><td>Path to the group, relative from root group. Use <code>"/"</code> or <code>"."</code> for the root group itself and <code>"/foo/bar/baz"</code> or <code>"foo/bar/baz"</code> for subgroups. </td></tr>
</div>
</div>
-<a id="gaa0400f1ff2fba7fbb6db82d97039d92b"></a>
+<a id="gaa0400f1ff2fba7fbb6db82d97039d92b" name="gaa0400f1ff2fba7fbb6db82d97039d92b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa0400f1ff2fba7fbb6db82d97039d92b">◆ </a></span>cgroup_set_permissions()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Stores given file permissions of the group's control and tasks files into the <code>cgroup</code> data structure. Use NO_PERMS if permissions shouldn't be changed or a value which applicable to chmod(2). Please note that the given permissions are masked with the file owner's permissions. For example if a control file has permissions 640 and control_fperm is 471 the result will be 460. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Stores given file permissions of the group's control and tasks files into the <code>cgroup</code> data structure. Use NO_PERMS if permissions shouldn't be changed or a value which applicable to chmod(2). Please note that the given permissions are masked with the file owner's permissions. For example if a control file has permissions 640 and control_fperm is 471 the result will be 460. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cgroup</td><td></td></tr>
<tr><td class="paramname">control_dperm</td><td>Directory permission for the group. </td></tr>
</div>
</div>
-<a id="ga53b9e13e30660c805ab5773d69397a43"></a>
+<a id="ga53b9e13e30660c805ab5773d69397a43" name="ga53b9e13e30660c805ab5773d69397a43"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga53b9e13e30660c805ab5773d69397a43">◆ </a></span>cgroup_set_uid_gid()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Set owner of the group control files and the <code>tasks</code> file. This function modifies only <code>libcgroup</code> internal <code>cgroup</code> structure, use <a class="el" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup()</a> afterwards to create the group with given owners.</p>
+<p >Set owner of the group control files and the <code>tasks</code> file. This function modifies only <code>libcgroup</code> internal <code>cgroup</code> structure, use <a class="el" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup()</a> afterwards to create the group with given owners.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cgroup</td><td></td></tr>
</div>
</div>
-<a id="gafb24892bc221cffee0f5fe07f64d54d7"></a>
+<a id="gafb24892bc221cffee0f5fe07f64d54d7" name="gafb24892bc221cffee0f5fe07f64d54d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafb24892bc221cffee0f5fe07f64d54d7">◆ </a></span>cgroup_set_value_bool()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Set a parameter value in <code>libcgroup</code> internal structures. Use <a class="el" href="group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071">cgroup_modify_cgroup()</a> or <a class="el" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup()</a> to write it to kernel.</p>
+<p >Set a parameter value in <code>libcgroup</code> internal structures. Use <a class="el" href="group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071">cgroup_modify_cgroup()</a> or <a class="el" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup()</a> to write it to kernel.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">controller</td><td></td></tr>
</div>
</div>
-<a id="gaa5c39e51035cc43dd26a3c620441a956"></a>
+<a id="gaa5c39e51035cc43dd26a3c620441a956" name="gaa5c39e51035cc43dd26a3c620441a956"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa5c39e51035cc43dd26a3c620441a956">◆ </a></span>cgroup_set_value_int64()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Set a parameter value in <code>libcgroup</code> internal structures. Use <a class="el" href="group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071">cgroup_modify_cgroup()</a> or <a class="el" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup()</a> to write it to kernel. Content of the value is copied to internal structures and is not needed after return from the function.</p>
+<p >Set a parameter value in <code>libcgroup</code> internal structures. Use <a class="el" href="group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071">cgroup_modify_cgroup()</a> or <a class="el" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup()</a> to write it to kernel. Content of the value is copied to internal structures and is not needed after return from the function.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">controller</td><td></td></tr>
</div>
</div>
-<a id="ga938febc02b59cbeb8e4ceb2dc7fdac82"></a>
+<a id="ga938febc02b59cbeb8e4ceb2dc7fdac82" name="ga938febc02b59cbeb8e4ceb2dc7fdac82"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga938febc02b59cbeb8e4ceb2dc7fdac82">◆ </a></span>cgroup_set_value_string()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Set a parameter value in <code>libcgroup</code> internal structures. Use <a class="el" href="group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071">cgroup_modify_cgroup()</a> or <a class="el" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup()</a> to write it to kernel.</p>
+<p >Set a parameter value in <code>libcgroup</code> internal structures. Use <a class="el" href="group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071">cgroup_modify_cgroup()</a> or <a class="el" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup()</a> to write it to kernel.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">controller</td><td></td></tr>
</div>
</div>
-<a id="gade01aa1fe30ccc968af9fe8a3bc821e5"></a>
+<a id="gade01aa1fe30ccc968af9fe8a3bc821e5" name="gade01aa1fe30ccc968af9fe8a3bc821e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gade01aa1fe30ccc968af9fe8a3bc821e5">◆ </a></span>cgroup_set_value_uint64()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Set a parameter value in <code>libcgroup</code> internal structures. Use <a class="el" href="group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071">cgroup_modify_cgroup()</a> or <a class="el" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup()</a> to write it to kernel.</p>
+<p >Set a parameter value in <code>libcgroup</code> internal structures. Use <a class="el" href="group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071">cgroup_modify_cgroup()</a> or <a class="el" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup()</a> to write it to kernel.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">controller</td><td></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: 3. Iterators</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> </div>
- <div class="headertitle">
-<div class="title">3. Iterators</div> </div>
+ <div class="headertitle"><div class="title">3. Iterators</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structcgroup__file__info.html">cgroup_file_info</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader">Walk through control group filesystem</h2></td></tr>
-<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp4ac52e300efc01d54bd65f9b942faaa8"></a>This iterator returns all subgroups of given control group. It can be used to return all groups in given hierarchy, when root control group is provided. </p>
+<tr><td class="ititle" colspan="2"><p ><a class="anchor" id="amgrp4ac52e300efc01d54bd65f9b942faaa8"></a>This iterator returns all subgroups of given control group. It can be used to return all groups in given hierarchy, when root control group is provided. </p>
</td></tr>
<tr class="memitem:ga29a572cbc0c07e2b02dfa0f1ac0067d3"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__iterators.html#ga29a572cbc0c07e2b02dfa0f1ac0067d3">cgroup_walk_type</a> { <a class="el" href="group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3af865296e6a0e55cff574fbb132b9f913">CGROUP_WALK_TYPE_PRE_DIR</a> = 0x1
, <a class="el" href="group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3abf3c31227768960bd6622d2562aae3e1">CGROUP_WALK_TYPE_POST_DIR</a> = 0x2
<tr class="separator:gad348f041e283860cbf6bcea567e23a21"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader">Read group stats</h2></td></tr>
-<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrpd712caea12358af9b539876bf9c6d35d"></a>libcgroup's <a class="el" href="group__group__groups.html#gafaa51e5ffe09f8ad05585a1d3b6f7fa9">cgroup_get_value_string()</a> reads only relatively short parametrs of a group. Use following functions to read <code>stats</code> parameter, which can be quite long. </p>
+<tr><td class="ititle" colspan="2"><p ><a class="anchor" id="amgrpd712caea12358af9b539876bf9c6d35d"></a>libcgroup's <a class="el" href="group__group__groups.html#gafaa51e5ffe09f8ad05585a1d3b6f7fa9">cgroup_get_value_string()</a> reads only relatively short parametrs of a group. Use following functions to read <code>stats</code> parameter, which can be quite long. </p>
</td></tr>
<tr class="memitem:ga1138e47f124f0f634586db5e0c4ae5de"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__iterators.html#ga1138e47f124f0f634586db5e0c4ae5de">cgroup_read_stats_begin</a> (const char *controller, const char *path, void **handle, struct <a class="el" href="structcgroup__stat.html">cgroup_stat</a> *stat)</td></tr>
<tr class="separator:ga1138e47f124f0f634586db5e0c4ae5de"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="separator:ga55d2eac2af703794651d344c073566f5"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader">List all tasks in a group</h2></td></tr>
-<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrpc8286aaacaa539a428f4a99aa8e10e00"></a>Use following functions to read <code>tasks</code> file of a group. </p>
+<tr><td class="ititle" colspan="2"><p ><a class="anchor" id="amgrpc8286aaacaa539a428f4a99aa8e10e00"></a>Use following functions to read <code>tasks</code> file of a group. </p>
</td></tr>
<tr class="memitem:gad7218154192f733120e1025cc19d0a36"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__iterators.html#gad7218154192f733120e1025cc19d0a36">cgroup_get_task_begin</a> (const char *<a class="el" href="structcgroup.html">cgroup</a>, const char *controller, void **handle, pid_t *pid)</td></tr>
<tr class="separator:gad7218154192f733120e1025cc19d0a36"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="separator:gaeb955e5f4da551268380b1271d478816"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader">List mounted controllers</h2></td></tr>
-<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrpc06e462ef3ee4003a1adc5e1638946e8"></a>Use following function to list mounted controllers and to see, how they are mounted together in hierarchies. Use <a class="el" href="group__group__iterators.html#gad48ef653388ca6739a9b6bbb9d7da82e">cgroup_get_all_controller_begin()</a> (see later) to list all controllers, including those which are not mounted. </p>
+<tr><td class="ititle" colspan="2"><p ><a class="anchor" id="amgrpc06e462ef3ee4003a1adc5e1638946e8"></a>Use following function to list mounted controllers and to see, how they are mounted together in hierarchies. Use <a class="el" href="group__group__iterators.html#gad48ef653388ca6739a9b6bbb9d7da82e">cgroup_get_all_controller_begin()</a> (see later) to list all controllers, including those which are not mounted. </p>
</td></tr>
<tr class="memitem:ga5f9f21138f9b18912a16b21a45b53c44"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__iterators.html#ga5f9f21138f9b18912a16b21a45b53c44">cgroup_get_controller_begin</a> (void **handle, struct <a class="el" href="structcgroup__mount__point.html">cgroup_mount_point</a> *info)</td></tr>
<tr class="separator:ga5f9f21138f9b18912a16b21a45b53c44"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="separator:gab485cda2bc9640bacbf61f1953ae750c"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader">List all controllers</h2></td></tr>
-<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrpb6269b04e6e8f08ded4fa3a625b184c5"></a>Use following functions to list all controllers, including those which are not mounted. The controllers are returned in the same order as in /proc/cgroups file, i.e. mostly random. </p>
+<tr><td class="ititle" colspan="2"><p ><a class="anchor" id="amgrpb6269b04e6e8f08ded4fa3a625b184c5"></a>Use following functions to list all controllers, including those which are not mounted. The controllers are returned in the same order as in /proc/cgroups file, i.e. mostly random. </p>
</td></tr>
<tr class="memitem:gad48ef653388ca6739a9b6bbb9d7da82e"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__iterators.html#gad48ef653388ca6739a9b6bbb9d7da82e">cgroup_get_all_controller_begin</a> (void **handle, struct <a class="el" href="structcontroller__data.html">controller_data</a> *info)</td></tr>
<tr class="separator:gad48ef653388ca6739a9b6bbb9d7da82e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="separator:ga0c467d42a2c9a916a0edd339a6d7afc8"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader">List all mount points of a controller.</h2></td></tr>
-<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp94d44f4084f2c56a84c03e6a422aa76d"></a>Use following functions to list all mount points of a hierarchy with given controller. </p>
+<tr><td class="ititle" colspan="2"><p ><a class="anchor" id="amgrp94d44f4084f2c56a84c03e6a422aa76d"></a>Use following functions to list all mount points of a hierarchy with given controller. </p>
</td></tr>
<tr class="memitem:ga18a3c6fe7da42b9da96ce34dce1e31b8"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__iterators.html#ga18a3c6fe7da42b9da96ce34dce1e31b8">cgroup_get_subsys_mount_point_begin</a> (const char *controller, void **handle, char *path)</td></tr>
<tr class="separator:ga18a3c6fe7da42b9da96ce34dce1e31b8"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="separator:ga9c9b0f1921c205bd25bfc6c1d20486eb"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>So-called iterators are a code pattern to retrieve various data from libcgroup in distinct chunks, for example when an application needs to read list of groups in a hierarchy, it uses iterator to get one group at a time. Iterator is opaque to the application, the application sees only <code>void* handle</code> pointer, which is managed internally by <code>libcgroup</code>. Each iterator provides at least these functions:</p><ul>
+<p >So-called iterators are a code pattern to retrieve various data from libcgroup in distinct chunks, for example when an application needs to read list of groups in a hierarchy, it uses iterator to get one group at a time. Iterator is opaque to the application, the application sees only <code>void* handle</code> pointer, which is managed internally by <code>libcgroup</code>. Each iterator provides at least these functions:</p><ul>
<li><code>int <em>iterator_name</em>_begin(void **handle, my_type *item)</code><ul>
<li>Initialize the iterator, store pointer to it into the <code>handle</code>.</li>
<li>Return the first element in the iterator, let's say it's <code>my_type</code>.</li>
<div class="line"> <span class="comment">// process the item here</span></div>
<div class="line"> ret = iterator_name_begin(&handle, &item);</div>
<div class="line">}</div>
-<div class="line"><span class="keywordflow">if</span> (ret != <a class="code" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba2724c2f0af0d3e3cea66027f6bf2e436">ECGEOF</a>) {</div>
+<div class="line"><span class="keywordflow">if</span> (ret != <a class="code hl_enumvalue" href="group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba2724c2f0af0d3e3cea66027f6bf2e436">ECGEOF</a>) {</div>
<div class="line"> <span class="comment">// process the error here</span></div>
<div class="line">}</div>
<div class="line">iterator_name_end(&handle);</div>
</li>
</ul>
<h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="ga55d2eac2af703794651d344c073566f5"></a>
+<a id="ga55d2eac2af703794651d344c073566f5" name="ga55d2eac2af703794651d344c073566f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga55d2eac2af703794651d344c073566f5">◆ </a></span>CG_VALUE_MAX</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Maximum length of a value in stats file. </p>
+<p >Maximum length of a value in stats file. </p>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
-<a id="ga608b4aa32e2db58fed34771a6a272444"></a>
+<a id="ga608b4aa32e2db58fed34771a6a272444" name="ga608b4aa32e2db58fed34771a6a272444"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga608b4aa32e2db58fed34771a6a272444">◆ </a></span>cgroup_file_type</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Type of returned entity. </p>
+<p >Type of returned entity. </p>
<table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga608b4aa32e2db58fed34771a6a272444ad925cc45f1b34fe80e14fc6b05269740"></a>CGROUP_FILE_TYPE_FILE </td><td class="fielddoc"><p>File. </p>
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga608b4aa32e2db58fed34771a6a272444ad925cc45f1b34fe80e14fc6b05269740" name="gga608b4aa32e2db58fed34771a6a272444ad925cc45f1b34fe80e14fc6b05269740"></a>CGROUP_FILE_TYPE_FILE </td><td class="fielddoc"><p >File. </p>
</td></tr>
-<tr><td class="fieldname"><a id="gga608b4aa32e2db58fed34771a6a272444a5418798fc4bf9634429c6af167a0e7c3"></a>CGROUP_FILE_TYPE_DIR </td><td class="fielddoc"><p>Directory. </p>
+<tr><td class="fieldname"><a id="gga608b4aa32e2db58fed34771a6a272444a5418798fc4bf9634429c6af167a0e7c3" name="gga608b4aa32e2db58fed34771a6a272444a5418798fc4bf9634429c6af167a0e7c3"></a>CGROUP_FILE_TYPE_DIR </td><td class="fielddoc"><p >Directory. </p>
</td></tr>
-<tr><td class="fieldname"><a id="gga608b4aa32e2db58fed34771a6a272444a24e202c59f318e63ad8cafcc1b4b102b"></a>CGROUP_FILE_TYPE_OTHER </td><td class="fielddoc"><p>Directory. </p><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000013">Todo:</a></b></dt><dd>really? </dd></dl>
+<tr><td class="fieldname"><a id="gga608b4aa32e2db58fed34771a6a272444a24e202c59f318e63ad8cafcc1b4b102b" name="gga608b4aa32e2db58fed34771a6a272444a24e202c59f318e63ad8cafcc1b4b102b"></a>CGROUP_FILE_TYPE_OTHER </td><td class="fielddoc"><p >Directory. </p><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000013">Todo:</a></b></dt><dd>really? </dd></dl>
</td></tr>
</table>
</div>
</div>
-<a id="ga29a572cbc0c07e2b02dfa0f1ac0067d3"></a>
+<a id="ga29a572cbc0c07e2b02dfa0f1ac0067d3" name="ga29a572cbc0c07e2b02dfa0f1ac0067d3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga29a572cbc0c07e2b02dfa0f1ac0067d3">◆ </a></span>cgroup_walk_type</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Type of the walk. </p>
+<p >Type of the walk. </p>
<table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga29a572cbc0c07e2b02dfa0f1ac0067d3af865296e6a0e55cff574fbb132b9f913"></a>CGROUP_WALK_TYPE_PRE_DIR </td><td class="fielddoc"><p>Pre-order directory walk, return a directory first and then its subdirectories. E.g. directories would be returned in this order: </p><div class="fragment"><div class="line">/</div>
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga29a572cbc0c07e2b02dfa0f1ac0067d3af865296e6a0e55cff574fbb132b9f913" name="gga29a572cbc0c07e2b02dfa0f1ac0067d3af865296e6a0e55cff574fbb132b9f913"></a>CGROUP_WALK_TYPE_PRE_DIR </td><td class="fielddoc"><p >Pre-order directory walk, return a directory first and then its subdirectories. E.g. directories would be returned in this order: </p><div class="fragment"><div class="line">/</div>
<div class="line">/group</div>
<div class="line">/group/subgroup1</div>
<div class="line">/group/subgroup1/subsubgroup</div>
<div class="line">/group/subgroup2</div>
</div><!-- fragment --> </td></tr>
-<tr><td class="fieldname"><a id="gga29a572cbc0c07e2b02dfa0f1ac0067d3abf3c31227768960bd6622d2562aae3e1"></a>CGROUP_WALK_TYPE_POST_DIR </td><td class="fielddoc"><p>Post-order directory walk, return subdirectories of a directory first and then the directory itself. E.g. directories would be returned in this order: </p><div class="fragment"><div class="line">/group/subgroup1/subsubgroup</div>
+<tr><td class="fieldname"><a id="gga29a572cbc0c07e2b02dfa0f1ac0067d3abf3c31227768960bd6622d2562aae3e1" name="gga29a572cbc0c07e2b02dfa0f1ac0067d3abf3c31227768960bd6622d2562aae3e1"></a>CGROUP_WALK_TYPE_POST_DIR </td><td class="fielddoc"><p >Post-order directory walk, return subdirectories of a directory first and then the directory itself. E.g. directories would be returned in this order: </p><div class="fragment"><div class="line">/group/subgroup1/subsubgroup</div>
<div class="line">/group/subgroup1</div>
<div class="line">/group/subgroup2</div>
<div class="line">/group</div>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
-<a id="gad48ef653388ca6739a9b6bbb9d7da82e"></a>
+<a id="gad48ef653388ca6739a9b6bbb9d7da82e" name="gad48ef653388ca6739a9b6bbb9d7da82e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad48ef653388ca6739a9b6bbb9d7da82e">◆ </a></span>cgroup_get_all_controller_begin()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Read the first of controllers from /proc/cgroups. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Read the first of controllers from /proc/cgroups. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>Handle to be used for iteration. </td></tr>
<tr><td class="paramname">info</td><td>The structure which will be filled with controller data. </td></tr>
</div>
</div>
-<a id="ga0c467d42a2c9a916a0edd339a6d7afc8"></a>
+<a id="ga0c467d42a2c9a916a0edd339a6d7afc8" name="ga0c467d42a2c9a916a0edd339a6d7afc8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0c467d42a2c9a916a0edd339a6d7afc8">◆ </a></span>cgroup_get_all_controller_end()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Release the iterator </p>
+<p >Release the iterator </p>
</div>
</div>
-<a id="ga3d98a04b29b1fe409db1114b7aa76809"></a>
+<a id="ga3d98a04b29b1fe409db1114b7aa76809" name="ga3d98a04b29b1fe409db1114b7aa76809"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3d98a04b29b1fe409db1114b7aa76809">◆ </a></span>cgroup_get_all_controller_next()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Read next controllers from /proc/cgroups. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Read next controllers from /proc/cgroups. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>Handle to be used for iteration. </td></tr>
<tr><td class="paramname">info</td><td>The structure which will be filled with controller data. </td></tr>
</div>
</div>
-<a id="ga5f9f21138f9b18912a16b21a45b53c44"></a>
+<a id="ga5f9f21138f9b18912a16b21a45b53c44" name="ga5f9f21138f9b18912a16b21a45b53c44"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5f9f21138f9b18912a16b21a45b53c44">◆ </a></span>cgroup_get_controller_begin()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Read the mount table to give a list where each controller is mounted. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Read the mount table to give a list where each controller is mounted. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>Handle to be used for iteration. </td></tr>
<tr><td class="paramname">info</td><td>The variable where the path to the controller is stored. </td></tr>
</div>
</div>
-<a id="gab485cda2bc9640bacbf61f1953ae750c"></a>
+<a id="gab485cda2bc9640bacbf61f1953ae750c" name="gab485cda2bc9640bacbf61f1953ae750c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab485cda2bc9640bacbf61f1953ae750c">◆ </a></span>cgroup_get_controller_end()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Release the iterator. </p>
+<p >Release the iterator. </p>
</div>
</div>
-<a id="ga926b70423b6c087c21a14670cd23cd7d"></a>
+<a id="ga926b70423b6c087c21a14670cd23cd7d" name="ga926b70423b6c087c21a14670cd23cd7d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga926b70423b6c087c21a14670cd23cd7d">◆ </a></span>cgroup_get_controller_next()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Read the next mounted controller. While walking through the mount table, the controllers are returned in order of their mount points, i.e. controllers mounted together in one hierarchy are returned next to each other. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Read the next mounted controller. While walking through the mount table, the controllers are returned in order of their mount points, i.e. controllers mounted together in one hierarchy are returned next to each other. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>Handle to be used for iteration. </td></tr>
<tr><td class="paramname">info</td><td>The variable where the path to the controller is stored. </td></tr>
</div>
</div>
-<a id="ga18a3c6fe7da42b9da96ce34dce1e31b8"></a>
+<a id="ga18a3c6fe7da42b9da96ce34dce1e31b8" name="ga18a3c6fe7da42b9da96ce34dce1e31b8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga18a3c6fe7da42b9da96ce34dce1e31b8">◆ </a></span>cgroup_get_subsys_mount_point_begin()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Read the first mount point of the hierarchy with given controller. The first is the same as the mount point returned by cgroup_get_subsys_mount_point(). </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Read the first mount point of the hierarchy with given controller. The first is the same as the mount point returned by cgroup_get_subsys_mount_point(). </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>Handle to be used for iteration. </td></tr>
<tr><td class="paramname">controller</td><td>Controller name. </td></tr>
</div>
</div>
-<a id="ga9c9b0f1921c205bd25bfc6c1d20486eb"></a>
+<a id="ga9c9b0f1921c205bd25bfc6c1d20486eb" name="ga9c9b0f1921c205bd25bfc6c1d20486eb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9c9b0f1921c205bd25bfc6c1d20486eb">◆ </a></span>cgroup_get_subsys_mount_point_end()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Release the iterator. </p>
+<p >Release the iterator. </p>
</div>
</div>
-<a id="ga3d66997158cb8a334317923ad94cc789"></a>
+<a id="ga3d66997158cb8a334317923ad94cc789" name="ga3d66997158cb8a334317923ad94cc789"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3d66997158cb8a334317923ad94cc789">◆ </a></span>cgroup_get_subsys_mount_point_next()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Read next mount point of the hierarchy with given controller. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Read next mount point of the hierarchy with given controller. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>Handle to be used for iteration. </td></tr>
<tr><td class="paramname">path</td><td>Buffer to fill the path into. The buffer must be at least FILENAME_MAX characters long. </td></tr>
</div>
</div>
-<a id="gad7218154192f733120e1025cc19d0a36"></a>
+<a id="gad7218154192f733120e1025cc19d0a36" name="gad7218154192f733120e1025cc19d0a36"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad7218154192f733120e1025cc19d0a36">◆ </a></span>cgroup_get_task_begin()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Read the tasks file to get the list of tasks in a cgroup. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Read the tasks file to get the list of tasks in a cgroup. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cgroup</td><td>Name of the cgroup. </td></tr>
<tr><td class="paramname">controller</td><td>Name of the cgroup subsystem. </td></tr>
</div>
</div>
-<a id="gaeb955e5f4da551268380b1271d478816"></a>
+<a id="gaeb955e5f4da551268380b1271d478816" name="gaeb955e5f4da551268380b1271d478816"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaeb955e5f4da551268380b1271d478816">◆ </a></span>cgroup_get_task_end()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Release the iterator. </p>
+<p >Release the iterator. </p>
</div>
</div>
-<a id="gaf3a0364682b7449ddccfb0862bbb565e"></a>
+<a id="gaf3a0364682b7449ddccfb0862bbb565e" name="gaf3a0364682b7449ddccfb0862bbb565e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf3a0364682b7449ddccfb0862bbb565e">◆ </a></span>cgroup_get_task_next()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Read the next task value. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Read the next task value. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>The handle used for iterating. </td></tr>
<tr><td class="paramname">pid</td><td>The variable where the value will be stored.</td></tr>
</div>
</div>
-<a id="ga1138e47f124f0f634586db5e0c4ae5de"></a>
+<a id="ga1138e47f124f0f634586db5e0c4ae5de" name="ga1138e47f124f0f634586db5e0c4ae5de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1138e47f124f0f634586db5e0c4ae5de">◆ </a></span>cgroup_read_stats_begin()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Read the statistics values (= <code>stats</code> parameter) for the specified controller and control group. One line is returned per <a class="el" href="group__group__iterators.html#ga1138e47f124f0f634586db5e0c4ae5de">cgroup_read_stats_begin()</a> and <a class="el" href="group__group__iterators.html#gaf95587508fc15d74fd5ed0df58024be7">cgroup_read_stats_next()</a> call. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Read the statistics values (= <code>stats</code> parameter) for the specified controller and control group. One line is returned per <a class="el" href="group__group__iterators.html#ga1138e47f124f0f634586db5e0c4ae5de">cgroup_read_stats_begin()</a> and <a class="el" href="group__group__iterators.html#gaf95587508fc15d74fd5ed0df58024be7">cgroup_read_stats_next()</a> call. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">controller</td><td>Name of the controller for which stats are requested. </td></tr>
<tr><td class="paramname">path</td><td>Path to control group, relative to hierarchy root. </td></tr>
</div>
</div>
-<a id="gaba386d9db6cadc6ad85c2552f63447bb"></a>
+<a id="gaba386d9db6cadc6ad85c2552f63447bb" name="gaba386d9db6cadc6ad85c2552f63447bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaba386d9db6cadc6ad85c2552f63447bb">◆ </a></span>cgroup_read_stats_end()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Release the iterator. </p>
+<p >Release the iterator. </p>
</div>
</div>
-<a id="gaf95587508fc15d74fd5ed0df58024be7"></a>
+<a id="gaf95587508fc15d74fd5ed0df58024be7" name="gaf95587508fc15d74fd5ed0df58024be7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf95587508fc15d74fd5ed0df58024be7">◆ </a></span>cgroup_read_stats_next()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Read the next stat value. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Read the next stat value. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>Handle to be used during iteration. </td></tr>
<tr><td class="paramname">stat</td><td>Returned next item in the stats file. </td></tr>
</div>
</div>
-<a id="ga9378ee0f1f6e65900df8e25b3d7ce236"></a>
+<a id="ga9378ee0f1f6e65900df8e25b3d7ce236" name="ga9378ee0f1f6e65900df8e25b3d7ce236"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9378ee0f1f6e65900df8e25b3d7ce236">◆ </a></span>cgroup_read_value_begin()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Read the value of the given variable for the specified controller and control group. The value is read up to newline character or at most max-1 characters, whichever comes first (i.e. similar to fgets()). </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Read the value of the given variable for the specified controller and control group. The value is read up to newline character or at most max-1 characters, whichever comes first (i.e. similar to fgets()). </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">controller</td><td>Name of the controller for which stats are requested. </td></tr>
<tr><td class="paramname">path</td><td>Path to control group, relative to hierarchy root. </td></tr>
</div>
</div>
-<a id="gad348f041e283860cbf6bcea567e23a21"></a>
+<a id="gad348f041e283860cbf6bcea567e23a21" name="gad348f041e283860cbf6bcea567e23a21"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad348f041e283860cbf6bcea567e23a21">◆ </a></span>cgroup_read_value_end()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Release the iterator. </p>
+<p >Release the iterator. </p>
</div>
</div>
-<a id="gaced2fe331f19d599a3270db2440847cc"></a>
+<a id="gaced2fe331f19d599a3270db2440847cc" name="gaced2fe331f19d599a3270db2440847cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaced2fe331f19d599a3270db2440847cc">◆ </a></span>cgroup_read_value_next()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Read the next string from the given variable handle which is generated by <a class="el" href="group__group__iterators.html#ga1138e47f124f0f634586db5e0c4ae5de">cgroup_read_stats_begin()</a> function. the value is read up to newline character or at most max-1 characters, whichever comes first (i.e. similar to fgets()) per <a class="el" href="group__group__iterators.html#gaf95587508fc15d74fd5ed0df58024be7">cgroup_read_stats_next()</a> call </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Read the next string from the given variable handle which is generated by <a class="el" href="group__group__iterators.html#ga1138e47f124f0f634586db5e0c4ae5de">cgroup_read_stats_begin()</a> function. the value is read up to newline character or at most max-1 characters, whichever comes first (i.e. similar to fgets()) per <a class="el" href="group__group__iterators.html#gaf95587508fc15d74fd5ed0df58024be7">cgroup_read_stats_next()</a> call </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>Handle to be used during iteration. </td></tr>
<tr><td class="paramname">data</td><td>returned the string. </td></tr>
</div>
</div>
-<a id="ga7b19f10c06abb96d8c8ae88a04888a68"></a>
+<a id="ga7b19f10c06abb96d8c8ae88a04888a68" name="ga7b19f10c06abb96d8c8ae88a04888a68"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7b19f10c06abb96d8c8ae88a04888a68">◆ </a></span>cgroup_walk_tree_begin()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Walk through the directory tree for the specified controller. The directory representing <code>base_path</code> is returned in <code>info</code>. Use <a class="el" href="group__group__iterators.html#ga645ec7a6206dffb32667e7a0e148edc8">cgroup_walk_tree_set_flags()</a> to specify, in which order should be next directories returned. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Walk through the directory tree for the specified controller. The directory representing <code>base_path</code> is returned in <code>info</code>. Use <a class="el" href="group__group__iterators.html#ga645ec7a6206dffb32667e7a0e148edc8">cgroup_walk_tree_set_flags()</a> to specify, in which order should be next directories returned. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">controller</td><td>Name of the controller, for which we want to walk the directory tree. </td></tr>
<tr><td class="paramname">base_path</td><td>Begin walking from this path. Use "/" to walk through full hierarchy. </td></tr>
</div>
</div>
-<a id="ga09a70990837a58e506a264f8c50d4cde"></a>
+<a id="ga09a70990837a58e506a264f8c50d4cde" name="ga09a70990837a58e506a264f8c50d4cde"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga09a70990837a58e506a264f8c50d4cde">◆ </a></span>cgroup_walk_tree_end()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Release the iterator. </p>
+<p >Release the iterator. </p>
</div>
</div>
-<a id="ga527f5499b0aa04d325074435baebdff1"></a>
+<a id="ga527f5499b0aa04d325074435baebdff1" name="ga527f5499b0aa04d325074435baebdff1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga527f5499b0aa04d325074435baebdff1">◆ </a></span>cgroup_walk_tree_next()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Get the next directory in the walk. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Get the next directory in the walk. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">depth</td><td>The maximum depth to which the function should walk, 0 implies all the way down. </td></tr>
<tr><td class="paramname">handle</td><td>Handle to be used during iteration. </td></tr>
</div>
</div>
-<a id="ga645ec7a6206dffb32667e7a0e148edc8"></a>
+<a id="ga645ec7a6206dffb32667e7a0e148edc8" name="ga645ec7a6206dffb32667e7a0e148edc8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga645ec7a6206dffb32667e7a0e148edc8">◆ </a></span>cgroup_walk_tree_set_flags()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Set the flags for walk_tree. Currently available flags are in <a class="el" href="group__group__iterators.html#ga29a572cbc0c07e2b02dfa0f1ac0067d3">cgroup_walk_type</a> enum. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Set the flags for walk_tree. Currently available flags are in <a class="el" href="group__group__iterators.html#ga29a572cbc0c07e2b02dfa0f1ac0067d3">cgroup_walk_type</a> enum. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>Handle of the iterator. </td></tr>
<tr><td class="paramname">flags</td><td></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: 7. Logging</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
</div>
<div class="header">
- <div class="headertitle">
-<div class="title">7. Logging</div> </div>
+ <div class="headertitle"><div class="title">7. Logging</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader">Logging</h2></td></tr>
-<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp8db7df66ab1d7ab5f1dc947acdb5fae4"></a>Libcgroup allows applications to register a callback function which libcgroup will call when it wants to log something. Each log message has associated a log level. As described in previous chapter, most libcgroup functions return an error code, which described root cause of the failure and log messages might provide further details about these failures and other notable events.</p>
+<tr><td class="ititle" colspan="2"><p ><a class="anchor" id="amgrp8db7df66ab1d7ab5f1dc947acdb5fae4"></a>Libcgroup allows applications to register a callback function which libcgroup will call when it wants to log something. Each log message has associated a log level. As described in previous chapter, most libcgroup functions return an error code, which described root cause of the failure and log messages might provide further details about these failures and other notable events.</p>
<dl class="section user"><dt></dt><dd>The logging callback can be set at any time, but setting the callback before any other libcgroup function (including cgroup_init()) is highly recommended. If no logger is set before cgroup_init() is called, default logger is automatically set, logging CGROUP_LOG_ERROR messages to stdout.</dd></dl>
<dl class="section user"><dt>Setting log level</dt><dd>Some of the functions below set the log level as integer. Application can set directly a value of enum <a class="el" href="group__group__log.html#ga98b7aea5d23411e70c7e3da54d90233a">cgroup_log_level</a> or use value <code>-1</code> to set the log level automatically. In this case, libcgroup inspects environment variable <code>CGROUP_LOGLEVEL</code> if it is set and contains any of these values: <code>ERROR</code>, <code>WARNING</code>, <code>INFO</code>, <code>DEBUG</code> or integer number representing value from enum <a class="el" href="group__group__log.html#ga98b7aea5d23411e70c7e3da54d90233a">cgroup_log_level</a>. If <code>CGROUP_LOGLEVEL</code> is not set or its value is not valid, <code>CGROUP_LOG_ERROR</code> is set as default log level.</dd></dl>
<dl class="section user"><dt>Example:</dt><dd>Following short example shows custom libcgroup logger sending all log messages to <code>stderr</code>: <div class="fragment"><div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> my_logger(<span class="keywordtype">void</span> *userdata, <span class="keywordtype">int</span> level, <span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, va_list ap)</div>
<div class="line">{</div>
<div class="line"> <span class="keywordtype">int</span> ret;</div>
<div class="line"> </div>
-<div class="line"> <a class="code" href="group__group__log.html#ga76d7032206f9b9d1c0be1a71a68c43d0">cgroup_set_logger</a>(my_logger, -1, NULL);</div>
+<div class="line"> <a class="code hl_function" href="group__group__log.html#ga76d7032206f9b9d1c0be1a71a68c43d0">cgroup_set_logger</a>(my_logger, -1, NULL);</div>
<div class="line"> ret = cgroup_init();</div>
<div class="line"> <span class="keywordflow">if</span> (ret) {</div>
<div class="line"> ...</div>
, <a class="el" href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa86b4157fb38d9f8053c6b7429bd26c72">CGROUP_LOG_DEBUG</a>
}</td></tr>
<tr class="separator:ga98b7aea5d23411e70c7e3da54d90233a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa1da90e8ef64cc58c7ad523bdd6679e6"><td class="memItemLeft" align="right" valign="top"><a id="gaa1da90e8ef64cc58c7ad523bdd6679e6"></a>
+<tr class="memitem:gaa1da90e8ef64cc58c7ad523bdd6679e6"><td class="memItemLeft" align="right" valign="top"><a id="gaa1da90e8ef64cc58c7ad523bdd6679e6" name="gaa1da90e8ef64cc58c7ad523bdd6679e6"></a>
typedef void(* </td><td class="memItemRight" valign="bottom"><b>cgroup_logger_callback</b>) (void *userdata, int level, const char *fmt, va_list ap)</td></tr>
<tr class="separator:gaa1da90e8ef64cc58c7ad523bdd6679e6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga76d7032206f9b9d1c0be1a71a68c43d0"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__log.html#ga76d7032206f9b9d1c0be1a71a68c43d0">cgroup_set_logger</a> (cgroup_logger_callback logger, int loglevel, void *userdata)</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Enumeration Type Documentation</h2>
-<a id="ga98b7aea5d23411e70c7e3da54d90233a"></a>
+<a id="ga98b7aea5d23411e70c7e3da54d90233a" name="ga98b7aea5d23411e70c7e3da54d90233a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga98b7aea5d23411e70c7e3da54d90233a">◆ </a></span>cgroup_log_level</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Level of importance of a log message. </p>
+<p >Level of importance of a log message. </p>
<table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga98b7aea5d23411e70c7e3da54d90233aa4dd44215cd3553e79dbf91eb9ca418a2"></a>CGROUP_LOG_ERROR </td><td class="fielddoc"><p>Something serious happened and libcgroup failed to perform requested operation. </p>
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga98b7aea5d23411e70c7e3da54d90233aa4dd44215cd3553e79dbf91eb9ca418a2" name="gga98b7aea5d23411e70c7e3da54d90233aa4dd44215cd3553e79dbf91eb9ca418a2"></a>CGROUP_LOG_ERROR </td><td class="fielddoc"><p >Something serious happened and libcgroup failed to perform requested operation. </p>
</td></tr>
-<tr><td class="fieldname"><a id="gga98b7aea5d23411e70c7e3da54d90233aaa99ec9e854a543901bddf854d1960057"></a>CGROUP_LOG_WARNING </td><td class="fielddoc"><p>Something bad happened but libcgroup recovered from the error. </p>
+<tr><td class="fieldname"><a id="gga98b7aea5d23411e70c7e3da54d90233aaa99ec9e854a543901bddf854d1960057" name="gga98b7aea5d23411e70c7e3da54d90233aaa99ec9e854a543901bddf854d1960057"></a>CGROUP_LOG_WARNING </td><td class="fielddoc"><p >Something bad happened but libcgroup recovered from the error. </p>
</td></tr>
-<tr><td class="fieldname"><a id="gga98b7aea5d23411e70c7e3da54d90233aad66ab51dba078ffc3b1c6d397053f9e2"></a>CGROUP_LOG_INFO </td><td class="fielddoc"><p>Something interesting happened and the message might be useful to the user. </p>
+<tr><td class="fieldname"><a id="gga98b7aea5d23411e70c7e3da54d90233aad66ab51dba078ffc3b1c6d397053f9e2" name="gga98b7aea5d23411e70c7e3da54d90233aad66ab51dba078ffc3b1c6d397053f9e2"></a>CGROUP_LOG_INFO </td><td class="fielddoc"><p >Something interesting happened and the message might be useful to the user. </p>
</td></tr>
-<tr><td class="fieldname"><a id="gga98b7aea5d23411e70c7e3da54d90233aa86b4157fb38d9f8053c6b7429bd26c72"></a>CGROUP_LOG_DEBUG </td><td class="fielddoc"><p>Debugging messages useful to libcgroup developers. </p>
+<tr><td class="fieldname"><a id="gga98b7aea5d23411e70c7e3da54d90233aa86b4157fb38d9f8053c6b7429bd26c72" name="gga98b7aea5d23411e70c7e3da54d90233aa86b4157fb38d9f8053c6b7429bd26c72"></a>CGROUP_LOG_DEBUG </td><td class="fielddoc"><p >Debugging messages useful to libcgroup developers. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
-<a id="gab514ad5d83422ddfe479bdf651e80958"></a>
+<a id="gab514ad5d83422ddfe479bdf651e80958" name="gab514ad5d83422ddfe479bdf651e80958"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab514ad5d83422ddfe479bdf651e80958">◆ </a></span>cgroup_log()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Libcgroup log function. This is for applications which are too lazy to set up their own complex logging and miss-use libcgroup for that purpose. I.e. this function should be used only by simple command-line tools. This logging automatically benefits from CGROUP_LOGLEVEL env. variable. </p>
+<p >Libcgroup log function. This is for applications which are too lazy to set up their own complex logging and miss-use libcgroup for that purpose. I.e. this function should be used only by simple command-line tools. This logging automatically benefits from CGROUP_LOGLEVEL env. variable. </p>
</div>
</div>
-<a id="gaa364a06aee0e99228a1e6a26b25a9794"></a>
+<a id="gaa364a06aee0e99228a1e6a26b25a9794" name="gaa364a06aee0e99228a1e6a26b25a9794"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa364a06aee0e99228a1e6a26b25a9794">◆ </a></span>cgroup_parse_log_level_str()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Parse levelstr string for information about desired loglevel. The levelstr is usually a value of the CGROUP_LOGLEVEL environment variable. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Parse levelstr string for information about desired loglevel. The levelstr is usually a value of the CGROUP_LOGLEVEL environment variable. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">levelstr</td><td>String containing desired loglevel. </td></tr>
</table>
</div>
</div>
-<a id="gab1457ce518dcde0b9f3c14ec9efa2de7"></a>
+<a id="gab1457ce518dcde0b9f3c14ec9efa2de7" name="gab1457ce518dcde0b9f3c14ec9efa2de7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab1457ce518dcde0b9f3c14ec9efa2de7">◆ </a></span>cgroup_set_default_logger()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Set libcgroup logging to stdout. All messages with the given loglevel or below will be sent to standard output. Previous logger set by <a class="el" href="group__group__log.html#ga76d7032206f9b9d1c0be1a71a68c43d0">cgroup_set_logger()</a> is replaced.</p>
+<p >Set libcgroup logging to stdout. All messages with the given loglevel or below will be sent to standard output. Previous logger set by <a class="el" href="group__group__log.html#ga76d7032206f9b9d1c0be1a71a68c43d0">cgroup_set_logger()</a> is replaced.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">loglevel</td><td>The log level. Use value -1 to automatically discover the level from CGROUP_LOGLEVEL environment variable. </td></tr>
</div>
</div>
-<a id="ga76d7032206f9b9d1c0be1a71a68c43d0"></a>
+<a id="ga76d7032206f9b9d1c0be1a71a68c43d0" name="ga76d7032206f9b9d1c0be1a71a68c43d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga76d7032206f9b9d1c0be1a71a68c43d0">◆ </a></span>cgroup_set_logger()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Set libcgroup logging callback. All log messages with equal or lower log level will be sent to the application's callback. There can be only one callback logger set, the previous callback is replaced with the new one by calling this function. Use NULL as the logger callback to completely disable libcgroup logging.</p>
+<p >Set libcgroup logging callback. All log messages with equal or lower log level will be sent to the application's callback. There can be only one callback logger set, the previous callback is replaced with the new one by calling this function. Use NULL as the logger callback to completely disable libcgroup logging.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">logger</td><td>The callback. </td></tr>
</div>
</div>
-<a id="gaac5fe2352800ff62465a5abe649d5b8c"></a>
+<a id="gaac5fe2352800ff62465a5abe649d5b8c" name="gaac5fe2352800ff62465a5abe649d5b8c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaac5fe2352800ff62465a5abe649d5b8c">◆ </a></span>cgroup_set_loglevel()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Change current loglevel. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Change current loglevel. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">loglevel</td><td>The log level. Use value -1 to automatically discover the level from CGROUP_LOGLEVEL environment variable. </td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: 4. Manipulation with tasks</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
</div>
<div class="header">
- <div class="headertitle">
-<div class="title">4. Manipulation with tasks</div> </div>
+ <div class="headertitle"><div class="title">4. Manipulation with tasks</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader">Simple task assignment</h2></td></tr>
-<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp97ba257d9453e92bab382c7df8d94b24"></a>Applications can use following functions to simply put a task into given control group and find a groups where given tasks is. </p>
+<tr><td class="ititle" colspan="2"><p ><a class="anchor" id="amgrp97ba257d9453e92bab382c7df8d94b24"></a>Applications can use following functions to simply put a task into given control group and find a groups where given tasks is. </p>
</td></tr>
<tr class="memitem:ga43414ac2b1fc73bbb46b6278c7500188"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__tasks.html#ga43414ac2b1fc73bbb46b6278c7500188">cgroup_attach_task</a> (struct <a class="el" href="structcgroup.html">cgroup</a> *<a class="el" href="structcgroup.html">cgroup</a>)</td></tr>
<tr class="separator:ga43414ac2b1fc73bbb46b6278c7500188"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="separator:ga6f2c17b99cf2526cb46df4769eb3f46e"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader">Rules</h2></td></tr>
-<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp1f4da964f8eab62e96e8cfe406e44364"></a><code>libcgroup</code> can move tasks to control groups using simple rules, loaded from configuration file. See cgrules.conf man page to see format of the file. Following functions can be used to load these rules from a file. </p>
+<tr><td class="ititle" colspan="2"><p ><a class="anchor" id="amgrp1f4da964f8eab62e96e8cfe406e44364"></a><code>libcgroup</code> can move tasks to control groups using simple rules, loaded from configuration file. See cgrules.conf man page to see format of the file. Following functions can be used to load these rules from a file. </p>
</td></tr>
<tr class="memitem:gad7fa5a2c4db08d31da5bfbecaf482d3d"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__tasks.html#gad7fa5a2c4db08d31da5bfbecaf482d3d">cgroup_init_rules_cache</a> (void)</td></tr>
<tr class="separator:gad7fa5a2c4db08d31da5bfbecaf482d3d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="separator:gac4e3f29cfbdc3d77f08c9fe60857274a"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader">Rule based task assignment</h2></td></tr>
-<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp40f06dbe04f1172d30d928c8f15ab1a1"></a><code>libcgroup</code> can move tasks to control groups using simple rules, loaded from configuration file. See cgrules.conf man page to see format of the file. Applications can move tasks to control groups based on these rules using following functions. </p>
+<tr><td class="ititle" colspan="2"><p ><a class="anchor" id="amgrp40f06dbe04f1172d30d928c8f15ab1a1"></a><code>libcgroup</code> can move tasks to control groups using simple rules, loaded from configuration file. See cgrules.conf man page to see format of the file. Applications can move tasks to control groups based on these rules using following functions. </p>
</td></tr>
<tr class="memitem:gafc69658b012b6f1c11ba078ffccd70a2"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__tasks.html#gafc69658b012b6f1c11ba078ffccd70a2">cgroup_change_all_cgroups</a> (void)</td></tr>
<tr class="separator:gafc69658b012b6f1c11ba078ffccd70a2"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="separator:ga5eab78a922dbacd368360f03c70146be"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader">Communication with cgrulesengd daemon</h2></td></tr>
-<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrpe4f83f250bc6912276cdf33ed1694119"></a>Users can use cgrulesengd daemon to move tasks to groups based on the rules automatically when they change their UID, GID or executable name. The daemon allows tasks to be 'sticky', i.e. all rules are ignored for these tasks and the daemon never moves them. </p>
+<tr><td class="ititle" colspan="2"><p ><a class="anchor" id="amgrpe4f83f250bc6912276cdf33ed1694119"></a>Users can use cgrulesengd daemon to move tasks to groups based on the rules automatically when they change their UID, GID or executable name. The daemon allows tasks to be 'sticky', i.e. all rules are ignored for these tasks and the daemon never moves them. </p>
</td></tr>
<tr class="memitem:ga64f7967d6d5edfff9afddaa6a6974b1c"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__tasks.html#ga64f7967d6d5edfff9afddaa6a6974b1c">cgroup_register_unchanged_process</a> (pid_t pid, int flags)</td></tr>
<tr class="separator:ga64f7967d6d5edfff9afddaa6a6974b1c"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Function Documentation</h2>
-<a id="ga43414ac2b1fc73bbb46b6278c7500188"></a>
+<a id="ga43414ac2b1fc73bbb46b6278c7500188" name="ga43414ac2b1fc73bbb46b6278c7500188"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga43414ac2b1fc73bbb46b6278c7500188">◆ </a></span>cgroup_attach_task()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Move current task (=thread) to given control group. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Move current task (=thread) to given control group. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cgroup</td><td>Destination control group.</td></tr>
</table>
</dd>
</dl>
<p>cgroup_attach_task is used to attach the current thread to a cgroup. struct cgroup *cgroup: The cgroup to assign the current thread to.</p>
-<p>See cg_attach_task_pid for return values. </p>
+<p >See cg_attach_task_pid for return values. </p>
</div>
</div>
-<a id="ga9c7532681986d156ac3f6bac1fcf6aab"></a>
+<a id="ga9c7532681986d156ac3f6bac1fcf6aab" name="ga9c7532681986d156ac3f6bac1fcf6aab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9c7532681986d156ac3f6bac1fcf6aab">◆ </a></span>cgroup_attach_task_pid()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Move given task (=thread) to to given control group. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Move given task (=thread) to to given control group. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cgroup</td><td>Destination control group. </td></tr>
<tr><td class="paramname">tid</td><td>The task to move.</td></tr>
</dd>
</dl>
<p>cgroup_attach_task_pid is used to assign tasks to a cgroup. struct cgroup *cgroup: The cgroup to assign the thread to. pid_t tid: The thread to be assigned to the cgroup.</p>
-<p>returns 0 on success. returns ECGROUPNOTOWNER if the caller does not have access to the cgroup. returns ECGROUPNOTALLOWED for other causes of failure. </p>
+<p >returns 0 on success. returns ECGROUPNOTOWNER if the caller does not have access to the cgroup. returns ECGROUPNOTALLOWED for other causes of failure. </p>
</div>
</div>
-<a id="gafc69658b012b6f1c11ba078ffccd70a2"></a>
+<a id="gafc69658b012b6f1c11ba078ffccd70a2" name="gafc69658b012b6f1c11ba078ffccd70a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafc69658b012b6f1c11ba078ffccd70a2">◆ </a></span>cgroup_change_all_cgroups()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Changes the cgroup of all running PIDs based on the rules in the config file. If a rules exists for a PID, then the PID is placed in the correct group.</p>
-<p>This function may be called after creating new control groups to move running PIDs into the newly created control groups. </p><dl class="section return"><dt>Returns</dt><dd>0 on success, < 0 on error </dd></dl>
+<p >Changes the cgroup of all running PIDs based on the rules in the config file. If a rules exists for a PID, then the PID is placed in the correct group.</p>
+<p >This function may be called after creating new control groups to move running PIDs into the newly created control groups. </p><dl class="section return"><dt>Returns</dt><dd>0 on success, < 0 on error </dd></dl>
</div>
</div>
-<a id="ga368e7b8e19b3943ab6fb50e76a09e6ea"></a>
+<a id="ga368e7b8e19b3943ab6fb50e76a09e6ea" name="ga368e7b8e19b3943ab6fb50e76a09e6ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga368e7b8e19b3943ab6fb50e76a09e6ea">◆ </a></span>cgroup_change_cgroup_flags()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Changes the cgroup of a program based on the rules in the config file. If a rule exists for the given UID, GID or PROCESS NAME, then the given PID is placed into the correct group. By default, this function parses the configuration file each time it is called.</p>
-<p>The flags can alter the behavior of this function: CGFLAG_USECACHE: Use cached rules instead of parsing the config file CGFLAG_USE_TEMPLATE_CACHE: Use cached templates instead of parsing the config file</p>
-<p>This function may NOT be thread safe. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Changes the cgroup of a program based on the rules in the config file. If a rule exists for the given UID, GID or PROCESS NAME, then the given PID is placed into the correct group. By default, this function parses the configuration file each time it is called.</p>
+<p >The flags can alter the behavior of this function: CGFLAG_USECACHE: Use cached rules instead of parsing the config file CGFLAG_USE_TEMPLATE_CACHE: Use cached templates instead of parsing the config file</p>
+<p >This function may NOT be thread safe. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">uid</td><td>The UID to match. </td></tr>
<tr><td class="paramname">gid</td><td>The GID to match. </td></tr>
</div>
</div>
-<a id="ga2d4677baef780c003fc6fba6b5dc78f2"></a>
+<a id="ga2d4677baef780c003fc6fba6b5dc78f2" name="ga2d4677baef780c003fc6fba6b5dc78f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2d4677baef780c003fc6fba6b5dc78f2">◆ </a></span>cgroup_change_cgroup_path()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Changes the cgroup of a task based on the path provided. In this case, the user must already know into which cgroup the task should be placed and no rules will be parsed.</p>
+<p >Changes the cgroup of a task based on the path provided. In this case, the user must already know into which cgroup the task should be placed and no rules will be parsed.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">path</td><td>Name of the destination group. </td></tr>
</dd>
</dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000014">Todo:</a></b></dt><dd>should this function be really public? </dd></dl>
-<p>Changes the cgroup of a program based on the path provided. In this case, the user must already know into which cgroup the task should be placed and no rules will be parsed.</p>
-<p>returns 0 on success. </p>
+<p >Changes the cgroup of a program based on the path provided. In this case, the user must already know into which cgroup the task should be placed and no rules will be parsed.</p>
+<p >returns 0 on success. </p>
</div>
</div>
-<a id="ga5eab78a922dbacd368360f03c70146be"></a>
+<a id="ga5eab78a922dbacd368360f03c70146be" name="ga5eab78a922dbacd368360f03c70146be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5eab78a922dbacd368360f03c70146be">◆ </a></span>cgroup_change_cgroup_uid_gid()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Provides backwards-compatibility with older versions of the API. This function is deprecated, and <a class="el" href="group__group__tasks.html#gae472183a7c9a37826ef15c77014c47fb">cgroup_change_cgroup_uid_gid_flags()</a> should be used instead. In fact, this function simply calls the newer one with flags set to 0 (none). </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Provides backwards-compatibility with older versions of the API. This function is deprecated, and <a class="el" href="group__group__tasks.html#gae472183a7c9a37826ef15c77014c47fb">cgroup_change_cgroup_uid_gid_flags()</a> should be used instead. In fact, this function simply calls the newer one with flags set to 0 (none). </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">uid</td><td>The UID to match. </td></tr>
<tr><td class="paramname">gid</td><td>The GID to match. </td></tr>
</div>
</div>
-<a id="gae472183a7c9a37826ef15c77014c47fb"></a>
+<a id="gae472183a7c9a37826ef15c77014c47fb" name="gae472183a7c9a37826ef15c77014c47fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae472183a7c9a37826ef15c77014c47fb">◆ </a></span>cgroup_change_cgroup_uid_gid_flags()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Changes the cgroup of a program based on the rules in the config file. If a rule exists for the given UID or GID, then the given PID is placed into the correct group. By default, this function parses the configuration file each time it is called.</p>
-<p>This function may NOT be thread safe. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Changes the cgroup of a program based on the rules in the config file. If a rule exists for the given UID or GID, then the given PID is placed into the correct group. By default, this function parses the configuration file each time it is called.</p>
+<p >This function may NOT be thread safe. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">uid</td><td>The UID to match. </td></tr>
<tr><td class="paramname">gid</td><td>The GID to match. </td></tr>
</div>
</div>
-<a id="ga6f2c17b99cf2526cb46df4769eb3f46e"></a>
+<a id="ga6f2c17b99cf2526cb46df4769eb3f46e" name="ga6f2c17b99cf2526cb46df4769eb3f46e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6f2c17b99cf2526cb46df4769eb3f46e">◆ </a></span>cgroup_get_current_controller_path()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Get the current control group path where the given task is. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Get the current control group path where the given task is. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">pid</td><td>The task to find. </td></tr>
<tr><td class="paramname">controller</td><td>The controller (hierarchy), where to find the task. </td></tr>
</div>
</div>
-<a id="gad7fa5a2c4db08d31da5bfbecaf482d3d"></a>
+<a id="gad7fa5a2c4db08d31da5bfbecaf482d3d" name="gad7fa5a2c4db08d31da5bfbecaf482d3d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad7fa5a2c4db08d31da5bfbecaf482d3d">◆ </a></span>cgroup_init_rules_cache()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Initializes the rules cache and load it from /etc/cgrules.conf. </p><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000015">Todo:</a></b></dt><dd>add parameter with the filename? </dd></dl>
-<p>Initializes the rules cache. </p><dl class="section return"><dt>Returns</dt><dd>0 on success, > 0 on error </dd></dl>
+<p >Initializes the rules cache and load it from /etc/cgrules.conf. </p><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000015">Todo:</a></b></dt><dd>add parameter with the filename? </dd></dl>
+<p >Initializes the rules cache. </p><dl class="section return"><dt>Returns</dt><dd>0 on success, > 0 on error </dd></dl>
</div>
</div>
-<a id="gac4e3f29cfbdc3d77f08c9fe60857274a"></a>
+<a id="gac4e3f29cfbdc3d77f08c9fe60857274a" name="gac4e3f29cfbdc3d77f08c9fe60857274a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac4e3f29cfbdc3d77f08c9fe60857274a">◆ </a></span>cgroup_print_rules_config()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Print the cached rules table. This function should be called only after first calling cgroup_parse_config(), but it will work with an empty rule list. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Print the cached rules table. This function should be called only after first calling cgroup_parse_config(), but it will work with an empty rule list. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">fp</td><td>Destination file, where the rules will be printed.</td></tr>
</table>
</div>
</div>
-<a id="ga64f7967d6d5edfff9afddaa6a6974b1c"></a>
+<a id="ga64f7967d6d5edfff9afddaa6a6974b1c" name="ga64f7967d6d5edfff9afddaa6a6974b1c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga64f7967d6d5edfff9afddaa6a6974b1c">◆ </a></span>cgroup_register_unchanged_process()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Register the unchanged process to a cgrulesengd daemon. This process is never moved to another control group by the daemon. If the daemon does not work, this function returns 0 as success. </p><dl class="params"><dt>Parameters</dt><dd>
+<p >Register the unchanged process to a cgrulesengd daemon. This process is never moved to another control group by the daemon. If the daemon does not work, this function returns 0 as success. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">pid</td><td>The task id. </td></tr>
<tr><td class="paramname">flags</td><td>Bit flags to change the behavior, as defined in #cgroup_daemon_type </td></tr>
</div>
</div>
-<a id="gaf81ebd9cb5575c75b4c85f385ebda1ce"></a>
+<a id="gaf81ebd9cb5575c75b4c85f385ebda1ce" name="gaf81ebd9cb5575c75b4c85f385ebda1ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf81ebd9cb5575c75b4c85f385ebda1ce">◆ </a></span>cgroup_reload_cached_rules()</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Reloads the rules list from /etc/cgrules.conf. This function is probably NOT thread safe (calls cgroup_parse_rules_config()).</p>
-<p>Reloads the rules list, using the given configuration file. This function is probably NOT thread safe (calls cgroup_parse_rules()). </p><dl class="section return"><dt>Returns</dt><dd>0 on success, > 0 on failure </dd></dl>
+<p >Reloads the rules list from /etc/cgrules.conf. This function is probably NOT thread safe (calls cgroup_parse_rules_config()).</p>
+<p >Reloads the rules list, using the given configuration file. This function is probably NOT thread safe (calls cgroup_parse_rules()). </p><dl class="section return"><dt>Returns</dt><dd>0 on success, > 0 on failure </dd></dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: include/libcgroup/groups.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
</div>
</div><!-- top -->
<div class="header">
- <div class="headertitle">
-<div class="title">groups.h</div> </div>
+ <div class="headertitle"><div class="title">groups.h</div></div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="preprocessor">#ifndef _LIBCGROUP_GROUPS_H</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="preprocessor">#define _LIBCGROUP_GROUPS_H</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  </div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#ifndef _LIBCGROUP_H_INSIDE</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="preprocessor">#error "Only <libcgroup.h> should be included directly."</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>  </div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#ifndef SWIG</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include <features.h></span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include <sys/types.h></span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include <stdbool.h></span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  </div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">enum</span> cg_version_t {</div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  CGROUP_UNK = 0,</div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  CGROUP_V1,</div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  CGROUP_V2,</div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  CGROUP_DISK = 0xFF,</div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> };</div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">enum</span> cgroup_delete_flag {</div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  CGFLAG_DELETE_IGNORE_MIGRATION = 1,</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  CGFLAG_DELETE_RECURSIVE = 2,</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  CGFLAG_DELETE_EMPTY_ONLY = 4,</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> };</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  </div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="keyword">struct </span><a class="code" href="structcgroup.html">cgroup</a>;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  </div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="keyword">struct </span><a class="code" href="structcgroup__controller.html">cgroup_controller</a>;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  </div>
-<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="group__group__groups.html#gad4ffad2eccf9fcbfa8a551e269e0ad58"> 131</a></span> <span class="preprocessor">#define NO_PERMS (-1U)</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  </div>
-<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="group__group__groups.html#ga2a7954a987e3fbf8eabcc94cf381353e"> 136</a></span> <span class="preprocessor">#define NO_UID_GID (-1U)</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  </div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="keyword">struct </span><a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="group__group__groups.html#ga6cd4733e5982ac2c92ee3cb3dbd10a31">cgroup_new_cgroup</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  </div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="keyword">struct </span><a class="code" href="structcgroup__controller.html">cgroup_controller</a> *<a class="code" href="group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130">cgroup_add_controller</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>,</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  </div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gae870d271b789b5c54c2e3d35de3cd6f9">cgroup_add_all_controllers</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>);</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  </div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  </div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="keyword">struct </span><a class="code" href="structcgroup__controller.html">cgroup_controller</a> *<a class="code" href="group__group__groups.html#ga8335b0aec59c8f845639a7404affce05">cgroup_get_controller</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>,</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  </div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="keywordtype">void</span> <a class="code" href="group__group__groups.html#gab20fdb1ae479f8baac482336abf73900">cgroup_free</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> **<a class="code" href="structcgroup.html">cgroup</a>);</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  </div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="keywordtype">void</span> <a class="code" href="group__group__groups.html#ga92d27c9ff0d655838642a7aa68497596">cgroup_free_controllers</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>);</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  </div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  </div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>, <span class="keywordtype">int</span> ignore_ownership);</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  </div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62">cgroup_create_cgroup_from_parent</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>,</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keywordtype">int</span> ignore_ownership);</div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  </div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071">cgroup_modify_cgroup</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>);</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  </div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565">cgroup_delete_cgroup</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>, <span class="keywordtype">int</span> ignore_migration);</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  </div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga860c1ec70189c969b2c8373fc1e96d36">cgroup_delete_cgroup_ext</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>, <span class="keywordtype">int</span> flags);</div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  </div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  </div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>);</div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  </div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gaa981a95e0917d3167601a4c1b392336a">cgroup_copy_cgroup</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *dst, <span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *src);</div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  </div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga86898b59e50335f99fe84a11fa38d3fc">cgroup_compare_cgroup</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *cgroup_a, <span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *cgroup_b);</div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  </div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  </div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gab1725c50c49cec4b0bdad1f26b150ca7">cgroup_compare_controllers</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *cgca,</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *cgcb);</div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  </div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga53b9e13e30660c805ab5773d69397a43">cgroup_set_uid_gid</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>, uid_t tasks_uid, gid_t tasks_gid,</div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  uid_t control_uid, gid_t control_gid);</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  </div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga007d21c304d9cc6e948dc0ae51ecfa86">cgroup_get_uid_gid</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>, uid_t *tasks_uid,</div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  gid_t *tasks_gid, uid_t *control_uid, gid_t *control_gid);</div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  </div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <span class="keywordtype">void</span> <a class="code" href="group__group__groups.html#gaa0400f1ff2fba7fbb6db82d97039d92b">cgroup_set_permissions</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>,</div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  mode_t control_dperm, mode_t control_fperm,</div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  mode_t task_fperm);</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  </div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga4817c68ab791c09c07b663c29b3fb029">cgroup_add_value_string</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keyword">const</span> <span class="keywordtype">char</span> *value);</div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga6c973bb5ce99e7a91def2032f23d7087">cgroup_add_value_int64</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, int64_t value);</div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gad9d2216205b96278c626122f8d5e63bb">cgroup_add_value_uint64</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, u_int64_t value);</div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga4b191a600f84b00ea7afd12c01d918f3">cgroup_add_value_bool</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">bool</span> value);</div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  </div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gafaa51e5ffe09f8ad05585a1d3b6f7fa9">cgroup_get_value_string</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">char</span> **value);</div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga0fe9b05f26b3cab21fc446c9a2700526">cgroup_get_value_int64</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, int64_t *value);</div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga951861259c0373895bfb637fce337312">cgroup_get_value_uint64</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, u_int64_t *value);</div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gab95007148eac89b7e935d93a4524787b">cgroup_get_value_bool</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">bool</span> *value);</div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  </div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga938febc02b59cbeb8e4ceb2dc7fdac82">cgroup_set_value_string</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keyword">const</span> <span class="keywordtype">char</span> *value);</div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gaa5c39e51035cc43dd26a3c620441a956">cgroup_set_value_int64</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, int64_t value);</div>
-<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gade01aa1fe30ccc968af9fe8a3bc821e5">cgroup_set_value_uint64</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, u_int64_t value);</div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gafb24892bc221cffee0f5fe07f64d54d7">cgroup_set_value_bool</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller,</div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">bool</span> value);</div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga25115085978ce2a8d671e7876cc49c1d">cgroup_get_value_name_count</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller);</div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  </div>
-<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> <span class="keywordtype">char</span> *<a class="code" href="group__group__groups.html#ga16ca75fd16eda7cfc642421111e9a331">cgroup_get_value_name</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller, <span class="keywordtype">int</span> index);</div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  </div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga08a4fe913d59f61a39e61b8b02537dc2">cgroup_get_procs</a>(<span class="keywordtype">char</span> *name, <span class="keywordtype">char</span> *controller, pid_t **pids, <span class="keywordtype">int</span> *size);</div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  </div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#gaef0bf6cd480f2dcb5e964de151a27dd1">cg_chmod_recursive</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>, mode_t dir_mode,</div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <span class="keywordtype">int</span> dirm_change, mode_t file_mode, <span class="keywordtype">int</span> filem_change);</div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  </div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> <span class="keywordtype">char</span> *<a class="code" href="group__group__groups.html#gac9b5ff481de08ba8fdfcbd42940d2cbf">cgroup_get_cgroup_name</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>);</div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  </div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> <span class="comment">/*</span></div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <span class="comment"> * Convert from one cgroup version to another version</span></div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> <span class="comment"> * @param out_cgroup Destination cgroup</span></div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> <span class="comment"> * @param out_version Destination cgroup version</span></div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> <span class="comment"> * @param in_cgroup Source cgroup</span></div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> <span class="comment"> * @param in_version Source cgroup version, only used if set to v1 or v2</span></div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> <span class="comment"> * @return 0 on success</span></div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> <span class="comment"> * ECGFAIL conversion failed</span></div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> <span class="comment"> * ECGCONTROLLERNOTEQUAL incorrect controller version provided</span></div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> <span class="keywordtype">int</span> cgroup_convert_cgroup(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> * <span class="keyword">const</span> out_cgroup,</div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <span class="keyword">enum</span> cg_version_t out_version,</div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> * <span class="keyword">const</span> in_cgroup,</div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="keyword">enum</span> cg_version_t in_version);</div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  </div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> <span class="keywordtype">int</span> <a class="code" href="group__group__groups.html#ga452d8c5e95c8d694e26e7efda045360f">cgroup_get_controller_version</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> controller,</div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  <span class="keyword">enum</span> cg_version_t * <span class="keyword">const</span> version);</div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  </div>
-<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> } <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  </div>
-<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> <span class="preprocessor">#endif </span><span class="comment">/* _LIBCGROUP_GROUPS_H */</span><span class="preprocessor"></span></div>
+<div class="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="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="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="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="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:417</div></div>
<div class="ttc" id="agroup__group__groups_html_ga08a4fe913d59f61a39e61b8b02537dc2"><div class="ttname"><a href="group__group__groups.html#ga08a4fe913d59f61a39e61b8b02537dc2">cgroup_get_procs</a></div><div class="ttdeci">int cgroup_get_procs(char *name, char *controller, pid_t **pids, int *size)</div><div class="ttdef"><b>Definition:</b> api.c:5517</div></div>
<div class="ttc" id="agroup__group__groups_html_ga0fe9b05f26b3cab21fc446c9a2700526"><div class="ttname"><a href="group__group__groups.html#ga0fe9b05f26b3cab21fc446c9a2700526">cgroup_get_value_int64</a></div><div class="ttdeci">int cgroup_get_value_int64(struct cgroup_controller *controller, const char *name, int64_t *value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:496</div></div>
-<div class="ttc" id="agroup__group__groups_html_ga16ca75fd16eda7cfc642421111e9a331"><div class="ttname"><a href="group__group__groups.html#ga16ca75fd16eda7cfc642421111e9a331">cgroup_get_value_name</a></div><div class="ttdeci">char * cgroup_get_value_name(struct cgroup_controller *controller, int index)</div><div class="ttdef"><b>Definition:</b> wrapper.c:725</div></div>
<div class="ttc" id="agroup__group__groups_html_ga1dca18434e5d6be30c28c556da94f565"><div class="ttname"><a href="group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565">cgroup_delete_cgroup</a></div><div class="ttdeci">int cgroup_delete_cgroup(struct cgroup *cgroup, int ignore_migration)</div><div class="ttdef"><b>Definition:</b> api.c:2923</div></div>
<div class="ttc" id="agroup__group__groups_html_ga25115085978ce2a8d671e7876cc49c1d"><div class="ttname"><a href="group__group__groups.html#ga25115085978ce2a8d671e7876cc49c1d">cgroup_get_value_name_count</a></div><div class="ttdeci">int cgroup_get_value_name_count(struct cgroup_controller *controller)</div><div class="ttdef"><b>Definition:</b> wrapper.c:716</div></div>
<div class="ttc" id="agroup__group__groups_html_ga31ba5e865ae8d58b4453c0ef06d2c071"><div class="ttname"><a href="group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071">cgroup_modify_cgroup</a></div><div class="ttdeci">int cgroup_modify_cgroup(struct cgroup *cgroup)</div><div class="ttdef"><b>Definition:</b> api.c:2234</div></div>
+<div class="ttc" id="agroup__group__groups_html_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:56</div></div>
<div class="ttc" id="agroup__group__groups_html_ga452d8c5e95c8d694e26e7efda045360f"><div class="ttname"><a href="group__group__groups.html#ga452d8c5e95c8d694e26e7efda045360f">cgroup_get_controller_version</a></div><div class="ttdeci">int cgroup_get_controller_version(const char *const controller, enum cg_version_t *const version)</div><div class="ttdef"><b>Definition:</b> api.c:5766</div></div>
<div class="ttc" id="agroup__group__groups_html_ga4817c68ab791c09c07b663c29b3fb029"><div class="ttname"><a href="group__group__groups.html#ga4817c68ab791c09c07b663c29b3fb029">cgroup_add_value_string</a></div><div class="ttdeci">int cgroup_add_value_string(struct cgroup_controller *controller, const char *name, const char *value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:211</div></div>
<div class="ttc" id="agroup__group__groups_html_ga4b191a600f84b00ea7afd12c01d918f3"><div class="ttname"><a href="group__group__groups.html#ga4b191a600f84b00ea7afd12c01d918f3">cgroup_add_value_bool</a></div><div class="ttdeci">int cgroup_add_value_bool(struct cgroup_controller *controller, const char *name, bool value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:291</div></div>
<div class="ttc" id="agroup__group__groups_html_ga53b9e13e30660c805ab5773d69397a43"><div class="ttname"><a href="group__group__groups.html#ga53b9e13e30660c805ab5773d69397a43">cgroup_set_uid_gid</a></div><div class="ttdeci">int cgroup_set_uid_gid(struct cgroup *cgroup, uid_t tasks_uid, gid_t tasks_gid, uid_t control_uid, gid_t control_gid)</div><div class="ttdef"><b>Definition:</b> wrapper.c:403</div></div>
+<div class="ttc" id="agroup__group__groups_html_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:255</div></div>
-<div class="ttc" id="agroup__group__groups_html_ga6cd4733e5982ac2c92ee3cb3dbd10a31"><div class="ttname"><a href="group__group__groups.html#ga6cd4733e5982ac2c92ee3cb3dbd10a31">cgroup_new_cgroup</a></div><div class="ttdeci">struct cgroup * cgroup_new_cgroup(const char *name)</div><div class="ttdef"><b>Definition:</b> wrapper.c:44</div></div>
-<div class="ttc" id="agroup__group__groups_html_ga8335b0aec59c8f845639a7404affce05"><div class="ttname"><a href="group__group__groups.html#ga8335b0aec59c8f845639a7404affce05">cgroup_get_controller</a></div><div class="ttdeci">struct cgroup_controller * cgroup_get_controller(struct cgroup *cgroup, const char *name)</div><div class="ttdef"><b>Definition:</b> wrapper.c:431</div></div>
<div class="ttc" id="agroup__group__groups_html_ga860c1ec70189c969b2c8373fc1e96d36"><div class="ttname"><a href="group__group__groups.html#ga860c1ec70189c969b2c8373fc1e96d36">cgroup_delete_cgroup_ext</a></div><div class="ttdeci">int cgroup_delete_cgroup_ext(struct cgroup *cgroup, int flags)</div><div class="ttdef"><b>Definition:</b> api.c:2929</div></div>
<div class="ttc" id="agroup__group__groups_html_ga86898b59e50335f99fe84a11fa38d3fc"><div class="ttname"><a href="group__group__groups.html#ga86898b59e50335f99fe84a11fa38d3fc">cgroup_compare_cgroup</a></div><div class="ttdeci">int cgroup_compare_cgroup(struct cgroup *cgroup_a, struct cgroup *cgroup_b)</div><div class="ttdef"><b>Definition:</b> wrapper.c:368</div></div>
<div class="ttc" id="agroup__group__groups_html_ga90e1ce96f3cb540f7e82d076dd938f62"><div class="ttname"><a href="group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62">cgroup_create_cgroup_from_parent</a></div><div class="ttdeci">int cgroup_create_cgroup_from_parent(struct cgroup *cgroup, int ignore_ownership)</div><div class="ttdef"><b>Definition:</b> api.c:2669</div></div>
<div class="ttc" id="agroup__group__groups_html_ga92d27c9ff0d655838642a7aa68497596"><div class="ttname"><a href="group__group__groups.html#ga92d27c9ff0d655838642a7aa68497596">cgroup_free_controllers</a></div><div class="ttdeci">void cgroup_free_controllers(struct cgroup *cgroup)</div><div class="ttdef"><b>Definition:</b> wrapper.c:183</div></div>
<div class="ttc" id="agroup__group__groups_html_ga938febc02b59cbeb8e4ceb2dc7fdac82"><div class="ttname"><a href="group__group__groups.html#ga938febc02b59cbeb8e4ceb2dc7fdac82">cgroup_set_value_string</a></div><div class="ttdeci">int cgroup_set_value_string(struct cgroup_controller *controller, const char *name, const char *value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:475</div></div>
<div class="ttc" id="agroup__group__groups_html_ga951861259c0373895bfb637fce337312"><div class="ttname"><a href="group__group__groups.html#ga951861259c0373895bfb637fce337312">cgroup_get_value_uint64</a></div><div class="ttdeci">int cgroup_get_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t *value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:546</div></div>
+<div class="ttc" id="agroup__group__groups_html_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:725</div></div>
<div class="ttc" id="agroup__group__groups_html_gaa0400f1ff2fba7fbb6db82d97039d92b"><div class="ttname"><a href="group__group__groups.html#gaa0400f1ff2fba7fbb6db82d97039d92b">cgroup_set_permissions</a></div><div class="ttdeci">void cgroup_set_permissions(struct cgroup *cgroup, mode_t control_dperm, mode_t control_fperm, mode_t task_fperm)</div><div class="ttdef"><b>Definition:</b> api.c:367</div></div>
-<div class="ttc" id="agroup__group__groups_html_gaa2f9c2ac75fd7e56e5ec6fb970304130"><div class="ttname"><a href="group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130">cgroup_add_controller</a></div><div class="ttdeci">struct cgroup_controller * cgroup_add_controller(struct cgroup *cgroup, const char *name)</div><div class="ttdef"><b>Definition:</b> wrapper.c:56</div></div>
<div class="ttc" id="agroup__group__groups_html_gaa5c39e51035cc43dd26a3c620441a956"><div class="ttname"><a href="group__group__groups.html#gaa5c39e51035cc43dd26a3c620441a956">cgroup_set_value_int64</a></div><div class="ttdeci">int cgroup_set_value_int64(struct cgroup_controller *controller, const char *name, int64_t value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:519</div></div>
<div class="ttc" id="agroup__group__groups_html_gaa981a95e0917d3167601a4c1b392336a"><div class="ttname"><a href="group__group__groups.html#gaa981a95e0917d3167601a4c1b392336a">cgroup_copy_cgroup</a></div><div class="ttdeci">int cgroup_copy_cgroup(struct cgroup *dst, struct cgroup *src)</div><div class="ttdef"><b>Definition:</b> api.c:2346</div></div>
<div class="ttc" id="agroup__group__groups_html_gab1725c50c49cec4b0bdad1f26b150ca7"><div class="ttname"><a href="group__group__groups.html#gab1725c50c49cec4b0bdad1f26b150ca7">cgroup_compare_controllers</a></div><div class="ttdeci">int cgroup_compare_controllers(struct cgroup_controller *cgca, struct cgroup_controller *cgcb)</div><div class="ttdef"><b>Definition:</b> wrapper.c:341</div></div>
<div class="ttc" id="agroup__group__groups_html_gab20fdb1ae479f8baac482336abf73900"><div class="ttname"><a href="group__group__groups.html#gab20fdb1ae479f8baac482336abf73900">cgroup_free</a></div><div class="ttdeci">void cgroup_free(struct cgroup **cgroup)</div><div class="ttdef"><b>Definition:</b> wrapper.c:196</div></div>
+<div class="ttc" id="agroup__group__groups_html_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:737</div></div>
<div class="ttc" id="agroup__group__groups_html_gab95007148eac89b7e935d93a4524787b"><div class="ttname"><a href="group__group__groups.html#gab95007148eac89b7e935d93a4524787b">cgroup_get_value_bool</a></div><div class="ttdeci">int cgroup_get_value_bool(struct cgroup_controller *controller, const char *name, bool *value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:595</div></div>
-<div class="ttc" id="agroup__group__groups_html_gac9b5ff481de08ba8fdfcbd42940d2cbf"><div class="ttname"><a href="group__group__groups.html#gac9b5ff481de08ba8fdfcbd42940d2cbf">cgroup_get_cgroup_name</a></div><div class="ttdeci">char * cgroup_get_cgroup_name(struct cgroup *cgroup)</div><div class="ttdef"><b>Definition:</b> wrapper.c:737</div></div>
+<div class="ttc" id="agroup__group__groups_html_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:44</div></div>
<div class="ttc" id="agroup__group__groups_html_gad4ba31fe5a8bba63b33b1ea339b849e6"><div class="ttname"><a href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup</a></div><div class="ttdeci">int cgroup_get_cgroup(struct cgroup *cgroup)</div><div class="ttdef"><b>Definition:</b> api.c:3222</div></div>
<div class="ttc" id="agroup__group__groups_html_gad9d2216205b96278c626122f8d5e63bb"><div class="ttname"><a href="group__group__groups.html#gad9d2216205b96278c626122f8d5e63bb">cgroup_add_value_uint64</a></div><div class="ttdeci">int cgroup_add_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value)</div><div class="ttdef"><b>Definition:</b> wrapper.c:273</div></div>
<div class="ttc" id="agroup__group__groups_html_gadb8e13df6064841d3c9707960f782fa7"><div class="ttname"><a href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup</a></div><div class="ttdeci">int cgroup_create_cgroup(struct cgroup *cgroup, int ignore_ownership)</div><div class="ttdef"><b>Definition:</b> api.c:2429</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: libcgroup</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
</iframe>
</div>
-<div class="PageDoc"><div class="header">
- <div class="headertitle">
-<div class="title">libcgroup </div> </div>
+<div><div class="header">
+ <div class="headertitle"><div class="title">libcgroup </div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><h1><a class="anchor" id="intro_sec"></a>
Introduction</h1>
-<p><code>libcgroup</code> is a library that abstracts the control group file system in Linux. It comes with various command-line tools and configuration files, see their man pages for details.</p>
-<p>This documentation provides description of <code>libcgroup</code> API. Read following sections, preferably in this order:</p><ol type="1">
+<p ><code>libcgroup</code> is a library that abstracts the control group file system in Linux. It comes with various command-line tools and configuration files, see their man pages for details.</p>
+<p >This documentation provides description of <code>libcgroup</code> API. Read following sections, preferably in this order:</p><ol type="1">
<li>Initialization</li>
<li><a class="el" href="group__group__groups.html">Control Groups</a></li>
<li><a class="el" href="group__group__iterators.html">Iterators</a></li>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: include/libcgroup/iterators.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
</div>
</div><!-- top -->
<div class="header">
- <div class="headertitle">
-<div class="title">iterators.h</div> </div>
+ <div class="headertitle"><div class="title">iterators.h</div></div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="preprocessor">#ifndef _LIBCGROUP_ITERATORS_H</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="preprocessor">#define _LIBCGROUP_ITERATORS_H</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  </div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#ifndef _LIBCGROUP_H_INSIDE</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="preprocessor">#error "Only <libcgroup.h> should be included directly."</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>  </div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#ifndef SWIG</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include <sys/types.h></span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include <stdio.h></span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include <features.h></span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  </div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div>
-<div class="line"><a name="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" href="group__group__iterators.html#ga29a572cbc0c07e2b02dfa0f1ac0067d3">cgroup_walk_type</a> {</div>
-<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3af865296e6a0e55cff574fbb132b9f913"> 86</a></span>  <a class="code" href="group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3af865296e6a0e55cff574fbb132b9f913">CGROUP_WALK_TYPE_PRE_DIR</a> = 0x1,</div>
-<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3abf3c31227768960bd6622d2562aae3e1"> 99</a></span>  <a class="code" href="group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3abf3c31227768960bd6622d2562aae3e1">CGROUP_WALK_TYPE_POST_DIR</a> = 0x2,</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> };</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  </div>
-<div class="line"><a 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" href="group__group__iterators.html#ga608b4aa32e2db58fed34771a6a272444">cgroup_file_type</a> {</div>
-<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444ad925cc45f1b34fe80e14fc6b05269740"> 106</a></span>  <a class="code" href="group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444ad925cc45f1b34fe80e14fc6b05269740">CGROUP_FILE_TYPE_FILE</a>, </div>
-<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a5418798fc4bf9634429c6af167a0e7c3"> 107</a></span>  <a class="code" href="group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a5418798fc4bf9634429c6af167a0e7c3">CGROUP_FILE_TYPE_DIR</a>, </div>
-<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a24e202c59f318e63ad8cafcc1b4b102b"> 108</a></span>  <a class="code" href="group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a24e202c59f318e63ad8cafcc1b4b102b">CGROUP_FILE_TYPE_OTHER</a>, </div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> };</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  </div>
-<div class="line"><a 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" href="structcgroup__file__info.html">cgroup_file_info</a> {</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keyword">enum</span> <a class="code" href="group__group__iterators.html#ga608b4aa32e2db58fed34771a6a272444">cgroup_file_type</a> <a class="code" href="structcgroup__file__info.html#a955506601f440d05cb11e4ee6b455c55">type</a>;</div>
-<div class="line"><a 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" href="structcgroup__file__info.html#a801424e68139c930e40ea24be4d96a68">path</a>;</div>
-<div class="line"><a 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" href="structcgroup__file__info.html#a739c7f87593e36d8589d3ffa80b57059">parent</a>;</div>
-<div class="line"><a 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" href="structcgroup__file__info.html#a4c61dc7f726ba0784ff8c71473dbc6e6">full_path</a>;</div>
-<div class="line"><a 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" href="structcgroup__file__info.html#ad56dca35266f0f5f5c2666b946d72709">depth</a>;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> };</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="keywordtype">int</span> <a class="code" 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 name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordtype">void</span> **handle, <span class="keyword">struct</span> <a class="code" href="structcgroup__file__info.html">cgroup_file_info</a> *info,</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordtype">int</span> *base_level);</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="keywordtype">int</span> <a class="code" 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 name="l00165"></a><span class="lineno"> 165</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__file__info.html">cgroup_file_info</a> *info, <span class="keywordtype">int</span> base_level);</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  </div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keywordtype">int</span> <a class="code" href="group__group__iterators.html#ga09a70990837a58e506a264f8c50d4cde">cgroup_walk_tree_end</a>(<span class="keywordtype">void</span> **handle);</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  </div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="keywordtype">int</span> <a class="code" href="group__group__iterators.html#ga645ec7a6206dffb32667e7a0e148edc8">cgroup_walk_tree_set_flags</a>(<span class="keywordtype">void</span> **handle, <span class="keywordtype">int</span> flags);</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  </div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="keywordtype">int</span> <a class="code" href="group__group__iterators.html#ga9378ee0f1f6e65900df8e25b3d7ce236">cgroup_read_value_begin</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> controller, <span class="keyword">const</span> <span class="keywordtype">char</span> *path,</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> name, <span class="keywordtype">void</span> **handle, <span class="keywordtype">char</span> *buffer, <span class="keywordtype">int</span> max);</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  </div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="keywordtype">int</span> <a class="code" href="group__group__iterators.html#gaced2fe331f19d599a3270db2440847cc">cgroup_read_value_next</a>(<span class="keywordtype">void</span> **handle, <span class="keywordtype">char</span> *buffer, <span class="keywordtype">int</span> max);</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  </div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="keywordtype">int</span> <a class="code" href="group__group__iterators.html#gad348f041e283860cbf6bcea567e23a21">cgroup_read_value_end</a>(<span class="keywordtype">void</span> **handle);</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  </div>
-<div class="line"><a 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 name="l00234"></a><span class="lineno"><a class="line" href="structcgroup__stat.html"> 234</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__stat.html">cgroup_stat</a> {</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keywordtype">char</span> name[FILENAME_MAX];</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keywordtype">char</span> value[<a class="code" href="group__group__iterators.html#ga55d2eac2af703794651d344c073566f5">CG_VALUE_MAX</a>];</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> };</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  </div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="keywordtype">int</span> <a class="code" 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 name="l00250"></a><span class="lineno"> 250</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__stat.html">cgroup_stat</a> *stat);</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  </div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="keywordtype">int</span> <a class="code" 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" href="structcgroup__stat.html">cgroup_stat</a> *stat);</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  </div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="keywordtype">int</span> <a class="code" href="group__group__iterators.html#gaba386d9db6cadc6ad85c2552f63447bb">cgroup_read_stats_end</a>(<span class="keywordtype">void</span> **handle);</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  </div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="keywordtype">int</span> <a class="code" href="group__group__iterators.html#gad7218154192f733120e1025cc19d0a36">cgroup_get_task_begin</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" 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 name="l00282"></a><span class="lineno"> 282</span>  pid_t *pid);</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  </div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="keywordtype">int</span> <a class="code" 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 name="l00292"></a><span class="lineno"> 292</span>  </div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="keywordtype">int</span> <a class="code" href="group__group__iterators.html#gaeb955e5f4da551268380b1271d478816">cgroup_get_task_end</a>(<span class="keywordtype">void</span> **handle);</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  </div>
-<div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="structcgroup__mount__point.html"> 312</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__mount__point.html">cgroup_mount_point</a> {</div>
-<div class="line"><a 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" href="structcgroup__mount__point.html#a849ccf1e77fffd5d45304c6adf0d2100">name</a>[FILENAME_MAX];</div>
-<div class="line"><a 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" href="structcgroup__mount__point.html#ad1e89dfc02cfd7341e2296086a4f251e">path</a>[FILENAME_MAX];</div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> };</div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  </div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="keywordtype">int</span> <a class="code" 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" href="structcgroup__mount__point.html">cgroup_mount_point</a> *info);</div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  </div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="keywordtype">int</span> <a class="code" href="group__group__iterators.html#ga926b70423b6c087c21a14670cd23cd7d">cgroup_get_controller_next</a>(<span class="keywordtype">void</span> **handle, <span class="keyword">struct</span> <a class="code" href="structcgroup__mount__point.html">cgroup_mount_point</a> *info);</div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  </div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="keywordtype">int</span> <a class="code" href="group__group__iterators.html#gab485cda2bc9640bacbf61f1953ae750c">cgroup_get_controller_end</a>(<span class="keywordtype">void</span> **handle);</div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  </div>
-<div class="line"><a name="l00356"></a><span class="lineno"><a class="line" href="structcontroller__data.html"> 356</a></span> <span class="keyword">struct </span><a class="code" href="structcontroller__data.html">controller_data</a> {</div>
-<div class="line"><a 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" href="structcontroller__data.html#a5474be4d8cc4553c94ca81c6a93f5a18">name</a>[FILENAME_MAX];</div>
-<div class="line"><a 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" href="structcontroller__data.html#a25e316f55473ca2b333b0d7e0ca644b4">hierarchy</a>;</div>
-<div class="line"><a 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" href="structcontroller__data.html#acd075c0bb48062bf720b68d0a30116eb">num_cgroups</a>;</div>
-<div class="line"><a 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" href="structcontroller__data.html#a24be412cfb6c19f7a13a4bff9e55206e">enabled</a>;</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> };</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  </div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="keywordtype">int</span> <a class="code" href="group__group__iterators.html#gad48ef653388ca6739a9b6bbb9d7da82e">cgroup_get_all_controller_begin</a>(<span class="keywordtype">void</span> **handle,</div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="keyword">struct</span> <a class="code" href="structcontroller__data.html">controller_data</a> *info);</div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="keywordtype">int</span> <a class="code" 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" href="structcontroller__data.html">controller_data</a> *info);</div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  </div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <span class="keywordtype">int</span> <a class="code" href="group__group__iterators.html#ga0c467d42a2c9a916a0edd339a6d7afc8">cgroup_get_all_controller_end</a>(<span class="keywordtype">void</span> **handle);</div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  </div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="keywordtype">int</span> <a class="code" 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 name="l00408"></a><span class="lineno"> 408</span>  <span class="keywordtype">char</span> *path);</div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="keywordtype">int</span> <a class="code" href="group__group__iterators.html#ga3d66997158cb8a334317923ad94cc789">cgroup_get_subsys_mount_point_next</a>(<span class="keywordtype">void</span> **handle,</div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="keywordtype">char</span> *path);</div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  </div>
-<div class="line"><a name="l00421"></a><span class="lineno"><a class="line" href="structcgroup__file__info.html#a955506601f440d05cb11e4ee6b455c55"> 421</a></span> <span class="keywordtype">int</span> <a class="code" href="group__group__iterators.html#ga9c9b0f1921c205bd25bfc6c1d20486eb">cgroup_get_subsys_mount_point_end</a>(<span class="keywordtype">void</span> **handle);</div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  </div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> } <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  </div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="preprocessor">#endif </span><span class="comment">/* _LIBCGROUP_ITERATORS_H */</span><span class="preprocessor"></span></div>
+<div class="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:4561</div></div>
<div class="ttc" id="agroup__group__iterators_html_ga0c467d42a2c9a916a0edd339a6d7afc8"><div class="ttname"><a href="group__group__iterators.html#ga0c467d42a2c9a916a0edd339a6d7afc8">cgroup_get_all_controller_end</a></div><div class="ttdeci">int cgroup_get_all_controller_end(void **handle)</div><div class="ttdef"><b>Definition:</b> api.c:5428</div></div>
<div class="ttc" id="agroup__group__iterators_html_ga1138e47f124f0f634586db5e0c4ae5de"><div class="ttname"><a href="group__group__iterators.html#ga1138e47f124f0f634586db5e0c4ae5de">cgroup_read_stats_begin</a></div><div class="ttdeci">int cgroup_read_stats_begin(const char *controller, const char *path, void **handle, struct cgroup_stat *stat)</div><div class="ttdef"><b>Definition:</b> api.c:4819</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
-/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
-!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
+/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:y}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),j=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",B=new RegExp(M+"+","g"),$=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+S+"'></a><select id='"+S+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&D.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(j),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(B," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace($,"$1"));return s[S]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace($,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace($," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=S.split("").sort(j).join("")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(S(e).filter(function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var D,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&S(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},S.extend({Deferred:function(e){var o=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e})};var F=S.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),S.ready()}S.fn.ready=function(e){return F.then(e)["catch"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var $=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)$(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):$(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===S.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,"")},u=s(),l=n&&n[3]||(S.cssNumber[t]?"":"px"),c=e.nodeType&&(S.cssNumber[t]||"px"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",y.option=!!ce.lastChild;var ge={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,y.option||(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^([^.]*)(?:\.(.+)|)/;function we(){return!0}function Te(){return!1}function Ce(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ee(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ee(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Te;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Se(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n&&n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,we)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=be.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.hasData(e)&&Y.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=be.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||S.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=S.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<S(i,this).index(l):S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click",we),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?we:Te,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Te,isPropagationStopped:Te,isImmediatePropagationStopped:Te,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=we,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=we,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=we,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},S.event.addProp),S.each({focus:"focusin",blur:"focusout"},function(e,t){S.event.special[e]={setup:function(){return Se(this,e,Ce),!1},trigger:function(){return Se(this,e),!0},_default:function(){return!0},delegateType:t}}),S.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),S.fn.extend({on:function(e,t,n,r){return Ee(this,e,t,n,r)},one:function(e,t,n,r){return Ee(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Te),this.each(function(){S.event.remove(this,e,n,t)})}});var ke=/<script|<style|<link/i,Ae=/checked\s*(?:[^=]|=\s*.checked.)/i,Ne=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function He(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Ae.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),He(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ve(e,"script"),De)).length;c<f;c++)u=e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,qe),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&S.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(Ne,""),u,l))}return n}function Oe(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ve(r)),r.parentNode&&(n&&ie(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Le(o[r],a[r]);else Le(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Oe(this,e,!0)},remove:function(e){return Oe(this,e)},text:function(e){return $(this,function(e){return void 0===e?S.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return He(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||je(this,e).appendChild(e)})},prepend:function(){return He(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=je(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return $(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!ke.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return He(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Pe=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Re=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Me=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Ie=new RegExp(ne.join("|"),"i");function We(e,t,n){var r,i,o,a,s=e.style;return(n=n||Re(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||ie(e)||(a=S.style(e,t)),!y.pixelBoxStyles()&&Pe.test(a)&&Ie.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function Fe(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement("div"),l=E.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===l.style.backgroundClip,S.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=E.createElement("table"),t=E.createElement("tr"),n=E.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,re.removeChild(e)),a}}))}();var Be=["Webkit","Moz","ms"],$e=E.createElement("div").style,_e={};function ze(e){var t=S.cssProps[e]||_e[e];return t||(e in $e?e:_e[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Be.length;while(n--)if((e=Be[n]+t)in $e)return e}(e)||e)}var Ue=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ve={position:"absolute",visibility:"hidden",display:"block"},Ge={letterSpacing:"0",fontWeight:"400"};function Ye(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Qe(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=S.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=S.css(e,"border"+ne[a]+"Width",!0,i))):(u+=S.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=S.css(e,"border"+ne[a]+"Width",!0,i):s+=S.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Je(e,t,n){var r=Re(e),i=(!y.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=We(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Pe.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||!y.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Qe(e,t,n||(i?"border":"content"),o,r,a)+"px"}function Ke(e,t,n,r,i){return new Ke.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=We(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Xe.test(t),l=e.style;if(u||(t=ze(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Xe.test(t)||(t=ze(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=We(e,t,r)),"normal"===i&&t in Ge&&(i=Ge[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],function(e,u){S.cssHooks[u]={get:function(e,t,n){if(t)return!Ue.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Je(e,u,n):Me(e,Ve,function(){return Je(e,u,n)})},set:function(e,t,n){var r,i=Re(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===S.css(e,"boxSizing",!1,i),s=n?Qe(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Qe(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=S.css(e,u)),Ye(0,t,s)}}}),S.cssHooks.marginLeft=Fe(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(We(e,"marginLeft"))||e.getBoundingClientRect().left-Me(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),S.each({margin:"",padding:"",border:"Width"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(S.cssHooks[i+o].set=Ye)}),S.fn.extend({css:function(e,t){return $(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Re(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=Ke).prototype={constructor:Ke,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=Ke.propHooks[this.prop];return e&&e.get?e.get(this):Ke.propHooks._default.get(this)},run:function(e){var t,n=Ke.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Ke.propHooks._default.set(this),this}}).init.prototype=Ke.prototype,(Ke.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[ze(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=Ke.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=Ke.prototype.init,S.fx.step={};var Ze,et,tt,nt,rt=/^(?:toggle|show|hide)$/,it=/queueHooks$/;function ot(){et&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(ot):C.setTimeout(ot,S.fx.interval),S.fx.tick())}function at(){return C.setTimeout(function(){Ze=void 0}),Ze=Date.now()}function st(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ut(e,t,n){for(var r,i=(lt.tweeners[t]||[]).concat(lt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function lt(o,e,t){var n,a,r=0,i=lt.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=Ze||at(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),originalProperties:e,originalOptions:t,startTime:Ze||at(),duration:t.duration,tweens:[],createTween:function(e,t){var n=S.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=lt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ut,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}S.Animation=S.extend(lt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],lt.tweeners[n]=lt.tweeners[n]||[],lt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),v=Y.get(e,"fxshow");for(r in n.queue||(null==(a=S._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,S.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],rt.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Y.get(e,"display")),"none"===(c=S.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=S.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===S.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Y.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)S.style(e,r,d[r])})),u=ut(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?lt.prefilters.unshift(e):lt.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&"object"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=lt(this,S.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&it.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),S.each(["toggle","show","hide"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(st(r,!0),e,t,n)}}),S.each({slideDown:st("show"),slideUp:st("hide"),slideToggle:st("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(Ze=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),Ze=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){et||(et=!0,ot())},S.fx.stop=function(){et=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},tt=E.createElement("input"),nt=E.createElement("select").appendChild(E.createElement("option")),tt.type="checkbox",y.checkOn=""!==tt.value,y.optSelected=nt.selected,(tt=E.createElement("input")).value="t",tt.type="radio",y.radioValue="t"===tt.value;var ct,ft=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return $(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?ct:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ct={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),function(e,t){var a=ft[t]||S.find.attr;ft[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=ft[o],ft[o]=r,r=null!=a(e,t,n)?o:null,ft[o]=i),r}});var pt=/^(?:input|select|textarea|button)$/i,dt=/^(?:a|area)$/i;function ht(e){return(e.match(P)||[]).join(" ")}function gt(e){return e.getAttribute&&e.getAttribute("class")||""}function vt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return $(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,"tabindex");return t?parseInt(t,10):pt.test(e.nodeName)||dt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).addClass(t.call(this,e,gt(this)))});if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&" "+ht(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=ht(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).removeClass(t.call(this,e,gt(this)))});if(!arguments.length)return this.attr("class","");if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&" "+ht(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=ht(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){S(this).toggleClass(i.call(this,e,gt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=S(this),r=vt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=gt(this))&&Y.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Y.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+ht(gt(n))+" ").indexOf(t))return!0;return!1}});var yt=/\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?"":e+""})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(yt,""):null==e?"":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:ht(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},y.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var mt=/^(?:focusinfocus|focusoutblur)$/,xt=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!mt.test(d+S.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[S.expando]?e:new S.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,mt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,xt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,xt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),y.focusin||S.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var bt=C.location,wt={guid:Date.now()},Tt=/\?/;S.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||S.error("Invalid XML: "+(n?S.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var Ct=/\[\]$/,Et=/\r?\n/g,St=/^(?:submit|button|image|reset|file)$/i,kt=/^(?:input|select|textarea|keygen)/i;function At(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||Ct.test(n)?i(n,t):At(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)At(n+"["+t+"]",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)At(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&kt.test(this.nodeName)&&!St.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(Et,"\r\n")}}):{name:t.name,value:n.replace(Et,"\r\n")}}).get()}});var Nt=/%20/g,jt=/#.*$/,Dt=/([?&])_=[^&]*/,qt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Lt=/^(?:GET|HEAD)$/,Ht=/^\/\//,Ot={},Pt={},Rt="*/".concat("*"),Mt=E.createElement("a");function It(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Wt(t,i,o,a){var s={},u=t===Pt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Ft(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Mt.href=bt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:bt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(bt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Rt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Ft(Ft(e,S.ajaxSettings),t):Ft(S.ajaxSettings,e)},ajaxPrefilter:It(Ot),ajaxTransport:It(Pt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=S.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?S(y):S.event,x=S.Deferred(),b=S.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=qt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||bt.href)+"").replace(Ht,bt.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(P)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Mt.protocol+"//"+Mt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=S.param(v.data,v.traditional)),Wt(Ot,v,t,T),h)return T;for(i in(g=S.event&&v.global)&&0==S.active++&&S.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Lt.test(v.type),f=v.url.replace(jt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Nt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(Tt.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Dt,"$1"),o=(Tt.test(f)?"&":"?")+"_="+wt.guid+++o),v.url=f+o),v.ifModified&&(S.lastModified[f]&&T.setRequestHeader("If-Modified-Since",S.lastModified[f]),S.etag[f]&&T.setRequestHeader("If-None-Match",S.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+Rt+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Wt(Pt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<S.inArray("script",v.dataTypes)&&S.inArray("json",v.dataTypes)<0&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(S.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(S.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--S.active||S.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return S.get(e,t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Bt={0:200,1223:204},$t=S.ajaxSettings.xhr();y.cors=!!$t&&"withCredentials"in $t,y.ajax=$t=!!$t,S.ajaxTransport(function(i){var o,a;if(y.cors||$t&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Bt[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),S.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=ht(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&S.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?S("<div>").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Xt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase=X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?"":(e+"").replace(Xt,"")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return S});var Vt=C.jQuery,Gt=C.$;return S.noConflict=function(e){return C.$===S&&(C.$=Gt),e&&C.jQuery===S&&(C.jQuery=Vt),S},"undefined"==typeof e&&(C.jQuery=C.$=S),S});
/*! jQuery UI - v1.12.1 - 2019-01-27
* http://jqueryui.com
* Includes: widget.js, position.js, data.js, disable-selection.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/resizable.js, widgets/mouse.js
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: src/libcgroup-internal.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
</div>
</div><!-- top -->
<div class="header">
- <div class="headertitle">
-<div class="title">libcgroup-internal.h</div> </div>
+ <div class="headertitle"><div class="title">libcgroup-internal.h</div></div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright IBM Corporation. 2008</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> *</span></div>
-<div class="line"><a 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 name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> *</span></div>
-<div class="line"><a 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 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 name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * as published by the Free Software Foundation.</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> *</span></div>
-<div class="line"><a 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 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 name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#ifndef __LIBCG_INTERNAL</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#define __LIBCG_INTERNAL</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  </div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  </div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "config.h"</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <dirent.h></span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <fts.h></span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <libcgroup.h></span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <limits.h></span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <mntent.h></span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <pthread.h></span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <sys/stat.h></span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <sys/types.h></span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <setjmp.h></span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">/* Maximum number of mount points/controllers */</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#define MAX_MNT_ELEMENTS 16</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">/* Estimated number of groups created */</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#define MAX_GROUP_ELEMENTS 128</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">/* Maximum length of a value */</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#define CG_CONTROL_VALUE_MAX 4096</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#define CG_NV_MAX 100</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#define CG_CONTROLLER_MAX 100</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#define CG_OPTIONS_MAX 100</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">/* Max number of mounted hierarchies. Event if one controller is mounted per</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment"> * hier, it can not exceed CG_CONTROLLER_MAX</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#define CG_HIER_MAX CG_CONTROLLER_MAX</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  </div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">/* Definitions for the uid and gid members of a cgroup_rules */</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment">/* FIXME: These really should not be negative values */</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#define CGRULE_INVALID ((uid_t) -1)</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#define CGRULE_WILD ((uid_t) -2)</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  </div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#define CGRULE_SUCCESS_STORE_PID "SUCCESS_STORE_PID"</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment">/* Definitions for the cgrules options field */</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor">#define CGRULE_OPTION_IGNORE "ignore"</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#define CGCONFIG_CONF_FILE "/etc/cgconfig.conf"</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment">/* Minimum number of file in template file list for cgrulesengd */</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#define CGCONFIG_CONF_FILES_LIST_MINIMUM_SIZE 4</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor">#define CGCONFIG_CONF_DIR "/etc/cgconfig.d"</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor">#define CGRULES_CONF_FILE "/etc/cgrules.conf"</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor">#define CGRULES_CONF_DIR "/etc/cgrules.d"</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor">#define CGRULES_MAX_FIELDS_PER_LINE 3</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor">#define CGROUP_BUFFER_LEN (5 * FILENAME_MAX)</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment">/* Maximum length of a key(<user>:<process name>) in the daemon config file */</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor">#define CGROUP_RULE_MAXKEY (LOGIN_NAME_MAX + FILENAME_MAX + 1)</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  </div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment">/* Maximum length of a line in the daemon config file */</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor">#define CGROUP_RULE_MAXLINE (FILENAME_MAX + CGROUP_RULE_MAXKEY + \</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor"> CG_CONTROLLER_MAX + 3)</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  </div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor">#define CGROUP_FILE_PREFIX "cgroup"</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  </div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="preprocessor">#define cgroup_err(x...) cgroup_log(CGROUP_LOG_ERROR, x)</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor">#define cgroup_warn(x...) cgroup_log(CGROUP_LOG_WARNING, x)</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor">#define cgroup_info(x...) cgroup_log(CGROUP_LOG_INFO, x)</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor">#define cgroup_dbg(x...) cgroup_log(CGROUP_LOG_DEBUG, x)</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  </div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor">#define CGROUP_DEFAULT_LOGLEVEL CGROUP_LOG_ERROR</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor">#define max(x,y) ((y)<(x)?(x):(y))</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor">#define min(x,y) ((y)>(x)?(x):(y))</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  </div>
-<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="structcontrol__value.html"> 90</a></span> <span class="keyword">struct </span><a class="code" href="structcontrol__value.html">control_value</a> {</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordtype">char</span> name[FILENAME_MAX];</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordtype">char</span> value[CG_CONTROL_VALUE_MAX];</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  </div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">/* cgget uses this field for values that span multiple lines */</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordtype">char</span> *multiline_value;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  </div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="comment">/*</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment"> * The abstraction layer uses prev_name when there's an N->1 or</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="comment"> * 1->N relationship between cgroup v1 and v2 settings.</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordtype">char</span> *prev_name;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  </div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordtype">bool</span> dirty;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> };</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  </div>
-<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="structcgroup__controller.html"> 106</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__controller.html">cgroup_controller</a> {</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordtype">char</span> name[FILENAME_MAX];</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keyword">struct </span><a class="code" href="structcontrol__value.html">control_value</a> *values[CG_NV_MAX];</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keyword">struct </span><a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordtype">int</span> index;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keyword">enum</span> cg_version_t version;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> };</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  </div>
-<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="structcgroup.html"> 114</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup.html">cgroup</a> {</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordtype">char</span> name[FILENAME_MAX];</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keyword">struct </span><a class="code" href="structcgroup__controller.html">cgroup_controller</a> *controller[CG_CONTROLLER_MAX];</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordtype">int</span> index;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  uid_t tasks_uid;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  gid_t tasks_gid;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  mode_t task_fperm;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  uid_t control_uid;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  gid_t control_gid;</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  mode_t control_fperm;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  mode_t control_dperm;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> };</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  </div>
-<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="structcg__mount__point.html"> 127</a></span> <span class="keyword">struct </span><a class="code" href="structcg__mount__point.html">cg_mount_point</a> {</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordtype">char</span> path[FILENAME_MAX];</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keyword">struct </span><a class="code" href="structcg__mount__point.html">cg_mount_point</a> *next;</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> };</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  </div>
-<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="structcg__mount__table__s.html"> 132</a></span> <span class="keyword">struct </span><a class="code" href="structcg__mount__table__s.html">cg_mount_table_s</a> {</div>
-<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="structcg__mount__table__s.html#a9704fa3ec3674f6d433345ea52b6aeef"> 134</a></span>  <span class="keywordtype">char</span> <a class="code" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>[FILENAME_MAX];</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keyword">struct </span><a class="code" href="structcg__mount__point.html">cg_mount_point</a> <a class="code" href="structcg__mount__table__s.html#a9704fa3ec3674f6d433345ea52b6aeef">mount</a>;</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordtype">int</span> index;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keyword">enum</span> cg_version_t version;</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> };</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  </div>
-<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="structcgroup__rules__data.html"> 143</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__rules__data.html">cgroup_rules_data</a> {</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  pid_t pid; <span class="comment">/* pid of the process which needs to change group */</span></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  </div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="comment">/* Details of user under consideration for destination cgroup */</span></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keyword">struct </span>passwd *pw;</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="comment">/* Gid of the process */</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  gid_t gid;</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> };</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  </div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="comment">/* A rule that maps UID/GID to a cgroup */</span></div>
-<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="structcgroup__rule.html"> 153</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__rule.html">cgroup_rule</a> {</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  uid_t uid;</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  gid_t gid;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordtype">bool</span> is_ignore;</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keywordtype">char</span> *procname;</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordtype">char</span> username[LOGIN_NAME_MAX];</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordtype">char</span> destination[FILENAME_MAX];</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordtype">char</span> *controllers[MAX_MNT_ELEMENTS];</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keyword">struct </span><a class="code" href="structcgroup__rule.html">cgroup_rule</a> *next;</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> };</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  </div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="comment">/* Container for a list of rules */</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="structcgroup__rule__list.html"> 165</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__rule__list.html">cgroup_rule_list</a> {</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keyword">struct </span><a class="code" href="structcgroup__rule.html">cgroup_rule</a> *head;</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keyword">struct </span><a class="code" href="structcgroup__rule.html">cgroup_rule</a> *tail;</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordtype">int</span> len;</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> };</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  </div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="comment">/*The walk_tree handle */</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="structcgroup__tree__handle.html"> 172</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__tree__handle.html">cgroup_tree_handle</a> {</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  FTS *fts;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordtype">int</span> flags;</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> };</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  </div>
-<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="structcgroup__dictionary__item.html"> 184</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> {</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *value;</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keyword">struct </span><a class="code" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> *next;</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> };</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  </div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="comment">/* Flags for cgroup_dictionary_create */</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="preprocessor">#define CG_DICT_DONT_FREE_ITEMS 1</span></div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  </div>
-<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="structcgroup__dictionary.html"> 207</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__dictionary.html">cgroup_dictionary</a> {</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keyword">struct </span><a class="code" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> *head;</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keyword">struct </span><a class="code" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> *tail;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordtype">int</span> flags;</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> };</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  </div>
-<div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="structcgroup__dictionary__iterator.html"> 214</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__dictionary__iterator.html">cgroup_dictionary_iterator</a> {</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keyword">struct </span><a class="code" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> *item;</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> };</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  </div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="keyword">extern</span> __thread <span class="keywordtype">int</span> last_errno;</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  </div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="keyword">extern</span> jmp_buf parser_error_env;</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  </div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="comment">/* Internal API */</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="keywordtype">char</span> *cg_build_path(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">char</span> *path, <span class="keyword">const</span> <span class="keywordtype">char</span> *type);</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="keywordtype">int</span> cgroup_get_uid_gid_from_procfs(pid_t pid, uid_t *euid, gid_t *egid);</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="keywordtype">int</span> cgroup_get_procname_from_procfs(pid_t pid, <span class="keywordtype">char</span> **procname);</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="keywordtype">int</span> cg_mkdir_p(<span class="keyword">const</span> <span class="keywordtype">char</span> *path);</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="keyword">struct </span><a class="code" href="structcgroup.html">cgroup</a> *create_cgroup_from_name_value_pairs(<span class="keyword">const</span> <span class="keywordtype">char</span> *name,</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keyword">struct</span> <a class="code" href="structcontrol__value.html">control_value</a> *name_value, <span class="keywordtype">int</span> nv_number);</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="keywordtype">void</span> init_cgroup_table(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *cgroups, <span class="keywordtype">size_t</span> count);</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  </div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="comment">/*</span></div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="comment"> * Main mounting structures</span></div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structcg__mount__table__s.html">cg_mount_table_s</a> cg_mount_table[CG_CONTROLLER_MAX];</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="keyword">extern</span> pthread_rwlock_t cg_mount_table_lock;</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  </div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="comment">/*</span></div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="comment"> * config related structures</span></div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  </div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="keyword">extern</span> __thread <span class="keywordtype">char</span> *cg_namespace_table[CG_CONTROLLER_MAX];</div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  </div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="comment">/*</span></div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="comment"> * config related API</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="keywordtype">int</span> cgroup_config_insert_cgroup(<span class="keywordtype">char</span> *cg_name);</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="keywordtype">int</span> cgroup_config_parse_controller_options(<span class="keywordtype">char</span> *controller,</div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__dictionary.html">cgroup_dictionary</a> *values);</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="keywordtype">int</span> template_config_insert_cgroup(<span class="keywordtype">char</span> *cg_name);</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="keywordtype">int</span> template_config_parse_controller_options(<span class="keywordtype">char</span> *controller,</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__dictionary.html">cgroup_dictionary</a> *values);</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="keywordtype">int</span> template_config_group_task_perm(<span class="keywordtype">char</span> *perm_type, <span class="keywordtype">char</span> *value);</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="keywordtype">int</span> template_config_group_admin_perm(<span class="keywordtype">char</span> *perm_type, <span class="keywordtype">char</span> *value);</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="keywordtype">int</span> cgroup_config_group_task_perm(<span class="keywordtype">char</span> *perm_type, <span class="keywordtype">char</span> *value);</div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="keywordtype">int</span> cgroup_config_group_admin_perm(<span class="keywordtype">char</span> *perm_type, <span class="keywordtype">char</span> *value);</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="keywordtype">int</span> cgroup_config_insert_into_mount_table(<span class="keywordtype">char</span> *<a class="code" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>, <span class="keywordtype">char</span> *mount_point);</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="keywordtype">int</span> cgroup_config_insert_into_namespace_table(<span class="keywordtype">char</span> *<a class="code" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>, <span class="keywordtype">char</span> *mount_point);</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="keywordtype">void</span> cgroup_config_cleanup_mount_table(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="keywordtype">void</span> cgroup_config_cleanup_namespace_table(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="keywordtype">int</span> cgroup_config_define_default(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  </div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_create(<span class="keyword">struct</span> <a class="code" href="structcgroup__dictionary.html">cgroup_dictionary</a> **dict,</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keywordtype">int</span> flags);</div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_add(<span class="keyword">struct</span> <a class="code" href="structcgroup__dictionary.html">cgroup_dictionary</a> *dict,</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *value);</div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_free(<span class="keyword">struct</span> <a class="code" href="structcgroup__dictionary.html">cgroup_dictionary</a> *dict);</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  </div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_iterator_begin(<span class="keyword">struct</span> <a class="code" href="structcgroup__dictionary.html">cgroup_dictionary</a> *dict,</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keywordtype">void</span> **handle, <span class="keyword">const</span> <span class="keywordtype">char</span> **<a class="code" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> **value);</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_iterator_next(<span class="keywordtype">void</span> **handle,</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> **<a class="code" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> **value);</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="keyword">extern</span> <span class="keywordtype">void</span> cgroup_dictionary_iterator_end(<span class="keywordtype">void</span> **handle);</div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  </div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="keywordtype">int</span> cg_chmod_path(<span class="keyword">const</span> <span class="keywordtype">char</span> *path, mode_t mode, <span class="keywordtype">int</span> owner_is_umask);</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  </div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="keywordtype">int</span> cgroup_build_tasks_procs_path(<span class="keywordtype">char</span> * <span class="keyword">const</span> path,</div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keywordtype">size_t</span> path_sz, <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> cg_name,</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> ctrl_name);</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  </div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="keywordtype">char</span> *cg_build_path_locked(<span class="keyword">const</span> <span class="keywordtype">char</span> *setting, <span class="keywordtype">char</span> *path,</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *controller);</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  </div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="keywordtype">int</span> cgroup_fill_cgc(<span class="keyword">struct</span> dirent *ctrl_dir, <span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>,</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *cgc, <span class="keywordtype">int</span> cg_index);</div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  </div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="keywordtype">int</span> cgroup_test_subsys_mounted(<span class="keyword">const</span> <span class="keywordtype">char</span> *ctrl_name);</div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  </div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="keywordtype">int</span> cgroup_copy_controller_values(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst,</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> src);</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  </div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="keywordtype">int</span> cgroup_remove_value(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> controller,</div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> <a class="code" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>);</div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  </div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <span class="keywordtype">void</span> cgroup_free_controller(<span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> *ctrl);</div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  </div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="preprocessor">#ifdef UNIT_TEST</span></div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  </div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="preprocessor">#define TEST_PROC_PID_CGROUP_FILE "test-procpidcgroup"</span></div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  </div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="keywordtype">int</span> cgroup_parse_rules_options(<span class="keywordtype">char</span> *options,</div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keyword">struct</span> <a class="code" href="structcgroup__rule.html">cgroup_rule</a> * <span class="keyword">const</span> rule);</div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  </div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="keywordtype">int</span> cg_get_cgroups_from_proc_cgroups(pid_t pid, <span class="keywordtype">char</span> *cgroup_list[],</div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keywordtype">char</span> *controller_list[],</div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <span class="keywordtype">int</span> list_len);</div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  </div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="keywordtype">bool</span> cgroup_compare_ignore_rule(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structcgroup__rule.html">cgroup_rule</a> * <span class="keyword">const</span> rule,</div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  pid_t pid, <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> procname);</div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  </div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="keywordtype">bool</span> cgroup_compare_wildcard_procname(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> rule_procname,</div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> procname);</div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  </div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="keywordtype">int</span> cgroup_process_v1_mnt(<span class="keywordtype">char</span> *controllers[], <span class="keyword">struct</span> mntent *ent,</div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <span class="keywordtype">int</span> *mnt_tbl_idx);</div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  </div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="keywordtype">int</span> cgroup_process_v2_mnt(<span class="keyword">struct</span> mntent *ent, <span class="keywordtype">int</span> *mnt_tbl_idx);</div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  </div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="keywordtype">int</span> cgroup_set_values_recursive(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> base,</div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> controller,</div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keywordtype">bool</span> ignore_non_dirty_failures);</div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  </div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="keywordtype">int</span> cgroup_chown_chmod_tasks(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> cg_path,</div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  uid_t uid, gid_t gid, mode_t fperm);</div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  </div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="keywordtype">int</span> cgroupv2_subtree_control(<span class="keyword">const</span> <span class="keywordtype">char</span> *path, <span class="keyword">const</span> <span class="keywordtype">char</span> *ctrl_name,</div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="keywordtype">bool</span> enable);</div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  </div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="keywordtype">int</span> cgroupv2_get_subtree_control(<span class="keyword">const</span> <span class="keywordtype">char</span> *path,</div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *ctrl_name,</div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keywordtype">bool</span> * <span class="keyword">const</span> enabled);</div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  </div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="keywordtype">int</span> cgroupv2_controller_enabled(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> cg_name,</div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> ctrl_name);</div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  </div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="preprocessor">#endif </span><span class="comment">/* UNIT_TEST */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  </div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> } <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  </div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="preprocessor">#endif</span></div>
+<div class="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><span class="preprocessor">#include <dirent.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><span class="preprocessor">#include <libcgroup.h></span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#include <limits.h></span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#include <mntent.h></span></div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#include <pthread.h></span></div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#include <sys/stat.h></span></div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#include <sys/types.h></span></div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="preprocessor">#include <setjmp.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="comment">/* Maximum number of mount points/controllers */</span></div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="preprocessor">#define MAX_MNT_ELEMENTS 16</span></div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="comment">/* Estimated number of groups created */</span></div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="preprocessor">#define MAX_GROUP_ELEMENTS 128</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="comment">/* Maximum length of a value */</span></div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="preprocessor">#define CG_CONTROL_VALUE_MAX 4096</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 CG_NV_MAX 100</span></div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="preprocessor">#define CG_CONTROLLER_MAX 100</span></div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="preprocessor">#define CG_OPTIONS_MAX 100</span></div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="comment">/* Max number of mounted hierarchies. Event if one controller is mounted per</span></div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="comment"> * hier, it can not exceed CG_CONTROLLER_MAX</span></div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="comment"> */</span></div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="preprocessor">#define CG_HIER_MAX CG_CONTROLLER_MAX</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="comment">/* Definitions for the uid and gid members of a cgroup_rules */</span></div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="comment">/* FIXME: These really should not be negative values */</span></div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="preprocessor">#define CGRULE_INVALID ((uid_t) -1)</span></div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span><span class="preprocessor">#define CGRULE_WILD ((uid_t) -2)</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 CGRULE_SUCCESS_STORE_PID "SUCCESS_STORE_PID"</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="comment">/* Definitions for the cgrules options field */</span></div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="preprocessor">#define CGRULE_OPTION_IGNORE "ignore"</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 CGCONFIG_CONF_FILE "/etc/cgconfig.conf"</span></div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="comment">/* Minimum number of file in template file list for cgrulesengd */</span></div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="preprocessor">#define CGCONFIG_CONF_FILES_LIST_MINIMUM_SIZE 4</span></div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="preprocessor">#define CGCONFIG_CONF_DIR "/etc/cgconfig.d"</span></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><span class="preprocessor">#define CGRULES_CONF_FILE "/etc/cgrules.conf"</span></div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="preprocessor">#define CGRULES_CONF_DIR "/etc/cgrules.d"</span></div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="preprocessor">#define CGRULES_MAX_FIELDS_PER_LINE 3</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="preprocessor">#define CGROUP_BUFFER_LEN (5 * FILENAME_MAX)</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="comment">/* Maximum length of a key(<user>:<process name>) in the daemon config file */</span></div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="preprocessor">#define CGROUP_RULE_MAXKEY (LOGIN_NAME_MAX + FILENAME_MAX + 1)</span></div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span><span class="comment">/* Maximum length of a line in the daemon config file */</span></div>
+<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span><span class="preprocessor">#define CGROUP_RULE_MAXLINE (FILENAME_MAX + CGROUP_RULE_MAXKEY + \</span></div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><span class="preprocessor"> CG_CONTROLLER_MAX + 3)</span></div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> </div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span><span class="preprocessor">#define CGROUP_FILE_PREFIX "cgroup"</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_err(x...) cgroup_log(CGROUP_LOG_ERROR, x)</span></div>
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span><span class="preprocessor">#define cgroup_warn(x...) cgroup_log(CGROUP_LOG_WARNING, x)</span></div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span><span class="preprocessor">#define cgroup_info(x...) cgroup_log(CGROUP_LOG_INFO, x)</span></div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span><span class="preprocessor">#define cgroup_dbg(x...) cgroup_log(CGROUP_LOG_DEBUG, x)</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"> 85</span><span class="preprocessor">#define CGROUP_DEFAULT_LOGLEVEL CGROUP_LOG_ERROR</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 max(x,y) ((y)<(x)?(x):(y))</span></div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</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> </div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"><a class="line" href="structcontrol__value.html"> 90</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="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="keywordtype">char</span> name[FILENAME_MAX];</div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="keywordtype">char</span> value[CG_CONTROL_VALUE_MAX];</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="comment">/* cgget uses this field for values that span multiple lines */</span></div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordtype">char</span> *multiline_value;</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="comment">/*</span></div>
+<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="comment"> * The abstraction layer uses prev_name when there's an N->1 or</span></div>
+<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><span class="comment"> * 1->N relationship between cgroup v1 and v2 settings.</span></div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="comment"> */</span></div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keywordtype">char</span> *prev_name;</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">bool</span> dirty;</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> </div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"><a class="line" href="structcgroup__controller.html"> 106</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="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordtype">char</span> name[FILENAME_MAX];</div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</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="l00109" name="l00109"></a><span class="lineno"> 109</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="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keywordtype">int</span> index;</div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="keyword">enum</span> cg_version_t version;</div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span>};</div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> </div>
+<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"><a class="line" href="structcgroup.html"> 114</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup.html">cgroup</a> {</div>
+<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <span class="keywordtype">char</span> name[FILENAME_MAX];</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> *controller[CG_CONTROLLER_MAX];</div>
+<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="keywordtype">int</span> index;</div>
+<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> uid_t tasks_uid;</div>
+<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> gid_t tasks_gid;</div>
+<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> mode_t task_fperm;</div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> uid_t control_uid;</div>
+<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> gid_t control_gid;</div>
+<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> mode_t control_fperm;</div>
+<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> mode_t control_dperm;</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__point.html"> 127</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="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keywordtype">char</span> path[FILENAME_MAX];</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="structcg__mount__point.html">cg_mount_point</a> *next;</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> </div>
+<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"><a class="line" href="structcg__mount__table__s.html"> 132</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcg__mount__table__s.html">cg_mount_table_s</a> {</div>
+<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"><a class="line" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6"> 134</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="l00138" name="l00138"></a><span class="lineno"><a class="line" href="structcg__mount__table__s.html#a9704fa3ec3674f6d433345ea52b6aeef"> 138</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="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keywordtype">int</span> index;</div>
+<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> <span class="keyword">enum</span> cg_version_t version;</div>
+<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span>};</div>
+<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> </div>
+<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"><a class="line" href="structcgroup__rules__data.html"> 143</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__rules__data.html">cgroup_rules_data</a> {</div>
+<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> pid_t pid; <span class="comment">/* pid of the process which needs to change group */</span></div>
+<div class="line"><a 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> <span class="comment">/* Details of user under consideration for destination cgroup */</span></div>
+<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <span class="keyword">struct </span>passwd *pw;</div>
+<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="comment">/* Gid of the process */</span></div>
+<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> gid_t gid;</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> </div>
+<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span><span class="comment">/* A rule that maps UID/GID to a cgroup */</span></div>
+<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"><a class="line" href="structcgroup__rule.html"> 153</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="l00154" name="l00154"></a><span class="lineno"> 154</span> uid_t uid;</div>
+<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> gid_t gid;</div>
+<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keywordtype">bool</span> is_ignore;</div>
+<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <span class="keywordtype">char</span> *procname;</div>
+<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="keywordtype">char</span> username[LOGIN_NAME_MAX];</div>
+<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <span class="keywordtype">char</span> destination[FILENAME_MAX];</div>
+<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <span class="keywordtype">char</span> *controllers[MAX_MNT_ELEMENTS];</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> *next;</div>
+<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span>};</div>
+<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> </div>
+<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span><span class="comment">/* Container for a list of rules */</span></div>
+<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"><a class="line" href="structcgroup__rule__list.html"> 165</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__rule__list.html">cgroup_rule_list</a> {</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__rule.html">cgroup_rule</a> *head;</div>
+<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</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="l00168" name="l00168"></a><span class="lineno"> 168</span> <span class="keywordtype">int</span> len;</div>
+<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span>};</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><span class="comment">/*The walk_tree handle */</span></div>
+<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"><a class="line" href="structcgroup__tree__handle.html"> 172</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__tree__handle.html">cgroup_tree_handle</a> {</div>
+<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> FTS *fts;</div>
+<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> <span class="keywordtype">int</span> flags;</div>
+<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span>};</div>
+<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> </div>
+<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"><a class="line" href="structcgroup__dictionary__item.html"> 184</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> {</div>
+<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *name;</div>
+<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *value;</div>
+<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</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="l00188" name="l00188"></a><span class="lineno"> 188</span>};</div>
+<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> </div>
+<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span><span class="comment">/* Flags for cgroup_dictionary_create */</span></div>
+<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span><span class="preprocessor">#define CG_DICT_DONT_FREE_ITEMS 1</span></div>
+<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> </div>
+<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"><a class="line" href="structcgroup__dictionary.html"> 207</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="l00208" name="l00208"></a><span class="lineno"> 208</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="l00209" name="l00209"></a><span class="lineno"> 209</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="l00210" name="l00210"></a><span class="lineno"> 210</span> <span class="keywordtype">int</span> flags;</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="l00214" name="l00214"></a><span class="lineno"><a class="line" href="structcgroup__dictionary__iterator.html"> 214</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__dictionary__iterator.html">cgroup_dictionary_iterator</a> {</div>
+<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</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="l00216" name="l00216"></a><span class="lineno"> 216</span>};</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> __thread <span class="keywordtype">int</span> last_errno;</div>
+<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> </div>
+<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span><span class="keyword">extern</span> jmp_buf parser_error_env;</div>
+<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> </div>
+<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span><span class="comment">/* Internal API */</span></div>
+<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span><span class="keywordtype">char</span> *cg_build_path(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">char</span> *path, <span class="keyword">const</span> <span class="keywordtype">char</span> *type);</div>
+<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span><span class="keywordtype">int</span> cgroup_get_uid_gid_from_procfs(pid_t pid, uid_t *euid, gid_t *egid);</div>
+<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span><span class="keywordtype">int</span> cgroup_get_procname_from_procfs(pid_t pid, <span class="keywordtype">char</span> **procname);</div>
+<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span><span class="keywordtype">int</span> cg_mkdir_p(<span class="keyword">const</span> <span class="keywordtype">char</span> *path);</div>
+<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</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="l00234" name="l00234"></a><span class="lineno"> 234</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="l00235" name="l00235"></a><span class="lineno"> 235</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="l00236" name="l00236"></a><span class="lineno"> 236</span> </div>
+<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span><span class="comment">/*</span></div>
+<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span><span class="comment"> * Main mounting structures</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="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="l00241" name="l00241"></a><span class="lineno"> 241</span><span class="keyword">extern</span> pthread_rwlock_t cg_mount_table_lock;</div>
+<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> </div>
+<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span><span class="comment">/*</span></div>
+<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span><span class="comment"> * config related structures</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> </div>
+<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span><span class="keyword">extern</span> __thread <span class="keywordtype">char</span> *cg_namespace_table[CG_CONTROLLER_MAX];</div>
+<div class="line"><a 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="comment">/*</span></div>
+<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span><span class="comment"> * config related API</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="keywordtype">int</span> cgroup_config_insert_cgroup(<span class="keywordtype">char</span> *cg_name);</div>
+<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span><span class="keywordtype">int</span> cgroup_config_parse_controller_options(<span class="keywordtype">char</span> *controller,</div>
+<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</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="l00255" name="l00255"></a><span class="lineno"> 255</span><span class="keywordtype">int</span> template_config_insert_cgroup(<span class="keywordtype">char</span> *cg_name);</div>
+<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span><span class="keywordtype">int</span> template_config_parse_controller_options(<span class="keywordtype">char</span> *controller,</div>
+<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</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="l00258" name="l00258"></a><span class="lineno"> 258</span><span class="keywordtype">int</span> template_config_group_task_perm(<span class="keywordtype">char</span> *perm_type, <span class="keywordtype">char</span> *value);</div>
+<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span><span class="keywordtype">int</span> template_config_group_admin_perm(<span class="keywordtype">char</span> *perm_type, <span class="keywordtype">char</span> *value);</div>
+<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span><span class="keywordtype">int</span> cgroup_config_group_task_perm(<span class="keywordtype">char</span> *perm_type, <span class="keywordtype">char</span> *value);</div>
+<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span><span class="keywordtype">int</span> cgroup_config_group_admin_perm(<span class="keywordtype">char</span> *perm_type, <span class="keywordtype">char</span> *value);</div>
+<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span><span class="keywordtype">int</span> cgroup_config_insert_into_mount_table(<span class="keywordtype">char</span> *<a class="code hl_variable" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>, <span class="keywordtype">char</span> *mount_point);</div>
+<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span><span class="keywordtype">int</span> cgroup_config_insert_into_namespace_table(<span class="keywordtype">char</span> *<a class="code hl_variable" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>, <span class="keywordtype">char</span> *mount_point);</div>
+<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span><span class="keywordtype">void</span> cgroup_config_cleanup_mount_table(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span><span class="keywordtype">void</span> cgroup_config_cleanup_namespace_table(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span><span class="keywordtype">int</span> cgroup_config_define_default(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> </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_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="l00272" name="l00272"></a><span class="lineno"> 272</span> <span class="keywordtype">int</span> flags);</div>
+<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span><span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_add(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__dictionary.html">cgroup_dictionary</a> *dict,</div>
+<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</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="l00282" name="l00282"></a><span class="lineno"> 282</span><span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_free(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__dictionary.html">cgroup_dictionary</a> *dict);</div>
+<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> </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_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="l00289" name="l00289"></a><span class="lineno"> 289</span> <span class="keywordtype">void</span> **handle, <span class="keyword">const</span> <span class="keywordtype">char</span> **<a class="code 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">int</span> cgroup_dictionary_iterator_next(<span class="keywordtype">void</span> **handle,</div>
+<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</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="l00298" name="l00298"></a><span class="lineno"> 298</span><span class="keyword">extern</span> <span class="keywordtype">void</span> cgroup_dictionary_iterator_end(<span class="keywordtype">void</span> **handle);</div>
+<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> </div>
+<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span><span class="keywordtype">int</span> cg_chmod_path(<span class="keyword">const</span> <span class="keywordtype">char</span> *path, mode_t mode, <span class="keywordtype">int</span> owner_is_umask);</div>
+<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> </div>
+<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span><span class="keywordtype">int</span> cgroup_build_tasks_procs_path(<span class="keywordtype">char</span> * <span class="keyword">const</span> path,</div>
+<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> <span class="keywordtype">size_t</span> path_sz, <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> cg_name,</div>
+<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> ctrl_name);</div>
+<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> </div>
+<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span><span class="keywordtype">char</span> *cg_build_path_locked(<span class="keyword">const</span> <span class="keywordtype">char</span> *setting, <span class="keywordtype">char</span> *path,</div>
+<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *controller);</div>
+<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> </div>
+<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span><span class="keywordtype">int</span> cgroup_fill_cgc(<span class="keyword">struct</span> dirent *ctrl_dir, <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>,</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> *cgc, <span class="keywordtype">int</span> cg_index);</div>
+<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> </div>
+<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span><span class="keywordtype">int</span> cgroup_test_subsys_mounted(<span class="keyword">const</span> <span class="keywordtype">char</span> *ctrl_name);</div>
+<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span> </div>
+<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span><span class="keywordtype">int</span> cgroup_copy_controller_values(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst,</div>
+<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</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="l00370" name="l00370"></a><span class="lineno"> 370</span> </div>
+<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</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="l00379" name="l00379"></a><span class="lineno"> 379</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> <a class="code hl_variable" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>);</div>
+<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span> </div>
+<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</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="l00388" name="l00388"></a><span class="lineno"> 388</span> </div>
+<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span><span class="preprocessor">#ifdef UNIT_TEST</span></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="preprocessor">#define TEST_PROC_PID_CGROUP_FILE "test-procpidcgroup"</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="keywordtype">int</span> cgroup_parse_rules_options(<span class="keywordtype">char</span> *options,</div>
+<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"> 399</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> </div>
+<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span><span class="keywordtype">int</span> cg_get_cgroups_from_proc_cgroups(pid_t pid, <span class="keywordtype">char</span> *cgroup_list[],</div>
+<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"> 402</span> <span class="keywordtype">char</span> *controller_list[],</div>
+<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span> <span class="keywordtype">int</span> list_len);</div>
+<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span> </div>
+<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span><span class="keywordtype">bool</span> cgroup_compare_ignore_rule(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__rule.html">cgroup_rule</a> * <span class="keyword">const</span> rule,</div>
+<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span> pid_t pid, <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> procname);</div>
+<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span> </div>
+<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span><span class="keywordtype">bool</span> cgroup_compare_wildcard_procname(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> rule_procname,</div>
+<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"> 409</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> procname);</div>
+<div class="line"><a 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_process_v1_mnt(<span class="keywordtype">char</span> *controllers[], <span class="keyword">struct</span> mntent *ent,</div>
+<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</span> <span class="keywordtype">int</span> *mnt_tbl_idx);</div>
+<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"> 413</span> </div>
+<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"> 414</span><span class="keywordtype">int</span> cgroup_process_v2_mnt(<span class="keyword">struct</span> mntent *ent, <span class="keywordtype">int</span> *mnt_tbl_idx);</div>
+<div class="line"><a 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_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="l00417" name="l00417"></a><span class="lineno"> 417</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="l00418" name="l00418"></a><span class="lineno"> 418</span> <span class="keywordtype">bool</span> ignore_non_dirty_failures);</div>
+<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"> 419</span> </div>
+<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</span><span class="keywordtype">int</span> cgroup_chown_chmod_tasks(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> cg_path,</div>
+<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span> uid_t uid, gid_t gid, mode_t fperm);</div>
+<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span> </div>
+<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span><span class="keywordtype">int</span> cgroupv2_subtree_control(<span class="keyword">const</span> <span class="keywordtype">char</span> *path, <span class="keyword">const</span> <span class="keywordtype">char</span> *ctrl_name,</div>
+<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span> <span class="keywordtype">bool</span> enable);</div>
+<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"> 425</span> </div>
+<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"> 426</span><span class="keywordtype">int</span> cgroupv2_get_subtree_control(<span class="keyword">const</span> <span class="keywordtype">char</span> *path,</div>
+<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"> 427</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *ctrl_name,</div>
+<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span> <span class="keywordtype">bool</span> * <span class="keyword">const</span> enabled);</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="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="l00431" name="l00431"></a><span class="lineno"> 431</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> ctrl_name);</div>
+<div class="line"><a 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">/* UNIT_TEST */</span><span class="preprocessor"></span></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">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00436" name="l00436"></a><span class="lineno"> 436</span>} <span class="comment">/* extern "C" */</span></div>
+<div class="line"><a id="l00437" name="l00437"></a><span class="lineno"> 437</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00438" name="l00438"></a><span class="lineno"> 438</span> </div>
+<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"> 439</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="astructcg__mount__point_html"><div class="ttname"><a href="structcg__mount__point.html">cg_mount_point</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:127</div></div>
<div class="ttc" id="astructcg__mount__table__s_html"><div class="ttname"><a href="structcg__mount__table__s.html">cg_mount_table_s</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:132</div></div>
<div class="ttc" id="astructcg__mount__table__s_html_a9704fa3ec3674f6d433345ea52b6aeef"><div class="ttname"><a href="structcg__mount__table__s.html#a9704fa3ec3674f6d433345ea52b6aeef">cg_mount_table_s::mount</a></div><div class="ttdeci">struct cg_mount_point mount</div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:138</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: include/libcgroup.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
</div>
</div><!-- top -->
<div class="header">
- <div class="headertitle">
-<div class="title">libcgroup.h</div> </div>
+ <div class="headertitle"><div class="title">libcgroup.h</div></div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright IBM Corporation. 2007</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> *</span></div>
-<div class="line"><a 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 name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> *</span></div>
-<div class="line"><a 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 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 name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * as published by the Free Software Foundation.</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> *</span></div>
-<div class="line"><a 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 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 name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  </div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#ifndef _LIBCGROUP_H</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#define _LIBCGROUP_H</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  </div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#define _LIBCGROUP_H_INSIDE</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <libcgroup/error.h></span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <libcgroup/init.h></span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <libcgroup/iterators.h></span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <libcgroup/groups.h></span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <libcgroup/tasks.h></span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <libcgroup/config.h></span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <libcgroup/log.h></span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <libcgroup/tools.h></span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#undef _LIBCGROUP_H_INSIDE</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#endif </span><span class="comment">/* _LIBCGROUP_H */</span><span class="preprocessor"></span></div>
+<div 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><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: include/libcgroup/log.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
</div>
</div><!-- top -->
<div class="header">
- <div class="headertitle">
-<div class="title">log.h</div> </div>
+ <div class="headertitle"><div class="title">log.h</div></div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="preprocessor">#ifndef _LIBCGROUP_LOG_H</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="preprocessor">#define _LIBCGROUP_LOG_H</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  </div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#ifndef _LIBCGROUP_H_INSIDE</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="preprocessor">#error "Only <libcgroup.h> should be included directly."</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>  </div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#ifndef SWIG</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include <features.h></span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <stdarg.h></span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  </div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div>
-<div class="line"><a name="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" href="group__group__log.html#ga98b7aea5d23411e70c7e3da54d90233a">cgroup_log_level</a> {</div>
-<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa4dd44215cd3553e79dbf91eb9ca418a2"> 77</a></span>  <a class="code" href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa4dd44215cd3553e79dbf91eb9ca418a2">CGROUP_LOG_ERROR</a> = 1,</div>
-<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aaa99ec9e854a543901bddf854d1960057"> 81</a></span>  <a class="code" href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aaa99ec9e854a543901bddf854d1960057">CGROUP_LOG_WARNING</a>,</div>
-<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aad66ab51dba078ffc3b1c6d397053f9e2"> 86</a></span>  <a class="code" href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aad66ab51dba078ffc3b1c6d397053f9e2">CGROUP_LOG_INFO</a>,</div>
-<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa86b4157fb38d9f8053c6b7429bd26c72"> 90</a></span>  <a class="code" href="group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa86b4157fb38d9f8053c6b7429bd26c72">CGROUP_LOG_DEBUG</a>,</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> };</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  </div>
-<div class="line"><a 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 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 name="l00095"></a><span class="lineno"> 95</span>  </div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" 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 name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordtype">void</span> *userdata);</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  </div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="group__group__log.html#gab1457ce518dcde0b9f3c14ec9efa2de7">cgroup_set_default_logger</a>(<span class="keywordtype">int</span> loglevel);</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  </div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="group__group__log.html#gaac5fe2352800ff62465a5abe649d5b8c">cgroup_set_loglevel</a>(<span class="keywordtype">int</span> loglevel);</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  </div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" 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 name="l00136"></a><span class="lineno"> 136</span>  </div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" 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 name="l00147"></a><span class="lineno"> 147</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> } <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  </div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="preprocessor">#endif </span><span class="comment">/* _LIBCGROUP_LOG_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="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:48</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:62</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: How to Contribute to the libcgroup Project</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
</div>
</div><!-- top -->
-<div class="PageDoc"><div class="header">
- <div class="headertitle">
-<div class="title">How to Contribute to the libcgroup Project </div> </div>
+<div><div class="header">
+ <div class="headertitle"><div class="title">How to Contribute to the libcgroup Project </div></div>
</div><!--header-->
<div class="contents">
-<div class="textblock"><p><a href="https://github.com/libcgroup/libcgroup">https://github.com/libcgroup/libcgroup</a></p>
-<p>This document outlines the steps to help you contribute to the libcgroup project. As with the libcgroup code itself, the process is a work in progress. Improvements and suggestions are welcome and encouraged.</p>
+<div class="textblock"><p ><a href="https://github.com/libcgroup/libcgroup">https://github.com/libcgroup/libcgroup</a></p>
+<p >This document outlines the steps to help you contribute to the libcgroup project. As with the libcgroup code itself, the process is a work in progress. Improvements and suggestions are welcome and encouraged.</p>
<h1><a class="anchor" id="autotoc_md0"></a>
Interacting with the Community</h1>
<blockquote class="doxtable">
-<p>"When you are kind to others, it not only changes you, it changes the
+<p >‍"When you are kind to others, it not only changes you, it changes the
world." - Harold Kushner </p>
</blockquote>
<p>The libcgroup project strives to be an inclusive and welcoming place. If you interact with the libcgroup project, we request that you treat others with dignity and respect. Failure to do so will result in a warning. In extreme cases, we reserve the right to block the individual from the project.</p>
-<p>Examples of inappropriate behavior includes: profane, abusive, or prejudicial language directed at another person, vandalism (e.g. GitHub issue/PR "litter"), or spam.</p>
+<p >Examples of inappropriate behavior includes: profane, abusive, or prejudicial language directed at another person, vandalism (e.g. GitHub issue/PR "litter"), or spam.</p>
<h1><a class="anchor" id="autotoc_md1"></a>
Test Your Code Using Existing Tests</h1>
-<p>The libcgroup project utilizes unit and functional tests. These tests must successfully pass prior to a commit being merged.</p>
-<p>You can run both the unit and functional tests with the following command: </p><pre class="fragment"># make check
+<p >The libcgroup project utilizes unit and functional tests. These tests must successfully pass prior to a commit being merged.</p>
+<p >You can run both the unit and functional tests with the following command: </p><pre class="fragment"># make check
</pre><p> You can invoke only the unit tests with the following commands: </p><pre class="fragment"># cd tests/gunit
# make check
</pre><p> If there are unit test failures, running the unit tests outside of the automake framework will provide more information. </p><pre class="fragment"># cd tests/gunit
</pre><p> You can invoke only the functional tests with the following commands: </p><pre class="fragment"># cd tests/ftests
# make check
</pre><p> Note that the functional tests can be run within a container or directly on your system. For the containerized tests, libcgroup utilizes LXC/LXD containers. If your system or distro doesn't support LXC/LXD, you can utilize the continuous integration infrastructure to test your changes. A successful continuous integration run is required for each pull request.</p>
-<p>Many tests can also be run outside of a container. Use caution with these tests though, as they will modify your host's cgroup hierarchy. This could significantly and negatively affect your system.</p>
-<p>We encourage utilizing a VM for libcgroup development work. The continuous integration suite utilizes the latest Ubuntu LTS.</p>
-<p>To run the containerized tests only: </p><pre class="fragment"># cd tests/ftests
+<p >Many tests can also be run outside of a container. Use caution with these tests though, as they will modify your host's cgroup hierarchy. This could significantly and negatively affect your system.</p>
+<p >We encourage utilizing a VM for libcgroup development work. The continuous integration suite utilizes the latest Ubuntu LTS.</p>
+<p >To run the containerized tests only: </p><pre class="fragment"># cd tests/ftests
# ./ftests.sh
</pre><p> To run the non-containerized tests only: </p><pre class="fragment"># cd tests/ftests
# ./ftests-nocontainer.sh
</pre><p> After the run is complete, the ftests.sh.log and ftests-nocontainer.sh.log contain the full debug log for each run.</p>
<h1><a class="anchor" id="autotoc_md2"></a>
Add New Tests for New Functionality</h1>
-<p>The libcgroup project utilizes automated tests, code coverage, and continuous integration to maintain a high level of code quality. Any pull requests that add functionality or significantly change existing code should include additional tests to verify the proper operation of the proposed changes. Note that functional tests are preferred over unit tests.</p>
-<p>The continuous integration tools run the automated tests and automatically gather code coverage numbers. Pull requests that cause the code coverage numbers to decrease are strongly discouraged.</p>
+<p >The libcgroup project utilizes automated tests, code coverage, and continuous integration to maintain a high level of code quality. Any pull requests that add functionality or significantly change existing code should include additional tests to verify the proper operation of the proposed changes. Note that functional tests are preferred over unit tests.</p>
+<p >The continuous integration tools run the automated tests and automatically gather code coverage numbers. Pull requests that cause the code coverage numbers to decrease are strongly discouraged.</p>
<h1><a class="anchor" id="autotoc_md3"></a>
Explain Your Work</h1>
-<p>At the top of every patch you should include a description of the problem you are trying to solve, how you solved it, and why you chose the solution you implemented. If you are submitting a bug fix, it is also incredibly helpful if you can describe/include a reproducer for the problem in the description as well as instructions on how to test for the bug and verify that it has been fixed.</p>
+<p >At the top of every patch you should include a description of the problem you are trying to solve, how you solved it, and why you chose the solution you implemented. If you are submitting a bug fix, it is also incredibly helpful if you can describe/include a reproducer for the problem in the description as well as instructions on how to test for the bug and verify that it has been fixed.</p>
<h1><a class="anchor" id="autotoc_md4"></a>
Sign Your Work</h1>
-<p>The sign-off is a simple line at the end of the patch description, which certifies that you wrote it or otherwise have the right to pass it on as an open-source patch. The "Developer's Certificate of Origin" pledge is taken from the Linux Kernel and the rules are pretty simple: </p><pre class="fragment">Developer's Certificate of Origin 1.1
+<p >The sign-off is a simple line at the end of the patch description, which certifies that you wrote it or otherwise have the right to pass it on as an open-source patch. The "Developer's Certificate of Origin" pledge is taken from the Linux Kernel and the rules are pretty simple: </p><pre class="fragment">Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
</pre><p> You can add this to your commit description in <code>git</code> with <code>git commit -s</code></p>
<h1><a class="anchor" id="autotoc_md5"></a>
Submitting Patches</h1>
-<p>libcgroup was initially hosted on Sourceforge and at that time only accepted patches via the mailing list. In 2018, libcgroup was moved to github and now accepts patches via email or github pull request. Over time the libcgroup project will likely fully transition to gitub pull requests and issues.</p>
+<p >libcgroup was initially hosted on Sourceforge and at that time only accepted patches via the mailing list. In 2018, libcgroup was moved to github and now accepts patches via email or github pull request. Over time the libcgroup project will likely fully transition to gitub pull requests and issues.</p>
<h2><a class="anchor" id="autotoc_md6"></a>
Post Your Patches Upstream</h2>
-<p>The sections below explain how to contribute via either method. Please read each step and perform all steps that apply to your chosen contribution method.</p>
+<p >The sections below explain how to contribute via either method. Please read each step and perform all steps that apply to your chosen contribution method.</p>
<h2><a class="anchor" id="autotoc_md7"></a>
Submitting via Email</h2>
-<p>Depending on how you decided to work with the libcgroup code base and what tools you are using there are different ways to generate your patch(es). However, regardless of what tools you use, you should always generate your patches using the "unified" diff/patch format and the patches should always apply to the libcgroup source tree using the following command from the top directory of the libcgroup sources: </p><pre class="fragment"># patch -p1 < changes.patch
+<p >Depending on how you decided to work with the libcgroup code base and what tools you are using there are different ways to generate your patch(es). However, regardless of what tools you use, you should always generate your patches using the "unified" diff/patch format and the patches should always apply to the libcgroup source tree using the following command from the top directory of the libcgroup sources: </p><pre class="fragment"># patch -p1 < changes.patch
</pre><p> If you are not using git, stacked git (stgit), or some other tool which can generate patch files for you automatically, you may find the following command helpful in generating patches, where "libcgroup.orig/" is the unmodified source code directory and "libcgroup/" is the source code directory with your changes: </p><pre class="fragment"># diff -purN libcgroup.orig/ libcgroup/
</pre><p> When in doubt please generate your patch and try applying it to an unmodified copy of the libcgroup sources; if it fails for you, it will fail for the rest of us.</p>
-<p>Finally, you will need to email your patches to the mailing list so they can be reviewed and potentially merged into the main libcgroup repository. When sending patches to the mailing list it is important to send your email in text form, no HTML mail please, and ensure that your email client does not mangle your patches. It should be possible to save your raw email to disk and apply it directly to the libcgroup source code; if that fails then you likely have a problem with your email client. When in doubt try a test first by sending yourself an email with your patch and attempting to apply the emailed patch to the libcgrup repository; if it fails for you, it will fail for the rest of us trying to test your patch and include it in the main libcgroup repository.</p>
+<p >Finally, you will need to email your patches to the mailing list so they can be reviewed and potentially merged into the main libcgroup repository. When sending patches to the mailing list it is important to send your email in text form, no HTML mail please, and ensure that your email client does not mangle your patches. It should be possible to save your raw email to disk and apply it directly to the libcgroup source code; if that fails then you likely have a problem with your email client. When in doubt try a test first by sending yourself an email with your patch and attempting to apply the emailed patch to the libcgrup repository; if it fails for you, it will fail for the rest of us trying to test your patch and include it in the main libcgroup repository.</p>
<h2><a class="anchor" id="autotoc_md8"></a>
Submitting via GitHub Pull Requests</h2>
-<p>See <a href="https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request">this guide</a> if you've never done this before. </p>
+<p >See <a href="https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request">this guide</a> if you've never done this before. </p>
</div></div><!-- contents -->
</div><!-- PageDoc -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: README</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
</div>
</div><!-- top -->
-<div class="PageDoc"><div class="header">
- <div class="headertitle">
-<div class="title">README </div> </div>
+<div><div class="header">
+ <div class="headertitle"><div class="title">README </div></div>
</div><!--header-->
<div class="contents">
-<div class="textblock"><p><a href="https://github.com/libcgroup/libcgroup/actions"><img src="https://github.com/libcgroup/libcgroup/workflows/Continuous%20Integration/badge.svg?branch=main" alt="Build Status" style="pointer-events: none;" class="inline"/></a> <a href="https://coveralls.io/github/libcgroup/libcgroup"><img src="https://coveralls.io/repos/github/libcgroup/libcgroup/badge.png" alt="Coverage Status" class="inline"/></a> <a href="https://libcgroup.github.io/libcgroup/"><img src="https://img.shields.io/badge/Documentation-Doxygen-green.svg" alt="Doxygen Documentation" style="pointer-events: none;" class="inline"/></a> <a href="https://lgtm.com/projects/g/libcgroup/libcgroup/context:cpp"><img src="https://img.shields.io/lgtm/grade/cpp/g/libcgroup/libcgroup.svg?logo=lgtm&logoWidth=18" alt="Language grade: C/C++" style="pointer-events: none;" class="inline"/></a></p>
-<p>The entire libcgroup README is available [here](README). </p>
+<div class="textblock"><p ><a href="https://github.com/libcgroup/libcgroup/actions"><img src="https://github.com/libcgroup/libcgroup/workflows/Continuous%20Integration/badge.svg?branch=main" alt="Build Status" style="pointer-events: none;" class="inline"/></a> <a href="https://coveralls.io/github/libcgroup/libcgroup"><img src="https://coveralls.io/repos/github/libcgroup/libcgroup/badge.png" alt="Coverage Status" class="inline"/></a> <a href="https://libcgroup.github.io/libcgroup/"><img src="https://img.shields.io/badge/Documentation-Doxygen-green.svg" alt="Doxygen Documentation" style="pointer-events: none;" class="inline"/></a> <a href="https://lgtm.com/projects/g/libcgroup/libcgroup/context:cpp"><img src="https://img.shields.io/lgtm/grade/cpp/g/libcgroup/libcgroup.svg?logo=lgtm&logoWidth=18" alt="Language grade: C/C++" style="pointer-events: none;" class="inline"/></a></p>
+<p >The entire libcgroup README is available [here](README). </p>
</div></div><!-- contents -->
</div><!-- PageDoc -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: The libcgroup Security Vulnerability Handling Process</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
</div>
</div><!-- top -->
-<div class="PageDoc"><div class="header">
- <div class="headertitle">
-<div class="title">The libcgroup Security Vulnerability Handling Process </div> </div>
+<div><div class="header">
+ <div class="headertitle"><div class="title">The libcgroup Security Vulnerability Handling Process </div></div>
</div><!--header-->
<div class="contents">
-<div class="textblock"><p><a href="https://github.com/libcgroup/libcgroup">https://github.com/libcgroup/libcgroup</a></p>
-<p>This document describes the processes through which sensitive security relevant bugs can be responsibly disclosed to the libcgroup project and how the project maintainers should handle these reports. Just like the other libcgroup process documents, this document should be treated as a guiding document and not a hard, unyielding set of regulations; the bug reporters and project maintainers are encouraged to work together to address the issues as best they can, in a manner which works best for all parties involved.</p>
+<div class="textblock"><p ><a href="https://github.com/libcgroup/libcgroup">https://github.com/libcgroup/libcgroup</a></p>
+<p >This document describes the processes through which sensitive security relevant bugs can be responsibly disclosed to the libcgroup project and how the project maintainers should handle these reports. Just like the other libcgroup process documents, this document should be treated as a guiding document and not a hard, unyielding set of regulations; the bug reporters and project maintainers are encouraged to work together to address the issues as best they can, in a manner which works best for all parties involved.</p>
<h2><a class="anchor" id="autotoc_md9"></a>
Reporting Problems</h2>
-<p>Problems with the libcgroup library that are not suitable for immediate public disclosure should be emailed to the current libcgroup maintainers; see below. We typically request at most a 90 day time period to address the issue before it is made public, but we will make every effort to address the issue as quickly as possible and shorten the disclosure window.</p>
+<p >Problems with the libcgroup library that are not suitable for immediate public disclosure should be emailed to the current libcgroup maintainers; see below. We typically request at most a 90 day time period to address the issue before it is made public, but we will make every effort to address the issue as quickly as possible and shorten the disclosure window.</p>
<ul>
-<li>Dhaval Giani, <a href="#" onclick="location.href='mai'+'lto:'+'dha'+'va'+'l.g'+'ia'+'ni@'+'gm'+'ail'+'.c'+'om'; return false;">dhava<span style="display: none;">.nosp@m.</span>l.gi<span style="display: none;">.nosp@m.</span>ani@g<span style="display: none;">.nosp@m.</span>mail<span style="display: none;">.nosp@m.</span>.com</a></li>
-<li>Tom Hromatka, <a href="#" onclick="location.href='mai'+'lto:'+'tom'+'.h'+'rom'+'at'+'ka@'+'or'+'acl'+'e.'+'com'; return false;">tom.h<span style="display: none;">.nosp@m.</span>roma<span style="display: none;">.nosp@m.</span>tka@o<span style="display: none;">.nosp@m.</span>racl<span style="display: none;">.nosp@m.</span>e.com</a></li>
+<li>Dhaval Giani, <a href="#" onclick="location.href='mai'+'lto:'+'dha'+'va'+'l.g'+'ia'+'ni@'+'gm'+'ail'+'.c'+'om'; return false;">dhava<span class="obfuscator">.nosp@m.</span>l.gi<span class="obfuscator">.nosp@m.</span>ani@g<span class="obfuscator">.nosp@m.</span>mail<span class="obfuscator">.nosp@m.</span>.com</a></li>
+<li>Tom Hromatka, <a href="#" onclick="location.href='mai'+'lto:'+'tom'+'.h'+'rom'+'at'+'ka@'+'or'+'acl'+'e.'+'com'; return false;">tom.h<span class="obfuscator">.nosp@m.</span>roma<span class="obfuscator">.nosp@m.</span>tka@o<span class="obfuscator">.nosp@m.</span>racl<span class="obfuscator">.nosp@m.</span>e.com</a></li>
</ul>
<h2><a class="anchor" id="autotoc_md10"></a>
Resolving Sensitive Security Issues</h2>
-<p>Upon disclosure of a bug, the maintainers should work together to investigate the problem and decide on a solution. In order to prevent an early disclosure of the problem, those working on the solution should do so privately and outside of the traditional libcgroup development practices. One possible solution to this is to leverage the GitHub "Security" functionality to create a private development fork that can be shared among the maintainers, and optionally the reporter. A placeholder GitHub issue may be created, but details should remain extremely limited until such time as the problem has been fixed and responsibly disclosed. If a CVE, or other tag, has been assigned to the problem, the GitHub issue title should include the vulnerability tag once the problem has been disclosed.</p>
+<p >Upon disclosure of a bug, the maintainers should work together to investigate the problem and decide on a solution. In order to prevent an early disclosure of the problem, those working on the solution should do so privately and outside of the traditional libcgroup development practices. One possible solution to this is to leverage the GitHub "Security" functionality to create a private development fork that can be shared among the maintainers, and optionally the reporter. A placeholder GitHub issue may be created, but details should remain extremely limited until such time as the problem has been fixed and responsibly disclosed. If a CVE, or other tag, has been assigned to the problem, the GitHub issue title should include the vulnerability tag once the problem has been disclosed.</p>
<h2><a class="anchor" id="autotoc_md11"></a>
Public Disclosure</h2>
-<p>Whenever possible, responsible reporting and patching practices should be followed, including notification to the linux-distros and oss-security mailing lists.</p>
+<p >Whenever possible, responsible reporting and patching practices should be followed, including notification to the linux-distros and oss-security mailing lists.</p>
<ul>
<li><a href="https://oss-security.openwall.org/wiki/mailing-lists/distros">https://oss-security.openwall.org/wiki/mailing-lists/distros</a></li>
<li><a href="https://oss-security.openwall.org/wiki/mailing-lists/oss-security">https://oss-security.openwall.org/wiki/mailing-lists/oss-security</a> </li>
</div><!-- PageDoc -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
}
return result;
}
-
- $('#main-nav').append(makeTree(menudata,relPath));
- $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
+ var searchBox;
if (searchEnabled) {
if (serverSide) {
- $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><div class="left"><form id="FSearchBox" action="'+relPath+searchPage+'" method="get"><img id="MSearchSelect" src="'+relPath+'search/mag.svg" alt=""/><input type="text" id="MSearchField" name="query" value="'+search+'" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)"></form></div><div class="right"></div></div></li>');
+ searchBox='<div id="MSearchBox" class="MSearchBoxInactive">'+
+ '<div class="left">'+
+ '<form id="FSearchBox" action="'+relPath+searchPage+
+ '" method="get"><img id="MSearchSelect" src="'+
+ relPath+'search/mag.svg" alt=""/>'+
+ '<input type="text" id="MSearchField" name="query" value="'+search+
+ '" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)"'+
+ ' onblur="searchBox.OnSearchFieldFocus(false)">'+
+ '</form>'+
+ '</div>'+
+ '<div class="right"></div>'+
+ '</div>';
} else {
- $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><span class="left"><img id="MSearchSelect" src="'+relPath+'search/mag_sel.svg" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/><input type="text" id="MSearchField" value="'+search+'" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/></span><span class="right"><a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="'+relPath+'search/close.svg" alt=""/></a></span></div></li>');
+ searchBox='<div id="MSearchBox" class="MSearchBoxInactive">'+
+ '<span class="left">'+
+ '<img id="MSearchSelect" src="'+relPath+
+ 'search/mag_sel.svg" onmouseover="return searchBox.OnSearchSelectShow()"'+
+ ' onmouseout="return searchBox.OnSearchSelectHide()" alt=""/>'+
+ '<input type="text" id="MSearchField" value="'+search+
+ '" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" '+
+ 'onblur="searchBox.OnSearchFieldFocus(false)" '+
+ 'onkeyup="searchBox.OnSearchFieldChange(event)"/>'+
+ '</span>'+
+ '<span class="right"><a id="MSearchClose" '+
+ 'href="javascript:searchBox.CloseResultsWindow()">'+
+ '<img id="MSearchCloseImg" border="0" src="'+relPath+
+ 'search/close.svg" alt=""/></a>'
+ '</span>'
+ '</div>';
+ }
+ }
+
+ $('#main-nav').before('<div class="sm sm-dox"><input id="main-menu-state" type="checkbox"/>'+
+ '<label class="main-menu-btn" for="main-menu-state">'+
+ '<span class="main-menu-btn-icon"></span> '+
+ 'Toggle main menu visibility</label>'+
+ '<span id="searchBoxPos1" style="position:absolute;right:8px;top:8px;height:36px;"></span>'+
+ '</div>');
+ $('#main-nav').append(makeTree(menudata,relPath));
+ $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
+ if (searchBox) {
+ $('#main-menu').append('<li id="searchBoxPos2" style="float:right"></li>');
+ }
+ var $mainMenuState = $('#main-menu-state');
+ var prevWidth = 0;
+ if ($mainMenuState.length) {
+ function initResizableIfExists() {
+ if (typeof initResizable==='function') initResizable();
+ }
+ // animate mobile menu
+ $mainMenuState.change(function(e) {
+ var $menu = $('#main-menu');
+ var options = { duration: 250, step: initResizableIfExists };
+ if (this.checked) {
+ options['complete'] = function() { $menu.css('display', 'block') };
+ $menu.hide().slideDown(options);
+ } else {
+ options['complete'] = function() { $menu.css('display', 'none') };
+ $menu.show().slideUp(options);
+ }
+ });
+ // set default menu visibility
+ function resetState() {
+ var $menu = $('#main-menu');
+ var $mainMenuState = $('#main-menu-state');
+ var newWidth = $(window).outerWidth();
+ if (newWidth!=prevWidth) {
+ if ($(window).outerWidth()<768) {
+ $mainMenuState.prop('checked',false); $menu.hide();
+ $('#searchBoxPos1').html(searchBox);
+ $('#searchBoxPos2').hide();
+ } else {
+ $menu.show();
+ $('#searchBoxPos1').empty();
+ $('#searchBoxPos2').html(searchBox);
+ $('#searchBoxPos2').show();
+ }
+ prevWidth = newWidth;
+ }
}
+ $(window).ready(function() { resetState(); initResizableIfExists(); });
+ $(window).resize(resetState);
}
$('#main-menu').smartmenus();
}
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: Modules</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
</div>
<div class="header">
- <div class="headertitle">
-<div class="title">Modules</div> </div>
+ <div class="headertitle"><div class="title">Modules</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here is a list of all modules:</div><div class="directory">
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: Related Pages</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
</div>
<div class="header">
- <div class="headertitle">
-<div class="title">Related Pages</div> </div>
+ <div class="headertitle"><div class="title">Related Pages</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here is a list of all related documentation pages:</div><div class="directory">
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_0.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_1.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['3_2e_20iterators_1',['3. Iterators',['../group__group__iterators.html',1,'']]]
+ ['3_2e_20iterators_0',['3. Iterators',['../group__group__iterators.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_10.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['parent_148',['parent',['../structcgroup__file__info.html#a739c7f87593e36d8589d3ffa80b57059',1,'cgroup_file_info']]],
- ['parent_5finfo_149',['parent_info',['../structparent__info.html',1,'']]],
- ['path_150',['path',['../structcgroup__file__info.html#a801424e68139c930e40ea24be4d96a68',1,'cgroup_file_info::path()'],['../structcgroup__mount__point.html#ad1e89dfc02cfd7341e2296086a4f251e',1,'cgroup_mount_point::path()']]]
+ ['parent_0',['parent',['../structcgroup__file__info.html#a739c7f87593e36d8589d3ffa80b57059',1,'cgroup_file_info']]],
+ ['parent_5finfo_1',['parent_info',['../structparent__info.html',1,'']]],
+ ['path_2',['path',['../structcgroup__file__info.html#a801424e68139c930e40ea24be4d96a68',1,'cgroup_file_info::path()'],['../structcgroup__mount__point.html#ad1e89dfc02cfd7341e2296086a4f251e',1,'cgroup_mount_point::path()']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_11.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['readme_151',['README',['../md_README.html',1,'']]]
+ ['readme_0',['README',['../md_README.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_12.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['the_20libcgroup_20security_20vulnerability_20handling_20process_152',['The libcgroup Security Vulnerability Handling Process',['../md_SECURITY.html',1,'']]],
- ['todo_20list_153',['Todo List',['../todo.html',1,'']]],
- ['type_154',['type',['../structcgroup__file__info.html#a955506601f440d05cb11e4ee6b455c55',1,'cgroup_file_info']]]
+ ['the_20libcgroup_20security_20vulnerability_20handling_20process_0',['The libcgroup Security Vulnerability Handling Process',['../md_SECURITY.html',1,'']]],
+ ['todo_20list_1',['Todo List',['../todo.html',1,'']]],
+ ['type_2',['type',['../structcgroup__file__info.html#a955506601f440d05cb11e4ee6b455c55',1,'cgroup_file_info']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_13.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['unchanged_5fpid_155',['unchanged_pid',['../structunchanged__pid.html',1,'']]]
+ ['unchanged_5fpid_0',['unchanged_pid',['../structunchanged__pid.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_2.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['4_2e_20manipulation_20with_20tasks_2',['4. Manipulation with tasks',['../group__group__tasks.html',1,'']]]
+ ['4_2e_20manipulation_20with_20tasks_0',['4. Manipulation with tasks',['../group__group__tasks.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_3.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['5_2e_20configuration_3',['5. Configuration',['../group__group__config.html',1,'']]]
+ ['5_2e_20configuration_0',['5. Configuration',['../group__group__config.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_4.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['6_2e_20error_20handling_4',['6. Error handling',['../group__group__errors.html',1,'']]]
+ ['6_2e_20error_20handling_0',['6. Error handling',['../group__group__errors.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_5.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['7_2e_20logging_5',['7. Logging',['../group__group__log.html',1,'']]]
+ ['7_2e_20logging_0',['7. Logging',['../group__group__log.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_6.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['array_5fparent_5finfo_6',['array_parent_info',['../structarray__parent__info.html',1,'']]],
- ['array_5funchanged_7',['array_unchanged',['../structarray__unchanged.html',1,'']]]
+ ['array_5fparent_5finfo_0',['array_parent_info',['../structarray__parent__info.html',1,'']]],
+ ['array_5funchanged_1',['array_unchanged',['../structarray__unchanged.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_7.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['black_5flist_5ftype_8',['black_list_type',['../structblack__list__type.html',1,'']]]
+ ['black_5flist_5ftype_0',['black_list_type',['../structblack__list__type.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_8.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['cg_5fchmod_5frecursive_9',['cg_chmod_recursive',['../group__group__groups.html#gaef0bf6cd480f2dcb5e964de151a27dd1',1,'cg_chmod_recursive(struct cgroup *cgroup, mode_t dir_mode, int dirm_change, mode_t file_mode, int filem_change): api.c'],['../group__group__groups.html#gaef0bf6cd480f2dcb5e964de151a27dd1',1,'cg_chmod_recursive(struct cgroup *cgroup, mode_t dir_mode, int dirm_change, mode_t file_mode, int filem_change): api.c']]],
- ['cg_5fmount_5fpoint_10',['cg_mount_point',['../structcg__mount__point.html',1,'']]],
- ['cg_5fmount_5ftable_5fs_11',['cg_mount_table_s',['../structcg__mount__table__s.html',1,'']]],
- ['cg_5fvalue_5fmax_12',['CG_VALUE_MAX',['../group__group__iterators.html#ga55d2eac2af703794651d344c073566f5',1,'iterators.h']]],
- ['cgroup_13',['cgroup',['../structcgroup.html',1,'']]],
- ['cgroup_5fabstraction_5fmap_14',['cgroup_abstraction_map',['../structcgroup__abstraction__map.html',1,'']]],
- ['cgroup_5fadd_5fall_5fcontrollers_15',['cgroup_add_all_controllers',['../group__group__groups.html#gae870d271b789b5c54c2e3d35de3cd6f9',1,'cgroup_add_all_controllers(struct cgroup *cgroup): wrapper.c'],['../group__group__groups.html#gae870d271b789b5c54c2e3d35de3cd6f9',1,'cgroup_add_all_controllers(struct cgroup *cgroup): wrapper.c']]],
- ['cgroup_5fadd_5fcontroller_16',['cgroup_add_controller',['../group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130',1,'cgroup_add_controller(struct cgroup *cgroup, const char *name): wrapper.c'],['../group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130',1,'cgroup_add_controller(struct cgroup *cgroup, const char *name): wrapper.c']]],
- ['cgroup_5fadd_5fvalue_5fbool_17',['cgroup_add_value_bool',['../group__group__groups.html#ga4b191a600f84b00ea7afd12c01d918f3',1,'cgroup_add_value_bool(struct cgroup_controller *controller, const char *name, bool value): wrapper.c'],['../group__group__groups.html#ga4b191a600f84b00ea7afd12c01d918f3',1,'cgroup_add_value_bool(struct cgroup_controller *controller, const char *name, bool value): wrapper.c']]],
- ['cgroup_5fadd_5fvalue_5fint64_18',['cgroup_add_value_int64',['../group__group__groups.html#ga6c973bb5ce99e7a91def2032f23d7087',1,'cgroup_add_value_int64(struct cgroup_controller *controller, const char *name, int64_t value): wrapper.c'],['../group__group__groups.html#ga6c973bb5ce99e7a91def2032f23d7087',1,'cgroup_add_value_int64(struct cgroup_controller *controller, const char *name, int64_t value): wrapper.c']]],
- ['cgroup_5fadd_5fvalue_5fstring_19',['cgroup_add_value_string',['../group__group__groups.html#ga4817c68ab791c09c07b663c29b3fb029',1,'cgroup_add_value_string(struct cgroup_controller *controller, const char *name, const char *value): wrapper.c'],['../group__group__groups.html#ga4817c68ab791c09c07b663c29b3fb029',1,'cgroup_add_value_string(struct cgroup_controller *controller, const char *name, const char *value): wrapper.c']]],
- ['cgroup_5fadd_5fvalue_5fuint64_20',['cgroup_add_value_uint64',['../group__group__groups.html#gad9d2216205b96278c626122f8d5e63bb',1,'cgroup_add_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value): wrapper.c'],['../group__group__groups.html#gad9d2216205b96278c626122f8d5e63bb',1,'cgroup_add_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value): wrapper.c']]],
- ['cgroup_5fattach_5ftask_21',['cgroup_attach_task',['../group__group__tasks.html#ga43414ac2b1fc73bbb46b6278c7500188',1,'cgroup_attach_task(struct cgroup *cgroup): api.c'],['../group__group__tasks.html#ga43414ac2b1fc73bbb46b6278c7500188',1,'cgroup_attach_task(struct cgroup *cgroup): api.c']]],
- ['cgroup_5fattach_5ftask_5fpid_22',['cgroup_attach_task_pid',['../group__group__tasks.html#ga9c7532681986d156ac3f6bac1fcf6aab',1,'cgroup_attach_task_pid(struct cgroup *cgroup, pid_t tid): api.c'],['../group__group__tasks.html#ga9c7532681986d156ac3f6bac1fcf6aab',1,'cgroup_attach_task_pid(struct cgroup *cgroup, pid_t tid): api.c']]],
- ['cgroup_5fchange_5fall_5fcgroups_23',['cgroup_change_all_cgroups',['../group__group__tasks.html#gafc69658b012b6f1c11ba078ffccd70a2',1,'cgroup_change_all_cgroups(void): api.c'],['../group__group__tasks.html#gafc69658b012b6f1c11ba078ffccd70a2',1,'cgroup_change_all_cgroups(void): api.c']]],
- ['cgroup_5fchange_5fcgroup_5fflags_24',['cgroup_change_cgroup_flags',['../group__group__tasks.html#ga368e7b8e19b3943ab6fb50e76a09e6ea',1,'cgroup_change_cgroup_flags(uid_t uid, gid_t gid, const char *procname, pid_t pid, int flags): api.c'],['../group__group__tasks.html#ga368e7b8e19b3943ab6fb50e76a09e6ea',1,'cgroup_change_cgroup_flags(uid_t uid, gid_t gid, const char *procname, pid_t pid, int flags): api.c']]],
- ['cgroup_5fchange_5fcgroup_5fpath_25',['cgroup_change_cgroup_path',['../group__group__tasks.html#ga2d4677baef780c003fc6fba6b5dc78f2',1,'cgroup_change_cgroup_path(const char *path, pid_t pid, const char *const controllers[]): api.c'],['../group__group__tasks.html#ga2d4677baef780c003fc6fba6b5dc78f2',1,'cgroup_change_cgroup_path(const char *dest, pid_t pid, const char *const controllers[]): api.c']]],
- ['cgroup_5fchange_5fcgroup_5fuid_5fgid_26',['cgroup_change_cgroup_uid_gid',['../group__group__tasks.html#ga5eab78a922dbacd368360f03c70146be',1,'cgroup_change_cgroup_uid_gid(uid_t uid, gid_t gid, pid_t pid): api.c'],['../group__group__tasks.html#ga5eab78a922dbacd368360f03c70146be',1,'cgroup_change_cgroup_uid_gid(uid_t uid, gid_t gid, pid_t pid): api.c']]],
- ['cgroup_5fchange_5fcgroup_5fuid_5fgid_5fflags_27',['cgroup_change_cgroup_uid_gid_flags',['../group__group__tasks.html#gae472183a7c9a37826ef15c77014c47fb',1,'cgroup_change_cgroup_uid_gid_flags(uid_t uid, gid_t gid, pid_t pid, int flags): api.c'],['../group__group__tasks.html#gae472183a7c9a37826ef15c77014c47fb',1,'cgroup_change_cgroup_uid_gid_flags(uid_t uid, gid_t gid, pid_t pid, int flags): api.c']]],
- ['cgroup_5fcompare_5fcgroup_28',['cgroup_compare_cgroup',['../group__group__groups.html#ga86898b59e50335f99fe84a11fa38d3fc',1,'cgroup_compare_cgroup(struct cgroup *cgroup_a, struct cgroup *cgroup_b): wrapper.c'],['../group__group__groups.html#ga86898b59e50335f99fe84a11fa38d3fc',1,'cgroup_compare_cgroup(struct cgroup *cgroup_a, struct cgroup *cgroup_b): wrapper.c']]],
- ['cgroup_5fcompare_5fcontrollers_29',['cgroup_compare_controllers',['../group__group__groups.html#gab1725c50c49cec4b0bdad1f26b150ca7',1,'cgroup_compare_controllers(struct cgroup_controller *cgca, struct cgroup_controller *cgcb): wrapper.c'],['../group__group__groups.html#gab1725c50c49cec4b0bdad1f26b150ca7',1,'cgroup_compare_controllers(struct cgroup_controller *cgca, struct cgroup_controller *cgcb): wrapper.c']]],
- ['cgroup_5fconfig_5fcreate_5ftemplate_5fgroup_30',['cgroup_config_create_template_group',['../group__group__config.html#ga72066260cd31ceed7ecc1a648eba37f2',1,'cgroup_config_create_template_group(struct cgroup *cgroup, char *template_name, int flags): config.c'],['../group__group__config.html#ga72066260cd31ceed7ecc1a648eba37f2',1,'cgroup_config_create_template_group(struct cgroup *cgroup, char *template_name, int flags): config.c']]],
- ['cgroup_5fconfig_5fload_5fconfig_31',['cgroup_config_load_config',['../group__group__config.html#ga8adfaca013333acf922a167f55b84140',1,'cgroup_config_load_config(const char *pathname): config.c'],['../group__group__config.html#ga8adfaca013333acf922a167f55b84140',1,'cgroup_config_load_config(const char *pathname): config.c']]],
- ['cgroup_5fconfig_5fset_5fdefault_32',['cgroup_config_set_default',['../group__group__config.html#ga2d3a252b2c0c61c8f64cb1fc41e370ea',1,'cgroup_config_set_default(struct cgroup *new_default): config.c'],['../group__group__config.html#ga2d3a252b2c0c61c8f64cb1fc41e370ea',1,'cgroup_config_set_default(struct cgroup *new_default): config.c']]],
- ['cgroup_5fconfig_5funload_5fconfig_33',['cgroup_config_unload_config',['../group__group__config.html#gaff77affa0b80ccf507b4b46cc0a8c085',1,'cgroup_config_unload_config(const char *pathname, int flags): config.c'],['../group__group__config.html#gaff77affa0b80ccf507b4b46cc0a8c085',1,'cgroup_config_unload_config(const char *pathname, int flags): config.c']]],
- ['cgroup_5fcontroller_34',['cgroup_controller',['../structcgroup__controller.html',1,'']]],
- ['cgroup_5fcopy_5fcgroup_35',['cgroup_copy_cgroup',['../group__group__groups.html#gaa981a95e0917d3167601a4c1b392336a',1,'cgroup_copy_cgroup(struct cgroup *dst, struct cgroup *src): api.c'],['../group__group__groups.html#gaa981a95e0917d3167601a4c1b392336a',1,'cgroup_copy_cgroup(struct cgroup *dst, struct cgroup *src): api.c']]],
- ['cgroup_5fcreate_5fcgroup_36',['cgroup_create_cgroup',['../group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7',1,'cgroup_create_cgroup(struct cgroup *cgroup, int ignore_ownership): api.c'],['../group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7',1,'cgroup_create_cgroup(struct cgroup *cgroup, int ignore_ownership): api.c']]],
- ['cgroup_5fcreate_5fcgroup_5ffrom_5fparent_37',['cgroup_create_cgroup_from_parent',['../group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62',1,'cgroup_create_cgroup_from_parent(struct cgroup *cgroup, int ignore_ownership): api.c'],['../group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62',1,'cgroup_create_cgroup_from_parent(struct cgroup *cgroup, int ignore_ownership): api.c']]],
- ['cgroup_5fdelete_5fcgroup_38',['cgroup_delete_cgroup',['../group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565',1,'cgroup_delete_cgroup(struct cgroup *cgroup, int ignore_migration): api.c'],['../group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565',1,'cgroup_delete_cgroup(struct cgroup *cgroup, int ignore_migration): api.c']]],
- ['cgroup_5fdelete_5fcgroup_5fext_39',['cgroup_delete_cgroup_ext',['../group__group__groups.html#ga860c1ec70189c969b2c8373fc1e96d36',1,'cgroup_delete_cgroup_ext(struct cgroup *cgroup, int flags): api.c'],['../group__group__groups.html#ga860c1ec70189c969b2c8373fc1e96d36',1,'cgroup_delete_cgroup_ext(struct cgroup *cgroup, int flags): api.c']]],
- ['cgroup_5fdictionary_40',['cgroup_dictionary',['../structcgroup__dictionary.html',1,'']]],
- ['cgroup_5fdictionary_5fitem_41',['cgroup_dictionary_item',['../structcgroup__dictionary__item.html',1,'']]],
- ['cgroup_5fdictionary_5fiterator_42',['cgroup_dictionary_iterator',['../structcgroup__dictionary__iterator.html',1,'']]],
- ['cgroup_5ffile_5finfo_43',['cgroup_file_info',['../structcgroup__file__info.html',1,'']]],
- ['cgroup_5ffile_5ftype_44',['cgroup_file_type',['../group__group__iterators.html#ga608b4aa32e2db58fed34771a6a272444',1,'iterators.h']]],
- ['cgroup_5ffile_5ftype_5fdir_45',['CGROUP_FILE_TYPE_DIR',['../group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a5418798fc4bf9634429c6af167a0e7c3',1,'iterators.h']]],
- ['cgroup_5ffile_5ftype_5ffile_46',['CGROUP_FILE_TYPE_FILE',['../group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444ad925cc45f1b34fe80e14fc6b05269740',1,'iterators.h']]],
- ['cgroup_5ffile_5ftype_5fother_47',['CGROUP_FILE_TYPE_OTHER',['../group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a24e202c59f318e63ad8cafcc1b4b102b',1,'iterators.h']]],
- ['cgroup_5ffree_48',['cgroup_free',['../group__group__groups.html#gab20fdb1ae479f8baac482336abf73900',1,'cgroup_free(struct cgroup **cgroup): wrapper.c'],['../group__group__groups.html#gab20fdb1ae479f8baac482336abf73900',1,'cgroup_free(struct cgroup **cgroup): wrapper.c']]],
- ['cgroup_5ffree_5fcontrollers_49',['cgroup_free_controllers',['../group__group__groups.html#ga92d27c9ff0d655838642a7aa68497596',1,'cgroup_free_controllers(struct cgroup *cgroup): wrapper.c'],['../group__group__groups.html#ga92d27c9ff0d655838642a7aa68497596',1,'cgroup_free_controllers(struct cgroup *cgroup): wrapper.c']]],
- ['cgroup_5fget_5fall_5fcontroller_5fbegin_50',['cgroup_get_all_controller_begin',['../group__group__iterators.html#gad48ef653388ca6739a9b6bbb9d7da82e',1,'cgroup_get_all_controller_begin(void **handle, struct controller_data *info): api.c'],['../group__group__iterators.html#gad48ef653388ca6739a9b6bbb9d7da82e',1,'cgroup_get_all_controller_begin(void **handle, struct controller_data *info): api.c']]],
- ['cgroup_5fget_5fall_5fcontroller_5fend_51',['cgroup_get_all_controller_end',['../group__group__iterators.html#ga0c467d42a2c9a916a0edd339a6d7afc8',1,'cgroup_get_all_controller_end(void **handle): api.c'],['../group__group__iterators.html#ga0c467d42a2c9a916a0edd339a6d7afc8',1,'cgroup_get_all_controller_end(void **handle): api.c']]],
- ['cgroup_5fget_5fall_5fcontroller_5fnext_52',['cgroup_get_all_controller_next',['../group__group__iterators.html#ga3d98a04b29b1fe409db1114b7aa76809',1,'cgroup_get_all_controller_next(void **handle, struct controller_data *info): api.c'],['../group__group__iterators.html#ga3d98a04b29b1fe409db1114b7aa76809',1,'cgroup_get_all_controller_next(void **handle, struct controller_data *info): api.c']]],
- ['cgroup_5fget_5fcgroup_53',['cgroup_get_cgroup',['../group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6',1,'cgroup_get_cgroup(struct cgroup *cgroup): api.c'],['../group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6',1,'cgroup_get_cgroup(struct cgroup *cgroup): api.c']]],
- ['cgroup_5fget_5fcgroup_5fname_54',['cgroup_get_cgroup_name',['../group__group__groups.html#gac9b5ff481de08ba8fdfcbd42940d2cbf',1,'cgroup_get_cgroup_name(struct cgroup *cgroup): wrapper.c'],['../group__group__groups.html#gac9b5ff481de08ba8fdfcbd42940d2cbf',1,'cgroup_get_cgroup_name(struct cgroup *cgroup): wrapper.c']]],
- ['cgroup_5fget_5fcontroller_55',['cgroup_get_controller',['../group__group__groups.html#ga8335b0aec59c8f845639a7404affce05',1,'cgroup_get_controller(struct cgroup *cgroup, const char *name): wrapper.c'],['../group__group__groups.html#ga8335b0aec59c8f845639a7404affce05',1,'cgroup_get_controller(struct cgroup *cgroup, const char *name): wrapper.c']]],
- ['cgroup_5fget_5fcontroller_5fbegin_56',['cgroup_get_controller_begin',['../group__group__iterators.html#ga5f9f21138f9b18912a16b21a45b53c44',1,'cgroup_get_controller_begin(void **handle, struct cgroup_mount_point *info): api.c'],['../group__group__iterators.html#ga5f9f21138f9b18912a16b21a45b53c44',1,'cgroup_get_controller_begin(void **handle, struct cgroup_mount_point *info): api.c']]],
- ['cgroup_5fget_5fcontroller_5fend_57',['cgroup_get_controller_end',['../group__group__iterators.html#gab485cda2bc9640bacbf61f1953ae750c',1,'cgroup_get_controller_end(void **handle): api.c'],['../group__group__iterators.html#gab485cda2bc9640bacbf61f1953ae750c',1,'cgroup_get_controller_end(void **handle): api.c']]],
- ['cgroup_5fget_5fcontroller_5fnext_58',['cgroup_get_controller_next',['../group__group__iterators.html#ga926b70423b6c087c21a14670cd23cd7d',1,'cgroup_get_controller_next(void **handle, struct cgroup_mount_point *info): api.c'],['../group__group__iterators.html#ga926b70423b6c087c21a14670cd23cd7d',1,'cgroup_get_controller_next(void **handle, struct cgroup_mount_point *info): api.c']]],
- ['cgroup_5fget_5fcontroller_5fversion_59',['cgroup_get_controller_version',['../group__group__groups.html#ga452d8c5e95c8d694e26e7efda045360f',1,'cgroup_get_controller_version(const char *const controller, enum cg_version_t *const version): api.c'],['../group__group__groups.html#ga452d8c5e95c8d694e26e7efda045360f',1,'cgroup_get_controller_version(const char *const controller, enum cg_version_t *const version): api.c']]],
- ['cgroup_5fget_5fcurrent_5fcontroller_5fpath_60',['cgroup_get_current_controller_path',['../group__group__tasks.html#ga6f2c17b99cf2526cb46df4769eb3f46e',1,'cgroup_get_current_controller_path(pid_t pid, const char *controller, char **current_path): api.c'],['../group__group__tasks.html#ga6f2c17b99cf2526cb46df4769eb3f46e',1,'cgroup_get_current_controller_path(pid_t pid, const char *controller, char **current_path): api.c']]],
- ['cgroup_5fget_5flast_5ferrno_61',['cgroup_get_last_errno',['../group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46',1,'cgroup_get_last_errno(void): api.c'],['../group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46',1,'cgroup_get_last_errno(void): api.c']]],
- ['cgroup_5fget_5fprocs_62',['cgroup_get_procs',['../group__group__groups.html#ga08a4fe913d59f61a39e61b8b02537dc2',1,'cgroup_get_procs(char *name, char *controller, pid_t **pids, int *size): api.c'],['../group__group__groups.html#ga08a4fe913d59f61a39e61b8b02537dc2',1,'cgroup_get_procs(char *name, char *controller, pid_t **pids, int *size): api.c']]],
- ['cgroup_5fget_5fsubsys_5fmount_5fpoint_5fbegin_63',['cgroup_get_subsys_mount_point_begin',['../group__group__iterators.html#ga18a3c6fe7da42b9da96ce34dce1e31b8',1,'cgroup_get_subsys_mount_point_begin(const char *controller, void **handle, char *path): api.c'],['../group__group__iterators.html#ga18a3c6fe7da42b9da96ce34dce1e31b8',1,'cgroup_get_subsys_mount_point_begin(const char *controller, void **handle, char *path): api.c']]],
- ['cgroup_5fget_5fsubsys_5fmount_5fpoint_5fend_64',['cgroup_get_subsys_mount_point_end',['../group__group__iterators.html#ga9c9b0f1921c205bd25bfc6c1d20486eb',1,'cgroup_get_subsys_mount_point_end(void **handle): api.c'],['../group__group__iterators.html#ga9c9b0f1921c205bd25bfc6c1d20486eb',1,'cgroup_get_subsys_mount_point_end(void **handle): api.c']]],
- ['cgroup_5fget_5fsubsys_5fmount_5fpoint_5fnext_65',['cgroup_get_subsys_mount_point_next',['../group__group__iterators.html#ga3d66997158cb8a334317923ad94cc789',1,'cgroup_get_subsys_mount_point_next(void **handle, char *path): api.c'],['../group__group__iterators.html#ga3d66997158cb8a334317923ad94cc789',1,'cgroup_get_subsys_mount_point_next(void **handle, char *path): api.c']]],
- ['cgroup_5fget_5ftask_5fbegin_66',['cgroup_get_task_begin',['../group__group__iterators.html#gad7218154192f733120e1025cc19d0a36',1,'cgroup_get_task_begin(const char *cgroup, const char *controller, void **handle, pid_t *pid): api.c'],['../group__group__iterators.html#gad7218154192f733120e1025cc19d0a36',1,'cgroup_get_task_begin(const char *cgroup, const char *controller, void **handle, pid_t *pid): api.c']]],
- ['cgroup_5fget_5ftask_5fend_67',['cgroup_get_task_end',['../group__group__iterators.html#gaeb955e5f4da551268380b1271d478816',1,'cgroup_get_task_end(void **handle): api.c'],['../group__group__iterators.html#gaeb955e5f4da551268380b1271d478816',1,'cgroup_get_task_end(void **handle): api.c']]],
- ['cgroup_5fget_5ftask_5fnext_68',['cgroup_get_task_next',['../group__group__iterators.html#gaf3a0364682b7449ddccfb0862bbb565e',1,'cgroup_get_task_next(void **handle, pid_t *pid): api.c'],['../group__group__iterators.html#gaf3a0364682b7449ddccfb0862bbb565e',1,'cgroup_get_task_next(void **handle, pid_t *pid): api.c']]],
- ['cgroup_5fget_5fuid_5fgid_69',['cgroup_get_uid_gid',['../group__group__groups.html#ga007d21c304d9cc6e948dc0ae51ecfa86',1,'cgroup_get_uid_gid(struct cgroup *cgroup, uid_t *tasks_uid, gid_t *tasks_gid, uid_t *control_uid, gid_t *control_gid): wrapper.c'],['../group__group__groups.html#ga007d21c304d9cc6e948dc0ae51ecfa86',1,'cgroup_get_uid_gid(struct cgroup *cgroup, uid_t *tasks_uid, gid_t *tasks_gid, uid_t *control_uid, gid_t *control_gid): wrapper.c']]],
- ['cgroup_5fget_5fvalue_5fbool_70',['cgroup_get_value_bool',['../group__group__groups.html#gab95007148eac89b7e935d93a4524787b',1,'cgroup_get_value_bool(struct cgroup_controller *controller, const char *name, bool *value): wrapper.c'],['../group__group__groups.html#gab95007148eac89b7e935d93a4524787b',1,'cgroup_get_value_bool(struct cgroup_controller *controller, const char *name, bool *value): wrapper.c']]],
- ['cgroup_5fget_5fvalue_5fint64_71',['cgroup_get_value_int64',['../group__group__groups.html#ga0fe9b05f26b3cab21fc446c9a2700526',1,'cgroup_get_value_int64(struct cgroup_controller *controller, const char *name, int64_t *value): wrapper.c'],['../group__group__groups.html#ga0fe9b05f26b3cab21fc446c9a2700526',1,'cgroup_get_value_int64(struct cgroup_controller *controller, const char *name, int64_t *value): wrapper.c']]],
- ['cgroup_5fget_5fvalue_5fname_72',['cgroup_get_value_name',['../group__group__groups.html#ga16ca75fd16eda7cfc642421111e9a331',1,'cgroup_get_value_name(struct cgroup_controller *controller, int index): wrapper.c'],['../group__group__groups.html#ga16ca75fd16eda7cfc642421111e9a331',1,'cgroup_get_value_name(struct cgroup_controller *controller, int index): wrapper.c']]],
- ['cgroup_5fget_5fvalue_5fname_5fcount_73',['cgroup_get_value_name_count',['../group__group__groups.html#ga25115085978ce2a8d671e7876cc49c1d',1,'cgroup_get_value_name_count(struct cgroup_controller *controller): wrapper.c'],['../group__group__groups.html#ga25115085978ce2a8d671e7876cc49c1d',1,'cgroup_get_value_name_count(struct cgroup_controller *controller): wrapper.c']]],
- ['cgroup_5fget_5fvalue_5fstring_74',['cgroup_get_value_string',['../group__group__groups.html#gafaa51e5ffe09f8ad05585a1d3b6f7fa9',1,'cgroup_get_value_string(struct cgroup_controller *controller, const char *name, char **value): wrapper.c'],['../group__group__groups.html#gafaa51e5ffe09f8ad05585a1d3b6f7fa9',1,'cgroup_get_value_string(struct cgroup_controller *controller, const char *name, char **value): wrapper.c']]],
- ['cgroup_5fget_5fvalue_5fuint64_75',['cgroup_get_value_uint64',['../group__group__groups.html#ga951861259c0373895bfb637fce337312',1,'cgroup_get_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t *value): wrapper.c'],['../group__group__groups.html#ga951861259c0373895bfb637fce337312',1,'cgroup_get_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t *value): wrapper.c']]],
- ['cgroup_5fgroup_5fspec_76',['cgroup_group_spec',['../structcgroup__group__spec.html',1,'']]],
- ['cgroup_5finit_5frules_5fcache_77',['cgroup_init_rules_cache',['../group__group__tasks.html#gad7fa5a2c4db08d31da5bfbecaf482d3d',1,'cgroup_init_rules_cache(void): api.c'],['../group__group__tasks.html#gad7fa5a2c4db08d31da5bfbecaf482d3d',1,'cgroup_init_rules_cache(void): api.c']]],
- ['cgroup_5finit_5ftemplates_5fcache_78',['cgroup_init_templates_cache',['../group__group__config.html#ga6f8c41bb920565e674787fe6dabaef00',1,'cgroup_init_templates_cache(char *pathname): config.c'],['../group__group__config.html#ga6f8c41bb920565e674787fe6dabaef00',1,'cgroup_init_templates_cache(char *pathname): config.c']]],
- ['cgroup_5fload_5ftemplates_5fcache_5ffrom_5ffiles_79',['cgroup_load_templates_cache_from_files',['../group__group__config.html#ga924860998c37da53cababe24163fc89b',1,'cgroup_load_templates_cache_from_files(int *file_index): config.c'],['../group__group__config.html#ga924860998c37da53cababe24163fc89b',1,'cgroup_load_templates_cache_from_files(int *file_index): config.c']]],
- ['cgroup_5flog_80',['cgroup_log',['../group__group__log.html#gab514ad5d83422ddfe479bdf651e80958',1,'cgroup_log(int loglevel, const char *fmt,...): log.c'],['../group__group__log.html#gab514ad5d83422ddfe479bdf651e80958',1,'cgroup_log(int level, const char *fmt,...): log.c']]],
- ['cgroup_5flog_5fdebug_81',['CGROUP_LOG_DEBUG',['../group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa86b4157fb38d9f8053c6b7429bd26c72',1,'log.h']]],
- ['cgroup_5flog_5ferror_82',['CGROUP_LOG_ERROR',['../group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa4dd44215cd3553e79dbf91eb9ca418a2',1,'log.h']]],
- ['cgroup_5flog_5finfo_83',['CGROUP_LOG_INFO',['../group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aad66ab51dba078ffc3b1c6d397053f9e2',1,'log.h']]],
- ['cgroup_5flog_5flevel_84',['cgroup_log_level',['../group__group__log.html#ga98b7aea5d23411e70c7e3da54d90233a',1,'log.h']]],
- ['cgroup_5flog_5fwarning_85',['CGROUP_LOG_WARNING',['../group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aaa99ec9e854a543901bddf854d1960057',1,'log.h']]],
- ['cgroup_5fmodify_5fcgroup_86',['cgroup_modify_cgroup',['../group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071',1,'cgroup_modify_cgroup(struct cgroup *cgroup): api.c'],['../group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071',1,'cgroup_modify_cgroup(struct cgroup *cgroup): api.c']]],
- ['cgroup_5fmount_5fpoint_87',['cgroup_mount_point',['../structcgroup__mount__point.html',1,'']]],
- ['cgroup_5fnew_5fcgroup_88',['cgroup_new_cgroup',['../group__group__groups.html#ga6cd4733e5982ac2c92ee3cb3dbd10a31',1,'cgroup_new_cgroup(const char *name): wrapper.c'],['../group__group__groups.html#ga6cd4733e5982ac2c92ee3cb3dbd10a31',1,'cgroup_new_cgroup(const char *name): wrapper.c']]],
- ['cgroup_5fparse_5flog_5flevel_5fstr_89',['cgroup_parse_log_level_str',['../group__group__log.html#gaa364a06aee0e99228a1e6a26b25a9794',1,'cgroup_parse_log_level_str(const char *levelstr): log.c'],['../group__group__log.html#gaa364a06aee0e99228a1e6a26b25a9794',1,'cgroup_parse_log_level_str(const char *levelstr): log.c']]],
- ['cgroup_5fprint_5frules_5fconfig_90',['cgroup_print_rules_config',['../group__group__tasks.html#gac4e3f29cfbdc3d77f08c9fe60857274a',1,'cgroup_print_rules_config(FILE *fp): api.c'],['../group__group__tasks.html#gac4e3f29cfbdc3d77f08c9fe60857274a',1,'cgroup_print_rules_config(FILE *fp): api.c']]],
- ['cgroup_5fread_5fstats_5fbegin_91',['cgroup_read_stats_begin',['../group__group__iterators.html#ga1138e47f124f0f634586db5e0c4ae5de',1,'cgroup_read_stats_begin(const char *controller, const char *path, void **handle, struct cgroup_stat *stat): api.c'],['../group__group__iterators.html#ga1138e47f124f0f634586db5e0c4ae5de',1,'cgroup_read_stats_begin(const char *controller, const char *path, void **handle, struct cgroup_stat *cgroup_stat): api.c']]],
- ['cgroup_5fread_5fstats_5fend_92',['cgroup_read_stats_end',['../group__group__iterators.html#gaba386d9db6cadc6ad85c2552f63447bb',1,'cgroup_read_stats_end(void **handle): api.c'],['../group__group__iterators.html#gaba386d9db6cadc6ad85c2552f63447bb',1,'cgroup_read_stats_end(void **handle): api.c']]],
- ['cgroup_5fread_5fstats_5fnext_93',['cgroup_read_stats_next',['../group__group__iterators.html#gaf95587508fc15d74fd5ed0df58024be7',1,'cgroup_read_stats_next(void **handle, struct cgroup_stat *stat): api.c'],['../group__group__iterators.html#gaf95587508fc15d74fd5ed0df58024be7',1,'cgroup_read_stats_next(void **handle, struct cgroup_stat *cgroup_stat): api.c']]],
- ['cgroup_5fread_5fvalue_5fbegin_94',['cgroup_read_value_begin',['../group__group__iterators.html#ga9378ee0f1f6e65900df8e25b3d7ce236',1,'cgroup_read_value_begin(const char *const controller, const char *path, const char *const name, void **handle, char *buffer, int max): api.c'],['../group__group__iterators.html#ga9378ee0f1f6e65900df8e25b3d7ce236',1,'cgroup_read_value_begin(const char *const controller, const char *path, const char *const name, void **handle, char *buffer, int max): api.c']]],
- ['cgroup_5fread_5fvalue_5fend_95',['cgroup_read_value_end',['../group__group__iterators.html#gad348f041e283860cbf6bcea567e23a21',1,'cgroup_read_value_end(void **handle): api.c'],['../group__group__iterators.html#gad348f041e283860cbf6bcea567e23a21',1,'cgroup_read_value_end(void **handle): api.c']]],
- ['cgroup_5fread_5fvalue_5fnext_96',['cgroup_read_value_next',['../group__group__iterators.html#gaced2fe331f19d599a3270db2440847cc',1,'cgroup_read_value_next(void **handle, char *buffer, int max): api.c'],['../group__group__iterators.html#gaced2fe331f19d599a3270db2440847cc',1,'cgroup_read_value_next(void **handle, char *buffer, int max): api.c']]],
- ['cgroup_5fregister_5funchanged_5fprocess_97',['cgroup_register_unchanged_process',['../group__group__tasks.html#ga64f7967d6d5edfff9afddaa6a6974b1c',1,'cgroup_register_unchanged_process(pid_t pid, int flags): api.c'],['../group__group__tasks.html#ga64f7967d6d5edfff9afddaa6a6974b1c',1,'cgroup_register_unchanged_process(pid_t pid, int flags): api.c']]],
- ['cgroup_5freload_5fcached_5frules_98',['cgroup_reload_cached_rules',['../group__group__tasks.html#gaf81ebd9cb5575c75b4c85f385ebda1ce',1,'cgroup_reload_cached_rules(void): api.c'],['../group__group__tasks.html#gaf81ebd9cb5575c75b4c85f385ebda1ce',1,'cgroup_reload_cached_rules(void): api.c']]],
- ['cgroup_5freload_5fcached_5ftemplates_99',['cgroup_reload_cached_templates',['../group__group__config.html#ga89fe0d7943b29cc10d57b07abcdfa7b5',1,'cgroup_reload_cached_templates(char *pathname): config.c'],['../group__group__config.html#ga89fe0d7943b29cc10d57b07abcdfa7b5',1,'cgroup_reload_cached_templates(char *pathname): config.c']]],
- ['cgroup_5frule_100',['cgroup_rule',['../structcgroup__rule.html',1,'']]],
- ['cgroup_5frule_5flist_101',['cgroup_rule_list',['../structcgroup__rule__list.html',1,'']]],
- ['cgroup_5frules_5fdata_102',['cgroup_rules_data',['../structcgroup__rules__data.html',1,'']]],
- ['cgroup_5fset_5fdefault_5flogger_103',['cgroup_set_default_logger',['../group__group__log.html#gab1457ce518dcde0b9f3c14ec9efa2de7',1,'cgroup_set_default_logger(int loglevel): log.c'],['../group__group__log.html#gab1457ce518dcde0b9f3c14ec9efa2de7',1,'cgroup_set_default_logger(int level): log.c']]],
- ['cgroup_5fset_5flogger_104',['cgroup_set_logger',['../group__group__log.html#ga76d7032206f9b9d1c0be1a71a68c43d0',1,'cgroup_set_logger(cgroup_logger_callback logger, int loglevel, void *userdata): log.c'],['../group__group__log.html#ga76d7032206f9b9d1c0be1a71a68c43d0',1,'cgroup_set_logger(cgroup_logger_callback logger, int loglevel, void *userdata): log.c']]],
- ['cgroup_5fset_5floglevel_105',['cgroup_set_loglevel',['../group__group__log.html#gaac5fe2352800ff62465a5abe649d5b8c',1,'cgroup_set_loglevel(int loglevel): log.c'],['../group__group__log.html#gaac5fe2352800ff62465a5abe649d5b8c',1,'cgroup_set_loglevel(int loglevel): log.c']]],
- ['cgroup_5fset_5fpermissions_106',['cgroup_set_permissions',['../group__group__groups.html#gaa0400f1ff2fba7fbb6db82d97039d92b',1,'cgroup_set_permissions(struct cgroup *cgroup, mode_t control_dperm, mode_t control_fperm, mode_t task_fperm): api.c'],['../group__group__groups.html#gaa0400f1ff2fba7fbb6db82d97039d92b',1,'cgroup_set_permissions(struct cgroup *cgroup, mode_t control_dperm, mode_t control_fperm, mode_t task_fperm): api.c']]],
- ['cgroup_5fset_5fuid_5fgid_107',['cgroup_set_uid_gid',['../group__group__groups.html#ga53b9e13e30660c805ab5773d69397a43',1,'cgroup_set_uid_gid(struct cgroup *cgroup, uid_t tasks_uid, gid_t tasks_gid, uid_t control_uid, gid_t control_gid): wrapper.c'],['../group__group__groups.html#ga53b9e13e30660c805ab5773d69397a43',1,'cgroup_set_uid_gid(struct cgroup *cgroup, uid_t tasks_uid, gid_t tasks_gid, uid_t control_uid, gid_t control_gid): wrapper.c']]],
- ['cgroup_5fset_5fvalue_5fbool_108',['cgroup_set_value_bool',['../group__group__groups.html#gafb24892bc221cffee0f5fe07f64d54d7',1,'cgroup_set_value_bool(struct cgroup_controller *controller, const char *name, bool value): wrapper.c'],['../group__group__groups.html#gafb24892bc221cffee0f5fe07f64d54d7',1,'cgroup_set_value_bool(struct cgroup_controller *controller, const char *name, bool value): wrapper.c']]],
- ['cgroup_5fset_5fvalue_5fint64_109',['cgroup_set_value_int64',['../group__group__groups.html#gaa5c39e51035cc43dd26a3c620441a956',1,'cgroup_set_value_int64(struct cgroup_controller *controller, const char *name, int64_t value): wrapper.c'],['../group__group__groups.html#gaa5c39e51035cc43dd26a3c620441a956',1,'cgroup_set_value_int64(struct cgroup_controller *controller, const char *name, int64_t value): wrapper.c']]],
- ['cgroup_5fset_5fvalue_5fstring_110',['cgroup_set_value_string',['../group__group__groups.html#ga938febc02b59cbeb8e4ceb2dc7fdac82',1,'cgroup_set_value_string(struct cgroup_controller *controller, const char *name, const char *value): wrapper.c'],['../group__group__groups.html#ga938febc02b59cbeb8e4ceb2dc7fdac82',1,'cgroup_set_value_string(struct cgroup_controller *controller, const char *name, const char *value): wrapper.c']]],
- ['cgroup_5fset_5fvalue_5fuint64_111',['cgroup_set_value_uint64',['../group__group__groups.html#gade01aa1fe30ccc968af9fe8a3bc821e5',1,'cgroup_set_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value): wrapper.c'],['../group__group__groups.html#gade01aa1fe30ccc968af9fe8a3bc821e5',1,'cgroup_set_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value): wrapper.c']]],
- ['cgroup_5fstat_112',['cgroup_stat',['../structcgroup__stat.html',1,'']]],
- ['cgroup_5fstrerror_113',['cgroup_strerror',['../group__group__errors.html#gaeae1d51db8528c89d84501c745020e6b',1,'cgroup_strerror(int code): api.c'],['../group__group__errors.html#gaeae1d51db8528c89d84501c745020e6b',1,'cgroup_strerror(int code): api.c']]],
- ['cgroup_5fstring_5flist_114',['cgroup_string_list',['../structcgroup__string__list.html',1,'']]],
- ['cgroup_5ftemplates_5fcache_5fset_5fsource_5ffiles_115',['cgroup_templates_cache_set_source_files',['../group__group__config.html#gacb09024dc469a1a1ff8cdebd8d0ab422',1,'cgroup_templates_cache_set_source_files(struct cgroup_string_list *tmpl_files): config.c'],['../group__group__config.html#gacb09024dc469a1a1ff8cdebd8d0ab422',1,'cgroup_templates_cache_set_source_files(struct cgroup_string_list *tmpl_files): config.c']]],
- ['cgroup_5ftree_5fhandle_116',['cgroup_tree_handle',['../structcgroup__tree__handle.html',1,'']]],
- ['cgroup_5funload_5fcgroups_117',['cgroup_unload_cgroups',['../group__group__config.html#ga85b285712354faca495193075035938d',1,'cgroup_unload_cgroups(void): config.c'],['../group__group__config.html#ga85b285712354faca495193075035938d',1,'cgroup_unload_cgroups(void): config.c']]],
- ['cgroup_5fwalk_5ftree_5fbegin_118',['cgroup_walk_tree_begin',['../group__group__iterators.html#ga7b19f10c06abb96d8c8ae88a04888a68',1,'cgroup_walk_tree_begin(const char *controller, const char *base_path, int depth, void **handle, struct cgroup_file_info *info, int *base_level): api.c'],['../group__group__iterators.html#ga7b19f10c06abb96d8c8ae88a04888a68',1,'cgroup_walk_tree_begin(const char *controller, const char *base_path, int depth, void **handle, struct cgroup_file_info *info, int *base_level): api.c']]],
- ['cgroup_5fwalk_5ftree_5fend_119',['cgroup_walk_tree_end',['../group__group__iterators.html#ga09a70990837a58e506a264f8c50d4cde',1,'cgroup_walk_tree_end(void **handle): api.c'],['../group__group__iterators.html#ga09a70990837a58e506a264f8c50d4cde',1,'cgroup_walk_tree_end(void **handle): api.c']]],
- ['cgroup_5fwalk_5ftree_5fnext_120',['cgroup_walk_tree_next',['../group__group__iterators.html#ga527f5499b0aa04d325074435baebdff1',1,'cgroup_walk_tree_next(int depth, void **handle, struct cgroup_file_info *info, int base_level): api.c'],['../group__group__iterators.html#ga527f5499b0aa04d325074435baebdff1',1,'cgroup_walk_tree_next(int depth, void **handle, struct cgroup_file_info *info, int base_level): api.c']]],
- ['cgroup_5fwalk_5ftree_5fset_5fflags_121',['cgroup_walk_tree_set_flags',['../group__group__iterators.html#ga645ec7a6206dffb32667e7a0e148edc8',1,'cgroup_walk_tree_set_flags(void **handle, int flags): api.c'],['../group__group__iterators.html#ga645ec7a6206dffb32667e7a0e148edc8',1,'cgroup_walk_tree_set_flags(void **handle, int flags): api.c']]],
- ['cgroup_5fwalk_5ftype_122',['cgroup_walk_type',['../group__group__iterators.html#ga29a572cbc0c07e2b02dfa0f1ac0067d3',1,'iterators.h']]],
- ['cgroup_5fwalk_5ftype_5fpost_5fdir_123',['CGROUP_WALK_TYPE_POST_DIR',['../group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3abf3c31227768960bd6622d2562aae3e1',1,'iterators.h']]],
- ['cgroup_5fwalk_5ftype_5fpre_5fdir_124',['CGROUP_WALK_TYPE_PRE_DIR',['../group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3af865296e6a0e55cff574fbb132b9f913',1,'iterators.h']]],
- ['control_5fvalue_125',['control_value',['../structcontrol__value.html',1,'']]],
- ['controller_5fdata_126',['controller_data',['../structcontroller__data.html',1,'']]]
+ ['cg_5fchmod_5frecursive_0',['cg_chmod_recursive',['../group__group__groups.html#gaef0bf6cd480f2dcb5e964de151a27dd1',1,'cg_chmod_recursive(struct cgroup *cgroup, mode_t dir_mode, int dirm_change, mode_t file_mode, int filem_change): api.c'],['../group__group__groups.html#gaef0bf6cd480f2dcb5e964de151a27dd1',1,'cg_chmod_recursive(struct cgroup *cgroup, mode_t dir_mode, int dirm_change, mode_t file_mode, int filem_change): api.c']]],
+ ['cg_5fmount_5fpoint_1',['cg_mount_point',['../structcg__mount__point.html',1,'']]],
+ ['cg_5fmount_5ftable_5fs_2',['cg_mount_table_s',['../structcg__mount__table__s.html',1,'']]],
+ ['cg_5fvalue_5fmax_3',['CG_VALUE_MAX',['../group__group__iterators.html#ga55d2eac2af703794651d344c073566f5',1,'iterators.h']]],
+ ['cgroup_4',['cgroup',['../structcgroup.html',1,'']]],
+ ['cgroup_5fabstraction_5fmap_5',['cgroup_abstraction_map',['../structcgroup__abstraction__map.html',1,'']]],
+ ['cgroup_5fadd_5fall_5fcontrollers_6',['cgroup_add_all_controllers',['../group__group__groups.html#gae870d271b789b5c54c2e3d35de3cd6f9',1,'cgroup_add_all_controllers(struct cgroup *cgroup): wrapper.c'],['../group__group__groups.html#gae870d271b789b5c54c2e3d35de3cd6f9',1,'cgroup_add_all_controllers(struct cgroup *cgroup): wrapper.c']]],
+ ['cgroup_5fadd_5fcontroller_7',['cgroup_add_controller',['../group__group__groups.html#ga3929afd6ced9fe877613286b5f06cf8d',1,'cgroup_add_controller(struct cgroup *cgroup, const char *name): wrapper.c'],['../group__group__groups.html#ga3929afd6ced9fe877613286b5f06cf8d',1,'cgroup_add_controller(struct cgroup *cgroup, const char *name): wrapper.c']]],
+ ['cgroup_5fadd_5fvalue_5fbool_8',['cgroup_add_value_bool',['../group__group__groups.html#ga4b191a600f84b00ea7afd12c01d918f3',1,'cgroup_add_value_bool(struct cgroup_controller *controller, const char *name, bool value): wrapper.c'],['../group__group__groups.html#ga4b191a600f84b00ea7afd12c01d918f3',1,'cgroup_add_value_bool(struct cgroup_controller *controller, const char *name, bool value): wrapper.c']]],
+ ['cgroup_5fadd_5fvalue_5fint64_9',['cgroup_add_value_int64',['../group__group__groups.html#ga6c973bb5ce99e7a91def2032f23d7087',1,'cgroup_add_value_int64(struct cgroup_controller *controller, const char *name, int64_t value): wrapper.c'],['../group__group__groups.html#ga6c973bb5ce99e7a91def2032f23d7087',1,'cgroup_add_value_int64(struct cgroup_controller *controller, const char *name, int64_t value): wrapper.c']]],
+ ['cgroup_5fadd_5fvalue_5fstring_10',['cgroup_add_value_string',['../group__group__groups.html#ga4817c68ab791c09c07b663c29b3fb029',1,'cgroup_add_value_string(struct cgroup_controller *controller, const char *name, const char *value): wrapper.c'],['../group__group__groups.html#ga4817c68ab791c09c07b663c29b3fb029',1,'cgroup_add_value_string(struct cgroup_controller *controller, const char *name, const char *value): wrapper.c']]],
+ ['cgroup_5fadd_5fvalue_5fuint64_11',['cgroup_add_value_uint64',['../group__group__groups.html#gad9d2216205b96278c626122f8d5e63bb',1,'cgroup_add_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value): wrapper.c'],['../group__group__groups.html#gad9d2216205b96278c626122f8d5e63bb',1,'cgroup_add_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value): wrapper.c']]],
+ ['cgroup_5fattach_5ftask_12',['cgroup_attach_task',['../group__group__tasks.html#ga43414ac2b1fc73bbb46b6278c7500188',1,'cgroup_attach_task(struct cgroup *cgroup): api.c'],['../group__group__tasks.html#ga43414ac2b1fc73bbb46b6278c7500188',1,'cgroup_attach_task(struct cgroup *cgroup): api.c']]],
+ ['cgroup_5fattach_5ftask_5fpid_13',['cgroup_attach_task_pid',['../group__group__tasks.html#ga9c7532681986d156ac3f6bac1fcf6aab',1,'cgroup_attach_task_pid(struct cgroup *cgroup, pid_t tid): api.c'],['../group__group__tasks.html#ga9c7532681986d156ac3f6bac1fcf6aab',1,'cgroup_attach_task_pid(struct cgroup *cgroup, pid_t tid): api.c']]],
+ ['cgroup_5fchange_5fall_5fcgroups_14',['cgroup_change_all_cgroups',['../group__group__tasks.html#gafc69658b012b6f1c11ba078ffccd70a2',1,'cgroup_change_all_cgroups(void): api.c'],['../group__group__tasks.html#gafc69658b012b6f1c11ba078ffccd70a2',1,'cgroup_change_all_cgroups(void): api.c']]],
+ ['cgroup_5fchange_5fcgroup_5fflags_15',['cgroup_change_cgroup_flags',['../group__group__tasks.html#ga368e7b8e19b3943ab6fb50e76a09e6ea',1,'cgroup_change_cgroup_flags(uid_t uid, gid_t gid, const char *procname, pid_t pid, int flags): api.c'],['../group__group__tasks.html#ga368e7b8e19b3943ab6fb50e76a09e6ea',1,'cgroup_change_cgroup_flags(uid_t uid, gid_t gid, const char *procname, pid_t pid, int flags): api.c']]],
+ ['cgroup_5fchange_5fcgroup_5fpath_16',['cgroup_change_cgroup_path',['../group__group__tasks.html#ga2d4677baef780c003fc6fba6b5dc78f2',1,'cgroup_change_cgroup_path(const char *path, pid_t pid, const char *const controllers[]): api.c'],['../group__group__tasks.html#ga2d4677baef780c003fc6fba6b5dc78f2',1,'cgroup_change_cgroup_path(const char *dest, pid_t pid, const char *const controllers[]): api.c']]],
+ ['cgroup_5fchange_5fcgroup_5fuid_5fgid_17',['cgroup_change_cgroup_uid_gid',['../group__group__tasks.html#ga5eab78a922dbacd368360f03c70146be',1,'cgroup_change_cgroup_uid_gid(uid_t uid, gid_t gid, pid_t pid): api.c'],['../group__group__tasks.html#ga5eab78a922dbacd368360f03c70146be',1,'cgroup_change_cgroup_uid_gid(uid_t uid, gid_t gid, pid_t pid): api.c']]],
+ ['cgroup_5fchange_5fcgroup_5fuid_5fgid_5fflags_18',['cgroup_change_cgroup_uid_gid_flags',['../group__group__tasks.html#gae472183a7c9a37826ef15c77014c47fb',1,'cgroup_change_cgroup_uid_gid_flags(uid_t uid, gid_t gid, pid_t pid, int flags): api.c'],['../group__group__tasks.html#gae472183a7c9a37826ef15c77014c47fb',1,'cgroup_change_cgroup_uid_gid_flags(uid_t uid, gid_t gid, pid_t pid, int flags): api.c']]],
+ ['cgroup_5fcompare_5fcgroup_19',['cgroup_compare_cgroup',['../group__group__groups.html#ga86898b59e50335f99fe84a11fa38d3fc',1,'cgroup_compare_cgroup(struct cgroup *cgroup_a, struct cgroup *cgroup_b): wrapper.c'],['../group__group__groups.html#ga86898b59e50335f99fe84a11fa38d3fc',1,'cgroup_compare_cgroup(struct cgroup *cgroup_a, struct cgroup *cgroup_b): wrapper.c']]],
+ ['cgroup_5fcompare_5fcontrollers_20',['cgroup_compare_controllers',['../group__group__groups.html#gab1725c50c49cec4b0bdad1f26b150ca7',1,'cgroup_compare_controllers(struct cgroup_controller *cgca, struct cgroup_controller *cgcb): wrapper.c'],['../group__group__groups.html#gab1725c50c49cec4b0bdad1f26b150ca7',1,'cgroup_compare_controllers(struct cgroup_controller *cgca, struct cgroup_controller *cgcb): wrapper.c']]],
+ ['cgroup_5fconfig_5fcreate_5ftemplate_5fgroup_21',['cgroup_config_create_template_group',['../group__group__config.html#ga72066260cd31ceed7ecc1a648eba37f2',1,'cgroup_config_create_template_group(struct cgroup *cgroup, char *template_name, int flags): config.c'],['../group__group__config.html#ga72066260cd31ceed7ecc1a648eba37f2',1,'cgroup_config_create_template_group(struct cgroup *cgroup, char *template_name, int flags): config.c']]],
+ ['cgroup_5fconfig_5fload_5fconfig_22',['cgroup_config_load_config',['../group__group__config.html#ga8adfaca013333acf922a167f55b84140',1,'cgroup_config_load_config(const char *pathname): config.c'],['../group__group__config.html#ga8adfaca013333acf922a167f55b84140',1,'cgroup_config_load_config(const char *pathname): config.c']]],
+ ['cgroup_5fconfig_5fset_5fdefault_23',['cgroup_config_set_default',['../group__group__config.html#ga2d3a252b2c0c61c8f64cb1fc41e370ea',1,'cgroup_config_set_default(struct cgroup *new_default): config.c'],['../group__group__config.html#ga2d3a252b2c0c61c8f64cb1fc41e370ea',1,'cgroup_config_set_default(struct cgroup *new_default): config.c']]],
+ ['cgroup_5fconfig_5funload_5fconfig_24',['cgroup_config_unload_config',['../group__group__config.html#gaff77affa0b80ccf507b4b46cc0a8c085',1,'cgroup_config_unload_config(const char *pathname, int flags): config.c'],['../group__group__config.html#gaff77affa0b80ccf507b4b46cc0a8c085',1,'cgroup_config_unload_config(const char *pathname, int flags): config.c']]],
+ ['cgroup_5fcontroller_25',['cgroup_controller',['../structcgroup__controller.html',1,'']]],
+ ['cgroup_5fcopy_5fcgroup_26',['cgroup_copy_cgroup',['../group__group__groups.html#gaa981a95e0917d3167601a4c1b392336a',1,'cgroup_copy_cgroup(struct cgroup *dst, struct cgroup *src): api.c'],['../group__group__groups.html#gaa981a95e0917d3167601a4c1b392336a',1,'cgroup_copy_cgroup(struct cgroup *dst, struct cgroup *src): api.c']]],
+ ['cgroup_5fcreate_5fcgroup_27',['cgroup_create_cgroup',['../group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7',1,'cgroup_create_cgroup(struct cgroup *cgroup, int ignore_ownership): api.c'],['../group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7',1,'cgroup_create_cgroup(struct cgroup *cgroup, int ignore_ownership): api.c']]],
+ ['cgroup_5fcreate_5fcgroup_5ffrom_5fparent_28',['cgroup_create_cgroup_from_parent',['../group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62',1,'cgroup_create_cgroup_from_parent(struct cgroup *cgroup, int ignore_ownership): api.c'],['../group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62',1,'cgroup_create_cgroup_from_parent(struct cgroup *cgroup, int ignore_ownership): api.c']]],
+ ['cgroup_5fdelete_5fcgroup_29',['cgroup_delete_cgroup',['../group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565',1,'cgroup_delete_cgroup(struct cgroup *cgroup, int ignore_migration): api.c'],['../group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565',1,'cgroup_delete_cgroup(struct cgroup *cgroup, int ignore_migration): api.c']]],
+ ['cgroup_5fdelete_5fcgroup_5fext_30',['cgroup_delete_cgroup_ext',['../group__group__groups.html#ga860c1ec70189c969b2c8373fc1e96d36',1,'cgroup_delete_cgroup_ext(struct cgroup *cgroup, int flags): api.c'],['../group__group__groups.html#ga860c1ec70189c969b2c8373fc1e96d36',1,'cgroup_delete_cgroup_ext(struct cgroup *cgroup, int flags): api.c']]],
+ ['cgroup_5fdictionary_31',['cgroup_dictionary',['../structcgroup__dictionary.html',1,'']]],
+ ['cgroup_5fdictionary_5fitem_32',['cgroup_dictionary_item',['../structcgroup__dictionary__item.html',1,'']]],
+ ['cgroup_5fdictionary_5fiterator_33',['cgroup_dictionary_iterator',['../structcgroup__dictionary__iterator.html',1,'']]],
+ ['cgroup_5ffile_5finfo_34',['cgroup_file_info',['../structcgroup__file__info.html',1,'']]],
+ ['cgroup_5ffile_5ftype_35',['cgroup_file_type',['../group__group__iterators.html#ga608b4aa32e2db58fed34771a6a272444',1,'iterators.h']]],
+ ['cgroup_5ffile_5ftype_5fdir_36',['CGROUP_FILE_TYPE_DIR',['../group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a5418798fc4bf9634429c6af167a0e7c3',1,'iterators.h']]],
+ ['cgroup_5ffile_5ftype_5ffile_37',['CGROUP_FILE_TYPE_FILE',['../group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444ad925cc45f1b34fe80e14fc6b05269740',1,'iterators.h']]],
+ ['cgroup_5ffile_5ftype_5fother_38',['CGROUP_FILE_TYPE_OTHER',['../group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a24e202c59f318e63ad8cafcc1b4b102b',1,'iterators.h']]],
+ ['cgroup_5ffree_39',['cgroup_free',['../group__group__groups.html#gab20fdb1ae479f8baac482336abf73900',1,'cgroup_free(struct cgroup **cgroup): wrapper.c'],['../group__group__groups.html#gab20fdb1ae479f8baac482336abf73900',1,'cgroup_free(struct cgroup **cgroup): wrapper.c']]],
+ ['cgroup_5ffree_5fcontrollers_40',['cgroup_free_controllers',['../group__group__groups.html#ga92d27c9ff0d655838642a7aa68497596',1,'cgroup_free_controllers(struct cgroup *cgroup): wrapper.c'],['../group__group__groups.html#ga92d27c9ff0d655838642a7aa68497596',1,'cgroup_free_controllers(struct cgroup *cgroup): wrapper.c']]],
+ ['cgroup_5fget_5fall_5fcontroller_5fbegin_41',['cgroup_get_all_controller_begin',['../group__group__iterators.html#gad48ef653388ca6739a9b6bbb9d7da82e',1,'cgroup_get_all_controller_begin(void **handle, struct controller_data *info): api.c'],['../group__group__iterators.html#gad48ef653388ca6739a9b6bbb9d7da82e',1,'cgroup_get_all_controller_begin(void **handle, struct controller_data *info): api.c']]],
+ ['cgroup_5fget_5fall_5fcontroller_5fend_42',['cgroup_get_all_controller_end',['../group__group__iterators.html#ga0c467d42a2c9a916a0edd339a6d7afc8',1,'cgroup_get_all_controller_end(void **handle): api.c'],['../group__group__iterators.html#ga0c467d42a2c9a916a0edd339a6d7afc8',1,'cgroup_get_all_controller_end(void **handle): api.c']]],
+ ['cgroup_5fget_5fall_5fcontroller_5fnext_43',['cgroup_get_all_controller_next',['../group__group__iterators.html#ga3d98a04b29b1fe409db1114b7aa76809',1,'cgroup_get_all_controller_next(void **handle, struct controller_data *info): api.c'],['../group__group__iterators.html#ga3d98a04b29b1fe409db1114b7aa76809',1,'cgroup_get_all_controller_next(void **handle, struct controller_data *info): api.c']]],
+ ['cgroup_5fget_5fcgroup_44',['cgroup_get_cgroup',['../group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6',1,'cgroup_get_cgroup(struct cgroup *cgroup): api.c'],['../group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6',1,'cgroup_get_cgroup(struct cgroup *cgroup): api.c']]],
+ ['cgroup_5fget_5fcgroup_5fname_45',['cgroup_get_cgroup_name',['../group__group__groups.html#gab60b1f528fbfb17d69a88f499c7071aa',1,'cgroup_get_cgroup_name(struct cgroup *cgroup): wrapper.c'],['../group__group__groups.html#gab60b1f528fbfb17d69a88f499c7071aa',1,'cgroup_get_cgroup_name(struct cgroup *cgroup): wrapper.c']]],
+ ['cgroup_5fget_5fcontroller_46',['cgroup_get_controller',['../group__group__groups.html#ga6b60ab9187a883a2ae114f8d87191e27',1,'cgroup_get_controller(struct cgroup *cgroup, const char *name): wrapper.c'],['../group__group__groups.html#ga6b60ab9187a883a2ae114f8d87191e27',1,'cgroup_get_controller(struct cgroup *cgroup, const char *name): wrapper.c']]],
+ ['cgroup_5fget_5fcontroller_5fbegin_47',['cgroup_get_controller_begin',['../group__group__iterators.html#ga5f9f21138f9b18912a16b21a45b53c44',1,'cgroup_get_controller_begin(void **handle, struct cgroup_mount_point *info): api.c'],['../group__group__iterators.html#ga5f9f21138f9b18912a16b21a45b53c44',1,'cgroup_get_controller_begin(void **handle, struct cgroup_mount_point *info): api.c']]],
+ ['cgroup_5fget_5fcontroller_5fend_48',['cgroup_get_controller_end',['../group__group__iterators.html#gab485cda2bc9640bacbf61f1953ae750c',1,'cgroup_get_controller_end(void **handle): api.c'],['../group__group__iterators.html#gab485cda2bc9640bacbf61f1953ae750c',1,'cgroup_get_controller_end(void **handle): api.c']]],
+ ['cgroup_5fget_5fcontroller_5fnext_49',['cgroup_get_controller_next',['../group__group__iterators.html#ga926b70423b6c087c21a14670cd23cd7d',1,'cgroup_get_controller_next(void **handle, struct cgroup_mount_point *info): api.c'],['../group__group__iterators.html#ga926b70423b6c087c21a14670cd23cd7d',1,'cgroup_get_controller_next(void **handle, struct cgroup_mount_point *info): api.c']]],
+ ['cgroup_5fget_5fcontroller_5fversion_50',['cgroup_get_controller_version',['../group__group__groups.html#ga452d8c5e95c8d694e26e7efda045360f',1,'cgroup_get_controller_version(const char *const controller, enum cg_version_t *const version): api.c'],['../group__group__groups.html#ga452d8c5e95c8d694e26e7efda045360f',1,'cgroup_get_controller_version(const char *const controller, enum cg_version_t *const version): api.c']]],
+ ['cgroup_5fget_5fcurrent_5fcontroller_5fpath_51',['cgroup_get_current_controller_path',['../group__group__tasks.html#ga6f2c17b99cf2526cb46df4769eb3f46e',1,'cgroup_get_current_controller_path(pid_t pid, const char *controller, char **current_path): api.c'],['../group__group__tasks.html#ga6f2c17b99cf2526cb46df4769eb3f46e',1,'cgroup_get_current_controller_path(pid_t pid, const char *controller, char **current_path): api.c']]],
+ ['cgroup_5fget_5flast_5ferrno_52',['cgroup_get_last_errno',['../group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46',1,'cgroup_get_last_errno(void): api.c'],['../group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46',1,'cgroup_get_last_errno(void): api.c']]],
+ ['cgroup_5fget_5fprocs_53',['cgroup_get_procs',['../group__group__groups.html#ga08a4fe913d59f61a39e61b8b02537dc2',1,'cgroup_get_procs(char *name, char *controller, pid_t **pids, int *size): api.c'],['../group__group__groups.html#ga08a4fe913d59f61a39e61b8b02537dc2',1,'cgroup_get_procs(char *name, char *controller, pid_t **pids, int *size): api.c']]],
+ ['cgroup_5fget_5fsubsys_5fmount_5fpoint_5fbegin_54',['cgroup_get_subsys_mount_point_begin',['../group__group__iterators.html#ga18a3c6fe7da42b9da96ce34dce1e31b8',1,'cgroup_get_subsys_mount_point_begin(const char *controller, void **handle, char *path): api.c'],['../group__group__iterators.html#ga18a3c6fe7da42b9da96ce34dce1e31b8',1,'cgroup_get_subsys_mount_point_begin(const char *controller, void **handle, char *path): api.c']]],
+ ['cgroup_5fget_5fsubsys_5fmount_5fpoint_5fend_55',['cgroup_get_subsys_mount_point_end',['../group__group__iterators.html#ga9c9b0f1921c205bd25bfc6c1d20486eb',1,'cgroup_get_subsys_mount_point_end(void **handle): api.c'],['../group__group__iterators.html#ga9c9b0f1921c205bd25bfc6c1d20486eb',1,'cgroup_get_subsys_mount_point_end(void **handle): api.c']]],
+ ['cgroup_5fget_5fsubsys_5fmount_5fpoint_5fnext_56',['cgroup_get_subsys_mount_point_next',['../group__group__iterators.html#ga3d66997158cb8a334317923ad94cc789',1,'cgroup_get_subsys_mount_point_next(void **handle, char *path): api.c'],['../group__group__iterators.html#ga3d66997158cb8a334317923ad94cc789',1,'cgroup_get_subsys_mount_point_next(void **handle, char *path): api.c']]],
+ ['cgroup_5fget_5ftask_5fbegin_57',['cgroup_get_task_begin',['../group__group__iterators.html#gad7218154192f733120e1025cc19d0a36',1,'cgroup_get_task_begin(const char *cgroup, const char *controller, void **handle, pid_t *pid): api.c'],['../group__group__iterators.html#gad7218154192f733120e1025cc19d0a36',1,'cgroup_get_task_begin(const char *cgroup, const char *controller, void **handle, pid_t *pid): api.c']]],
+ ['cgroup_5fget_5ftask_5fend_58',['cgroup_get_task_end',['../group__group__iterators.html#gaeb955e5f4da551268380b1271d478816',1,'cgroup_get_task_end(void **handle): api.c'],['../group__group__iterators.html#gaeb955e5f4da551268380b1271d478816',1,'cgroup_get_task_end(void **handle): api.c']]],
+ ['cgroup_5fget_5ftask_5fnext_59',['cgroup_get_task_next',['../group__group__iterators.html#gaf3a0364682b7449ddccfb0862bbb565e',1,'cgroup_get_task_next(void **handle, pid_t *pid): api.c'],['../group__group__iterators.html#gaf3a0364682b7449ddccfb0862bbb565e',1,'cgroup_get_task_next(void **handle, pid_t *pid): api.c']]],
+ ['cgroup_5fget_5fuid_5fgid_60',['cgroup_get_uid_gid',['../group__group__groups.html#ga007d21c304d9cc6e948dc0ae51ecfa86',1,'cgroup_get_uid_gid(struct cgroup *cgroup, uid_t *tasks_uid, gid_t *tasks_gid, uid_t *control_uid, gid_t *control_gid): wrapper.c'],['../group__group__groups.html#ga007d21c304d9cc6e948dc0ae51ecfa86',1,'cgroup_get_uid_gid(struct cgroup *cgroup, uid_t *tasks_uid, gid_t *tasks_gid, uid_t *control_uid, gid_t *control_gid): wrapper.c']]],
+ ['cgroup_5fget_5fvalue_5fbool_61',['cgroup_get_value_bool',['../group__group__groups.html#gab95007148eac89b7e935d93a4524787b',1,'cgroup_get_value_bool(struct cgroup_controller *controller, const char *name, bool *value): wrapper.c'],['../group__group__groups.html#gab95007148eac89b7e935d93a4524787b',1,'cgroup_get_value_bool(struct cgroup_controller *controller, const char *name, bool *value): wrapper.c']]],
+ ['cgroup_5fget_5fvalue_5fint64_62',['cgroup_get_value_int64',['../group__group__groups.html#ga0fe9b05f26b3cab21fc446c9a2700526',1,'cgroup_get_value_int64(struct cgroup_controller *controller, const char *name, int64_t *value): wrapper.c'],['../group__group__groups.html#ga0fe9b05f26b3cab21fc446c9a2700526',1,'cgroup_get_value_int64(struct cgroup_controller *controller, const char *name, int64_t *value): wrapper.c']]],
+ ['cgroup_5fget_5fvalue_5fname_63',['cgroup_get_value_name',['../group__group__groups.html#ga9d01743fd3f97014e08fc67149ec5f0b',1,'cgroup_get_value_name(struct cgroup_controller *controller, int index): wrapper.c'],['../group__group__groups.html#ga9d01743fd3f97014e08fc67149ec5f0b',1,'cgroup_get_value_name(struct cgroup_controller *controller, int index): wrapper.c']]],
+ ['cgroup_5fget_5fvalue_5fname_5fcount_64',['cgroup_get_value_name_count',['../group__group__groups.html#ga25115085978ce2a8d671e7876cc49c1d',1,'cgroup_get_value_name_count(struct cgroup_controller *controller): wrapper.c'],['../group__group__groups.html#ga25115085978ce2a8d671e7876cc49c1d',1,'cgroup_get_value_name_count(struct cgroup_controller *controller): wrapper.c']]],
+ ['cgroup_5fget_5fvalue_5fstring_65',['cgroup_get_value_string',['../group__group__groups.html#gafaa51e5ffe09f8ad05585a1d3b6f7fa9',1,'cgroup_get_value_string(struct cgroup_controller *controller, const char *name, char **value): wrapper.c'],['../group__group__groups.html#gafaa51e5ffe09f8ad05585a1d3b6f7fa9',1,'cgroup_get_value_string(struct cgroup_controller *controller, const char *name, char **value): wrapper.c']]],
+ ['cgroup_5fget_5fvalue_5fuint64_66',['cgroup_get_value_uint64',['../group__group__groups.html#ga951861259c0373895bfb637fce337312',1,'cgroup_get_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t *value): wrapper.c'],['../group__group__groups.html#ga951861259c0373895bfb637fce337312',1,'cgroup_get_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t *value): wrapper.c']]],
+ ['cgroup_5fgroup_5fspec_67',['cgroup_group_spec',['../structcgroup__group__spec.html',1,'']]],
+ ['cgroup_5finit_5frules_5fcache_68',['cgroup_init_rules_cache',['../group__group__tasks.html#gad7fa5a2c4db08d31da5bfbecaf482d3d',1,'cgroup_init_rules_cache(void): api.c'],['../group__group__tasks.html#gad7fa5a2c4db08d31da5bfbecaf482d3d',1,'cgroup_init_rules_cache(void): api.c']]],
+ ['cgroup_5finit_5ftemplates_5fcache_69',['cgroup_init_templates_cache',['../group__group__config.html#ga6f8c41bb920565e674787fe6dabaef00',1,'cgroup_init_templates_cache(char *pathname): config.c'],['../group__group__config.html#ga6f8c41bb920565e674787fe6dabaef00',1,'cgroup_init_templates_cache(char *pathname): config.c']]],
+ ['cgroup_5fload_5ftemplates_5fcache_5ffrom_5ffiles_70',['cgroup_load_templates_cache_from_files',['../group__group__config.html#ga924860998c37da53cababe24163fc89b',1,'cgroup_load_templates_cache_from_files(int *file_index): config.c'],['../group__group__config.html#ga924860998c37da53cababe24163fc89b',1,'cgroup_load_templates_cache_from_files(int *file_index): config.c']]],
+ ['cgroup_5flog_71',['cgroup_log',['../group__group__log.html#gab514ad5d83422ddfe479bdf651e80958',1,'cgroup_log(int loglevel, const char *fmt,...): log.c'],['../group__group__log.html#gab514ad5d83422ddfe479bdf651e80958',1,'cgroup_log(int level, const char *fmt,...): log.c']]],
+ ['cgroup_5flog_5fdebug_72',['CGROUP_LOG_DEBUG',['../group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa86b4157fb38d9f8053c6b7429bd26c72',1,'log.h']]],
+ ['cgroup_5flog_5ferror_73',['CGROUP_LOG_ERROR',['../group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa4dd44215cd3553e79dbf91eb9ca418a2',1,'log.h']]],
+ ['cgroup_5flog_5finfo_74',['CGROUP_LOG_INFO',['../group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aad66ab51dba078ffc3b1c6d397053f9e2',1,'log.h']]],
+ ['cgroup_5flog_5flevel_75',['cgroup_log_level',['../group__group__log.html#ga98b7aea5d23411e70c7e3da54d90233a',1,'log.h']]],
+ ['cgroup_5flog_5fwarning_76',['CGROUP_LOG_WARNING',['../group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aaa99ec9e854a543901bddf854d1960057',1,'log.h']]],
+ ['cgroup_5fmodify_5fcgroup_77',['cgroup_modify_cgroup',['../group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071',1,'cgroup_modify_cgroup(struct cgroup *cgroup): api.c'],['../group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071',1,'cgroup_modify_cgroup(struct cgroup *cgroup): api.c']]],
+ ['cgroup_5fmount_5fpoint_78',['cgroup_mount_point',['../structcgroup__mount__point.html',1,'']]],
+ ['cgroup_5fnew_5fcgroup_79',['cgroup_new_cgroup',['../group__group__groups.html#gad34c82ead174988d418f3dcb003aaca7',1,'cgroup_new_cgroup(const char *name): wrapper.c'],['../group__group__groups.html#gad34c82ead174988d418f3dcb003aaca7',1,'cgroup_new_cgroup(const char *name): wrapper.c']]],
+ ['cgroup_5fparse_5flog_5flevel_5fstr_80',['cgroup_parse_log_level_str',['../group__group__log.html#gaa364a06aee0e99228a1e6a26b25a9794',1,'cgroup_parse_log_level_str(const char *levelstr): log.c'],['../group__group__log.html#gaa364a06aee0e99228a1e6a26b25a9794',1,'cgroup_parse_log_level_str(const char *levelstr): log.c']]],
+ ['cgroup_5fprint_5frules_5fconfig_81',['cgroup_print_rules_config',['../group__group__tasks.html#gac4e3f29cfbdc3d77f08c9fe60857274a',1,'cgroup_print_rules_config(FILE *fp): api.c'],['../group__group__tasks.html#gac4e3f29cfbdc3d77f08c9fe60857274a',1,'cgroup_print_rules_config(FILE *fp): api.c']]],
+ ['cgroup_5fread_5fstats_5fbegin_82',['cgroup_read_stats_begin',['../group__group__iterators.html#ga1138e47f124f0f634586db5e0c4ae5de',1,'cgroup_read_stats_begin(const char *controller, const char *path, void **handle, struct cgroup_stat *stat): api.c'],['../group__group__iterators.html#ga1138e47f124f0f634586db5e0c4ae5de',1,'cgroup_read_stats_begin(const char *controller, const char *path, void **handle, struct cgroup_stat *cgroup_stat): api.c']]],
+ ['cgroup_5fread_5fstats_5fend_83',['cgroup_read_stats_end',['../group__group__iterators.html#gaba386d9db6cadc6ad85c2552f63447bb',1,'cgroup_read_stats_end(void **handle): api.c'],['../group__group__iterators.html#gaba386d9db6cadc6ad85c2552f63447bb',1,'cgroup_read_stats_end(void **handle): api.c']]],
+ ['cgroup_5fread_5fstats_5fnext_84',['cgroup_read_stats_next',['../group__group__iterators.html#gaf95587508fc15d74fd5ed0df58024be7',1,'cgroup_read_stats_next(void **handle, struct cgroup_stat *stat): api.c'],['../group__group__iterators.html#gaf95587508fc15d74fd5ed0df58024be7',1,'cgroup_read_stats_next(void **handle, struct cgroup_stat *cgroup_stat): api.c']]],
+ ['cgroup_5fread_5fvalue_5fbegin_85',['cgroup_read_value_begin',['../group__group__iterators.html#ga9378ee0f1f6e65900df8e25b3d7ce236',1,'cgroup_read_value_begin(const char *const controller, const char *path, const char *const name, void **handle, char *buffer, int max): api.c'],['../group__group__iterators.html#ga9378ee0f1f6e65900df8e25b3d7ce236',1,'cgroup_read_value_begin(const char *const controller, const char *path, const char *const name, void **handle, char *buffer, int max): api.c']]],
+ ['cgroup_5fread_5fvalue_5fend_86',['cgroup_read_value_end',['../group__group__iterators.html#gad348f041e283860cbf6bcea567e23a21',1,'cgroup_read_value_end(void **handle): api.c'],['../group__group__iterators.html#gad348f041e283860cbf6bcea567e23a21',1,'cgroup_read_value_end(void **handle): api.c']]],
+ ['cgroup_5fread_5fvalue_5fnext_87',['cgroup_read_value_next',['../group__group__iterators.html#gaced2fe331f19d599a3270db2440847cc',1,'cgroup_read_value_next(void **handle, char *buffer, int max): api.c'],['../group__group__iterators.html#gaced2fe331f19d599a3270db2440847cc',1,'cgroup_read_value_next(void **handle, char *buffer, int max): api.c']]],
+ ['cgroup_5fregister_5funchanged_5fprocess_88',['cgroup_register_unchanged_process',['../group__group__tasks.html#ga64f7967d6d5edfff9afddaa6a6974b1c',1,'cgroup_register_unchanged_process(pid_t pid, int flags): api.c'],['../group__group__tasks.html#ga64f7967d6d5edfff9afddaa6a6974b1c',1,'cgroup_register_unchanged_process(pid_t pid, int flags): api.c']]],
+ ['cgroup_5freload_5fcached_5frules_89',['cgroup_reload_cached_rules',['../group__group__tasks.html#gaf81ebd9cb5575c75b4c85f385ebda1ce',1,'cgroup_reload_cached_rules(void): api.c'],['../group__group__tasks.html#gaf81ebd9cb5575c75b4c85f385ebda1ce',1,'cgroup_reload_cached_rules(void): api.c']]],
+ ['cgroup_5freload_5fcached_5ftemplates_90',['cgroup_reload_cached_templates',['../group__group__config.html#ga89fe0d7943b29cc10d57b07abcdfa7b5',1,'cgroup_reload_cached_templates(char *pathname): config.c'],['../group__group__config.html#ga89fe0d7943b29cc10d57b07abcdfa7b5',1,'cgroup_reload_cached_templates(char *pathname): config.c']]],
+ ['cgroup_5frule_91',['cgroup_rule',['../structcgroup__rule.html',1,'']]],
+ ['cgroup_5frule_5flist_92',['cgroup_rule_list',['../structcgroup__rule__list.html',1,'']]],
+ ['cgroup_5frules_5fdata_93',['cgroup_rules_data',['../structcgroup__rules__data.html',1,'']]],
+ ['cgroup_5fset_5fdefault_5flogger_94',['cgroup_set_default_logger',['../group__group__log.html#gab1457ce518dcde0b9f3c14ec9efa2de7',1,'cgroup_set_default_logger(int loglevel): log.c'],['../group__group__log.html#gab1457ce518dcde0b9f3c14ec9efa2de7',1,'cgroup_set_default_logger(int level): log.c']]],
+ ['cgroup_5fset_5flogger_95',['cgroup_set_logger',['../group__group__log.html#ga76d7032206f9b9d1c0be1a71a68c43d0',1,'cgroup_set_logger(cgroup_logger_callback logger, int loglevel, void *userdata): log.c'],['../group__group__log.html#ga76d7032206f9b9d1c0be1a71a68c43d0',1,'cgroup_set_logger(cgroup_logger_callback logger, int loglevel, void *userdata): log.c']]],
+ ['cgroup_5fset_5floglevel_96',['cgroup_set_loglevel',['../group__group__log.html#gaac5fe2352800ff62465a5abe649d5b8c',1,'cgroup_set_loglevel(int loglevel): log.c'],['../group__group__log.html#gaac5fe2352800ff62465a5abe649d5b8c',1,'cgroup_set_loglevel(int loglevel): log.c']]],
+ ['cgroup_5fset_5fpermissions_97',['cgroup_set_permissions',['../group__group__groups.html#gaa0400f1ff2fba7fbb6db82d97039d92b',1,'cgroup_set_permissions(struct cgroup *cgroup, mode_t control_dperm, mode_t control_fperm, mode_t task_fperm): api.c'],['../group__group__groups.html#gaa0400f1ff2fba7fbb6db82d97039d92b',1,'cgroup_set_permissions(struct cgroup *cgroup, mode_t control_dperm, mode_t control_fperm, mode_t task_fperm): api.c']]],
+ ['cgroup_5fset_5fuid_5fgid_98',['cgroup_set_uid_gid',['../group__group__groups.html#ga53b9e13e30660c805ab5773d69397a43',1,'cgroup_set_uid_gid(struct cgroup *cgroup, uid_t tasks_uid, gid_t tasks_gid, uid_t control_uid, gid_t control_gid): wrapper.c'],['../group__group__groups.html#ga53b9e13e30660c805ab5773d69397a43',1,'cgroup_set_uid_gid(struct cgroup *cgroup, uid_t tasks_uid, gid_t tasks_gid, uid_t control_uid, gid_t control_gid): wrapper.c']]],
+ ['cgroup_5fset_5fvalue_5fbool_99',['cgroup_set_value_bool',['../group__group__groups.html#gafb24892bc221cffee0f5fe07f64d54d7',1,'cgroup_set_value_bool(struct cgroup_controller *controller, const char *name, bool value): wrapper.c'],['../group__group__groups.html#gafb24892bc221cffee0f5fe07f64d54d7',1,'cgroup_set_value_bool(struct cgroup_controller *controller, const char *name, bool value): wrapper.c']]],
+ ['cgroup_5fset_5fvalue_5fint64_100',['cgroup_set_value_int64',['../group__group__groups.html#gaa5c39e51035cc43dd26a3c620441a956',1,'cgroup_set_value_int64(struct cgroup_controller *controller, const char *name, int64_t value): wrapper.c'],['../group__group__groups.html#gaa5c39e51035cc43dd26a3c620441a956',1,'cgroup_set_value_int64(struct cgroup_controller *controller, const char *name, int64_t value): wrapper.c']]],
+ ['cgroup_5fset_5fvalue_5fstring_101',['cgroup_set_value_string',['../group__group__groups.html#ga938febc02b59cbeb8e4ceb2dc7fdac82',1,'cgroup_set_value_string(struct cgroup_controller *controller, const char *name, const char *value): wrapper.c'],['../group__group__groups.html#ga938febc02b59cbeb8e4ceb2dc7fdac82',1,'cgroup_set_value_string(struct cgroup_controller *controller, const char *name, const char *value): wrapper.c']]],
+ ['cgroup_5fset_5fvalue_5fuint64_102',['cgroup_set_value_uint64',['../group__group__groups.html#gade01aa1fe30ccc968af9fe8a3bc821e5',1,'cgroup_set_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value): wrapper.c'],['../group__group__groups.html#gade01aa1fe30ccc968af9fe8a3bc821e5',1,'cgroup_set_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value): wrapper.c']]],
+ ['cgroup_5fstat_103',['cgroup_stat',['../structcgroup__stat.html',1,'']]],
+ ['cgroup_5fstrerror_104',['cgroup_strerror',['../group__group__errors.html#ga7ee3be57533b25d597a2bfd19819307a',1,'cgroup_strerror(int code): api.c'],['../group__group__errors.html#ga7ee3be57533b25d597a2bfd19819307a',1,'cgroup_strerror(int code): api.c']]],
+ ['cgroup_5fstring_5flist_105',['cgroup_string_list',['../structcgroup__string__list.html',1,'']]],
+ ['cgroup_5ftemplates_5fcache_5fset_5fsource_5ffiles_106',['cgroup_templates_cache_set_source_files',['../group__group__config.html#gacb09024dc469a1a1ff8cdebd8d0ab422',1,'cgroup_templates_cache_set_source_files(struct cgroup_string_list *tmpl_files): config.c'],['../group__group__config.html#gacb09024dc469a1a1ff8cdebd8d0ab422',1,'cgroup_templates_cache_set_source_files(struct cgroup_string_list *tmpl_files): config.c']]],
+ ['cgroup_5ftree_5fhandle_107',['cgroup_tree_handle',['../structcgroup__tree__handle.html',1,'']]],
+ ['cgroup_5funload_5fcgroups_108',['cgroup_unload_cgroups',['../group__group__config.html#ga85b285712354faca495193075035938d',1,'cgroup_unload_cgroups(void): config.c'],['../group__group__config.html#ga85b285712354faca495193075035938d',1,'cgroup_unload_cgroups(void): config.c']]],
+ ['cgroup_5fwalk_5ftree_5fbegin_109',['cgroup_walk_tree_begin',['../group__group__iterators.html#ga7b19f10c06abb96d8c8ae88a04888a68',1,'cgroup_walk_tree_begin(const char *controller, const char *base_path, int depth, void **handle, struct cgroup_file_info *info, int *base_level): api.c'],['../group__group__iterators.html#ga7b19f10c06abb96d8c8ae88a04888a68',1,'cgroup_walk_tree_begin(const char *controller, const char *base_path, int depth, void **handle, struct cgroup_file_info *info, int *base_level): api.c']]],
+ ['cgroup_5fwalk_5ftree_5fend_110',['cgroup_walk_tree_end',['../group__group__iterators.html#ga09a70990837a58e506a264f8c50d4cde',1,'cgroup_walk_tree_end(void **handle): api.c'],['../group__group__iterators.html#ga09a70990837a58e506a264f8c50d4cde',1,'cgroup_walk_tree_end(void **handle): api.c']]],
+ ['cgroup_5fwalk_5ftree_5fnext_111',['cgroup_walk_tree_next',['../group__group__iterators.html#ga527f5499b0aa04d325074435baebdff1',1,'cgroup_walk_tree_next(int depth, void **handle, struct cgroup_file_info *info, int base_level): api.c'],['../group__group__iterators.html#ga527f5499b0aa04d325074435baebdff1',1,'cgroup_walk_tree_next(int depth, void **handle, struct cgroup_file_info *info, int base_level): api.c']]],
+ ['cgroup_5fwalk_5ftree_5fset_5fflags_112',['cgroup_walk_tree_set_flags',['../group__group__iterators.html#ga645ec7a6206dffb32667e7a0e148edc8',1,'cgroup_walk_tree_set_flags(void **handle, int flags): api.c'],['../group__group__iterators.html#ga645ec7a6206dffb32667e7a0e148edc8',1,'cgroup_walk_tree_set_flags(void **handle, int flags): api.c']]],
+ ['cgroup_5fwalk_5ftype_113',['cgroup_walk_type',['../group__group__iterators.html#ga29a572cbc0c07e2b02dfa0f1ac0067d3',1,'iterators.h']]],
+ ['cgroup_5fwalk_5ftype_5fpost_5fdir_114',['CGROUP_WALK_TYPE_POST_DIR',['../group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3abf3c31227768960bd6622d2562aae3e1',1,'iterators.h']]],
+ ['cgroup_5fwalk_5ftype_5fpre_5fdir_115',['CGROUP_WALK_TYPE_PRE_DIR',['../group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3af865296e6a0e55cff574fbb132b9f913',1,'iterators.h']]],
+ ['control_5fvalue_116',['control_value',['../structcontrol__value.html',1,'']]],
+ ['controller_5fdata_117',['controller_data',['../structcontroller__data.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_9.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['depth_127',['depth',['../structcgroup__file__info.html#ad56dca35266f0f5f5c2666b946d72709',1,'cgroup_file_info']]]
+ ['depth_0',['depth',['../structcgroup__file__info.html#ad56dca35266f0f5f5c2666b946d72709',1,'cgroup_file_info']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_a.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['ecgconfigparsefail_128',['ECGCONFIGPARSEFAIL',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55baf808b0e31be4bfbe8a21f800f913f9c0',1,'error.h']]],
- ['ecgeof_129',['ECGEOF',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba2724c2f0af0d3e3cea66027f6bf2e436',1,'error.h']]],
- ['ecgnonempty_130',['ECGNONEMPTY',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba94dbe90328ef8a212633ec464b9b9b11',1,'error.h']]],
- ['ecgnoversionconvert_131',['ECGNOVERSIONCONVERT',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba33cc635e4cc4055b2c487f027fbdd960',1,'error.h']]],
- ['ecgother_132',['ECGOTHER',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba88111f9ca2e967cbf7565724444c0193',1,'error.h']]],
- ['ecgroupmultimounted_133',['ECGROUPMULTIMOUNTED',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba24a6584dd4238475a4e247bdf6956def',1,'error.h']]],
- ['ecgroupnorules_134',['ECGROUPNORULES',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba7c23c1a7cbfb7e8e9c66dd96b5c66d21',1,'error.h']]],
- ['ecgroupparsefail_135',['ECGROUPPARSEFAIL',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55bac62bda67f3029c39ef456100008b1f39',1,'error.h']]],
- ['ecgrulesparsefail_136',['ECGRULESPARSEFAIL',['../group__group__errors.html#ga515eba7218b187ffe263b7d9ecb3ac1b',1,'error.h']]],
- ['enabled_137',['enabled',['../structcontroller__data.html#a24be412cfb6c19f7a13a4bff9e55206e',1,'controller_data']]],
- ['ext_5fcgroup_5frecord_138',['ext_cgroup_record',['../structext__cgroup__record.html',1,'']]]
+ ['ecgconfigparsefail_0',['ECGCONFIGPARSEFAIL',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55baf808b0e31be4bfbe8a21f800f913f9c0',1,'error.h']]],
+ ['ecgeof_1',['ECGEOF',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba2724c2f0af0d3e3cea66027f6bf2e436',1,'error.h']]],
+ ['ecgnonempty_2',['ECGNONEMPTY',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba94dbe90328ef8a212633ec464b9b9b11',1,'error.h']]],
+ ['ecgnoversionconvert_3',['ECGNOVERSIONCONVERT',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba33cc635e4cc4055b2c487f027fbdd960',1,'error.h']]],
+ ['ecgother_4',['ECGOTHER',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba88111f9ca2e967cbf7565724444c0193',1,'error.h']]],
+ ['ecgroupmultimounted_5',['ECGROUPMULTIMOUNTED',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba24a6584dd4238475a4e247bdf6956def',1,'error.h']]],
+ ['ecgroupnorules_6',['ECGROUPNORULES',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba7c23c1a7cbfb7e8e9c66dd96b5c66d21',1,'error.h']]],
+ ['ecgroupparsefail_7',['ECGROUPPARSEFAIL',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55bac62bda67f3029c39ef456100008b1f39',1,'error.h']]],
+ ['ecgrulesparsefail_8',['ECGRULESPARSEFAIL',['../group__group__errors.html#ga515eba7218b187ffe263b7d9ecb3ac1b',1,'error.h']]],
+ ['enabled_9',['enabled',['../structcontroller__data.html#a24be412cfb6c19f7a13a4bff9e55206e',1,'controller_data']]],
+ ['ext_5fcgroup_5frecord_10',['ext_cgroup_record',['../structext__cgroup__record.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_b.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['full_5fpath_139',['full_path',['../structcgroup__file__info.html#a4c61dc7f726ba0784ff8c71473dbc6e6',1,'cgroup_file_info']]]
+ ['full_5fpath_0',['full_path',['../structcgroup__file__info.html#a4c61dc7f726ba0784ff8c71473dbc6e6',1,'cgroup_file_info']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_c.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['hierarchy_140',['hierarchy',['../structcontroller__data.html#a25e316f55473ca2b333b0d7e0ca644b4',1,'controller_data']]],
- ['how_20to_20contribute_20to_20the_20libcgroup_20project_141',['How to Contribute to the libcgroup Project',['../md_CONTRIBUTING.html',1,'']]]
+ ['hierarchy_0',['hierarchy',['../structcontroller__data.html#a25e316f55473ca2b333b0d7e0ca644b4',1,'controller_data']]],
+ ['how_20to_20contribute_20to_20the_20libcgroup_20project_1',['How to Contribute to the libcgroup Project',['../md_CONTRIBUTING.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_d.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['libcgroup_142',['libcgroup',['../index.html',1,'']]]
+ ['libcgroup_0',['libcgroup',['../index.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_e.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['mount_143',['mount',['../structcg__mount__table__s.html#a9704fa3ec3674f6d433345ea52b6aeef',1,'cg_mount_table_s']]]
+ ['mount_0',['mount',['../structcg__mount__table__s.html#a9704fa3ec3674f6d433345ea52b6aeef',1,'cg_mount_table_s']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_f.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['name_144',['name',['../structcgroup__mount__point.html#a849ccf1e77fffd5d45304c6adf0d2100',1,'cgroup_mount_point::name()'],['../structcontroller__data.html#a5474be4d8cc4553c94ca81c6a93f5a18',1,'controller_data::name()'],['../structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6',1,'cg_mount_table_s::name()']]],
- ['no_5fperms_145',['NO_PERMS',['../group__group__groups.html#gad4ffad2eccf9fcbfa8a551e269e0ad58',1,'groups.h']]],
- ['no_5fuid_5fgid_146',['NO_UID_GID',['../group__group__groups.html#ga2a7954a987e3fbf8eabcc94cf381353e',1,'groups.h']]],
- ['num_5fcgroups_147',['num_cgroups',['../structcontroller__data.html#acd075c0bb48062bf720b68d0a30116eb',1,'controller_data']]]
+ ['name_0',['name',['../structcgroup__mount__point.html#a849ccf1e77fffd5d45304c6adf0d2100',1,'cgroup_mount_point::name()'],['../structcontroller__data.html#a5474be4d8cc4553c94ca81c6a93f5a18',1,'controller_data::name()'],['../structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6',1,'cg_mount_table_s::name()']]],
+ ['no_5fperms_1',['NO_PERMS',['../group__group__groups.html#gad4ffad2eccf9fcbfa8a551e269e0ad58',1,'groups.h']]],
+ ['no_5fuid_5fgid_2',['NO_UID_GID',['../group__group__groups.html#ga2a7954a987e3fbf8eabcc94cf381353e',1,'groups.h']]],
+ ['num_5fcgroups_3',['num_cgroups',['../structcontroller__data.html#acd075c0bb48062bf720b68d0a30116eb',1,'controller_data']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="classes_0.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['array_5fparent_5finfo_156',['array_parent_info',['../structarray__parent__info.html',1,'']]],
- ['array_5funchanged_157',['array_unchanged',['../structarray__unchanged.html',1,'']]]
+ ['array_5fparent_5finfo_0',['array_parent_info',['../structarray__parent__info.html',1,'']]],
+ ['array_5funchanged_1',['array_unchanged',['../structarray__unchanged.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="classes_1.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['black_5flist_5ftype_158',['black_list_type',['../structblack__list__type.html',1,'']]]
+ ['black_5flist_5ftype_0',['black_list_type',['../structblack__list__type.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="classes_2.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['cg_5fmount_5fpoint_159',['cg_mount_point',['../structcg__mount__point.html',1,'']]],
- ['cg_5fmount_5ftable_5fs_160',['cg_mount_table_s',['../structcg__mount__table__s.html',1,'']]],
- ['cgroup_161',['cgroup',['../structcgroup.html',1,'']]],
- ['cgroup_5fabstraction_5fmap_162',['cgroup_abstraction_map',['../structcgroup__abstraction__map.html',1,'']]],
- ['cgroup_5fcontroller_163',['cgroup_controller',['../structcgroup__controller.html',1,'']]],
- ['cgroup_5fdictionary_164',['cgroup_dictionary',['../structcgroup__dictionary.html',1,'']]],
- ['cgroup_5fdictionary_5fitem_165',['cgroup_dictionary_item',['../structcgroup__dictionary__item.html',1,'']]],
- ['cgroup_5fdictionary_5fiterator_166',['cgroup_dictionary_iterator',['../structcgroup__dictionary__iterator.html',1,'']]],
- ['cgroup_5ffile_5finfo_167',['cgroup_file_info',['../structcgroup__file__info.html',1,'']]],
- ['cgroup_5fgroup_5fspec_168',['cgroup_group_spec',['../structcgroup__group__spec.html',1,'']]],
- ['cgroup_5fmount_5fpoint_169',['cgroup_mount_point',['../structcgroup__mount__point.html',1,'']]],
- ['cgroup_5frule_170',['cgroup_rule',['../structcgroup__rule.html',1,'']]],
- ['cgroup_5frule_5flist_171',['cgroup_rule_list',['../structcgroup__rule__list.html',1,'']]],
- ['cgroup_5frules_5fdata_172',['cgroup_rules_data',['../structcgroup__rules__data.html',1,'']]],
- ['cgroup_5fstat_173',['cgroup_stat',['../structcgroup__stat.html',1,'']]],
- ['cgroup_5fstring_5flist_174',['cgroup_string_list',['../structcgroup__string__list.html',1,'']]],
- ['cgroup_5ftree_5fhandle_175',['cgroup_tree_handle',['../structcgroup__tree__handle.html',1,'']]],
- ['control_5fvalue_176',['control_value',['../structcontrol__value.html',1,'']]],
- ['controller_5fdata_177',['controller_data',['../structcontroller__data.html',1,'']]]
+ ['cg_5fmount_5fpoint_0',['cg_mount_point',['../structcg__mount__point.html',1,'']]],
+ ['cg_5fmount_5ftable_5fs_1',['cg_mount_table_s',['../structcg__mount__table__s.html',1,'']]],
+ ['cgroup_2',['cgroup',['../structcgroup.html',1,'']]],
+ ['cgroup_5fabstraction_5fmap_3',['cgroup_abstraction_map',['../structcgroup__abstraction__map.html',1,'']]],
+ ['cgroup_5fcontroller_4',['cgroup_controller',['../structcgroup__controller.html',1,'']]],
+ ['cgroup_5fdictionary_5',['cgroup_dictionary',['../structcgroup__dictionary.html',1,'']]],
+ ['cgroup_5fdictionary_5fitem_6',['cgroup_dictionary_item',['../structcgroup__dictionary__item.html',1,'']]],
+ ['cgroup_5fdictionary_5fiterator_7',['cgroup_dictionary_iterator',['../structcgroup__dictionary__iterator.html',1,'']]],
+ ['cgroup_5ffile_5finfo_8',['cgroup_file_info',['../structcgroup__file__info.html',1,'']]],
+ ['cgroup_5fgroup_5fspec_9',['cgroup_group_spec',['../structcgroup__group__spec.html',1,'']]],
+ ['cgroup_5fmount_5fpoint_10',['cgroup_mount_point',['../structcgroup__mount__point.html',1,'']]],
+ ['cgroup_5frule_11',['cgroup_rule',['../structcgroup__rule.html',1,'']]],
+ ['cgroup_5frule_5flist_12',['cgroup_rule_list',['../structcgroup__rule__list.html',1,'']]],
+ ['cgroup_5frules_5fdata_13',['cgroup_rules_data',['../structcgroup__rules__data.html',1,'']]],
+ ['cgroup_5fstat_14',['cgroup_stat',['../structcgroup__stat.html',1,'']]],
+ ['cgroup_5fstring_5flist_15',['cgroup_string_list',['../structcgroup__string__list.html',1,'']]],
+ ['cgroup_5ftree_5fhandle_16',['cgroup_tree_handle',['../structcgroup__tree__handle.html',1,'']]],
+ ['control_5fvalue_17',['control_value',['../structcontrol__value.html',1,'']]],
+ ['controller_5fdata_18',['controller_data',['../structcontroller__data.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="classes_3.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['ext_5fcgroup_5frecord_178',['ext_cgroup_record',['../structext__cgroup__record.html',1,'']]]
+ ['ext_5fcgroup_5frecord_0',['ext_cgroup_record',['../structext__cgroup__record.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="classes_4.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['parent_5finfo_179',['parent_info',['../structparent__info.html',1,'']]]
+ ['parent_5finfo_0',['parent_info',['../structparent__info.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="classes_5.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['unchanged_5fpid_180',['unchanged_pid',['../structunchanged__pid.html',1,'']]]
+ ['unchanged_5fpid_0',['unchanged_pid',['../structunchanged__pid.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="enums_0.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['cgroup_5ffile_5ftype_277',['cgroup_file_type',['../group__group__iterators.html#ga608b4aa32e2db58fed34771a6a272444',1,'iterators.h']]],
- ['cgroup_5flog_5flevel_278',['cgroup_log_level',['../group__group__log.html#ga98b7aea5d23411e70c7e3da54d90233a',1,'log.h']]],
- ['cgroup_5fwalk_5ftype_279',['cgroup_walk_type',['../group__group__iterators.html#ga29a572cbc0c07e2b02dfa0f1ac0067d3',1,'iterators.h']]]
+ ['cgroup_5ffile_5ftype_0',['cgroup_file_type',['../group__group__iterators.html#ga608b4aa32e2db58fed34771a6a272444',1,'iterators.h']]],
+ ['cgroup_5flog_5flevel_1',['cgroup_log_level',['../group__group__log.html#ga98b7aea5d23411e70c7e3da54d90233a',1,'log.h']]],
+ ['cgroup_5fwalk_5ftype_2',['cgroup_walk_type',['../group__group__iterators.html#ga29a572cbc0c07e2b02dfa0f1ac0067d3',1,'iterators.h']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="enumvalues_0.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['cgroup_5ffile_5ftype_5fdir_280',['CGROUP_FILE_TYPE_DIR',['../group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a5418798fc4bf9634429c6af167a0e7c3',1,'iterators.h']]],
- ['cgroup_5ffile_5ftype_5ffile_281',['CGROUP_FILE_TYPE_FILE',['../group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444ad925cc45f1b34fe80e14fc6b05269740',1,'iterators.h']]],
- ['cgroup_5ffile_5ftype_5fother_282',['CGROUP_FILE_TYPE_OTHER',['../group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a24e202c59f318e63ad8cafcc1b4b102b',1,'iterators.h']]],
- ['cgroup_5flog_5fdebug_283',['CGROUP_LOG_DEBUG',['../group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa86b4157fb38d9f8053c6b7429bd26c72',1,'log.h']]],
- ['cgroup_5flog_5ferror_284',['CGROUP_LOG_ERROR',['../group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa4dd44215cd3553e79dbf91eb9ca418a2',1,'log.h']]],
- ['cgroup_5flog_5finfo_285',['CGROUP_LOG_INFO',['../group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aad66ab51dba078ffc3b1c6d397053f9e2',1,'log.h']]],
- ['cgroup_5flog_5fwarning_286',['CGROUP_LOG_WARNING',['../group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aaa99ec9e854a543901bddf854d1960057',1,'log.h']]],
- ['cgroup_5fwalk_5ftype_5fpost_5fdir_287',['CGROUP_WALK_TYPE_POST_DIR',['../group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3abf3c31227768960bd6622d2562aae3e1',1,'iterators.h']]],
- ['cgroup_5fwalk_5ftype_5fpre_5fdir_288',['CGROUP_WALK_TYPE_PRE_DIR',['../group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3af865296e6a0e55cff574fbb132b9f913',1,'iterators.h']]]
+ ['cgroup_5ffile_5ftype_5fdir_0',['CGROUP_FILE_TYPE_DIR',['../group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a5418798fc4bf9634429c6af167a0e7c3',1,'iterators.h']]],
+ ['cgroup_5ffile_5ftype_5ffile_1',['CGROUP_FILE_TYPE_FILE',['../group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444ad925cc45f1b34fe80e14fc6b05269740',1,'iterators.h']]],
+ ['cgroup_5ffile_5ftype_5fother_2',['CGROUP_FILE_TYPE_OTHER',['../group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a24e202c59f318e63ad8cafcc1b4b102b',1,'iterators.h']]],
+ ['cgroup_5flog_5fdebug_3',['CGROUP_LOG_DEBUG',['../group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa86b4157fb38d9f8053c6b7429bd26c72',1,'log.h']]],
+ ['cgroup_5flog_5ferror_4',['CGROUP_LOG_ERROR',['../group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aa4dd44215cd3553e79dbf91eb9ca418a2',1,'log.h']]],
+ ['cgroup_5flog_5finfo_5',['CGROUP_LOG_INFO',['../group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aad66ab51dba078ffc3b1c6d397053f9e2',1,'log.h']]],
+ ['cgroup_5flog_5fwarning_6',['CGROUP_LOG_WARNING',['../group__group__log.html#gga98b7aea5d23411e70c7e3da54d90233aaa99ec9e854a543901bddf854d1960057',1,'log.h']]],
+ ['cgroup_5fwalk_5ftype_5fpost_5fdir_7',['CGROUP_WALK_TYPE_POST_DIR',['../group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3abf3c31227768960bd6622d2562aae3e1',1,'iterators.h']]],
+ ['cgroup_5fwalk_5ftype_5fpre_5fdir_8',['CGROUP_WALK_TYPE_PRE_DIR',['../group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3af865296e6a0e55cff574fbb132b9f913',1,'iterators.h']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="enumvalues_1.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['ecgconfigparsefail_289',['ECGCONFIGPARSEFAIL',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55baf808b0e31be4bfbe8a21f800f913f9c0',1,'error.h']]],
- ['ecgeof_290',['ECGEOF',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba2724c2f0af0d3e3cea66027f6bf2e436',1,'error.h']]],
- ['ecgnonempty_291',['ECGNONEMPTY',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba94dbe90328ef8a212633ec464b9b9b11',1,'error.h']]],
- ['ecgnoversionconvert_292',['ECGNOVERSIONCONVERT',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba33cc635e4cc4055b2c487f027fbdd960',1,'error.h']]],
- ['ecgother_293',['ECGOTHER',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba88111f9ca2e967cbf7565724444c0193',1,'error.h']]],
- ['ecgroupmultimounted_294',['ECGROUPMULTIMOUNTED',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba24a6584dd4238475a4e247bdf6956def',1,'error.h']]],
- ['ecgroupnorules_295',['ECGROUPNORULES',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba7c23c1a7cbfb7e8e9c66dd96b5c66d21',1,'error.h']]],
- ['ecgroupparsefail_296',['ECGROUPPARSEFAIL',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55bac62bda67f3029c39ef456100008b1f39',1,'error.h']]]
+ ['ecgconfigparsefail_0',['ECGCONFIGPARSEFAIL',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55baf808b0e31be4bfbe8a21f800f913f9c0',1,'error.h']]],
+ ['ecgeof_1',['ECGEOF',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba2724c2f0af0d3e3cea66027f6bf2e436',1,'error.h']]],
+ ['ecgnonempty_2',['ECGNONEMPTY',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba94dbe90328ef8a212633ec464b9b9b11',1,'error.h']]],
+ ['ecgnoversionconvert_3',['ECGNOVERSIONCONVERT',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba33cc635e4cc4055b2c487f027fbdd960',1,'error.h']]],
+ ['ecgother_4',['ECGOTHER',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba88111f9ca2e967cbf7565724444c0193',1,'error.h']]],
+ ['ecgroupmultimounted_5',['ECGROUPMULTIMOUNTED',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba24a6584dd4238475a4e247bdf6956def',1,'error.h']]],
+ ['ecgroupnorules_6',['ECGROUPNORULES',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55ba7c23c1a7cbfb7e8e9c66dd96b5c66d21',1,'error.h']]],
+ ['ecgroupparsefail_7',['ECGROUPPARSEFAIL',['../group__group__errors.html#gga06fc87d81c62e9abb8790b6e5713c55bac62bda67f3029c39ef456100008b1f39',1,'error.h']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="functions_0.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['cg_5fchmod_5frecursive_181',['cg_chmod_recursive',['../group__group__groups.html#gaef0bf6cd480f2dcb5e964de151a27dd1',1,'cg_chmod_recursive(struct cgroup *cgroup, mode_t dir_mode, int dirm_change, mode_t file_mode, int filem_change): api.c'],['../group__group__groups.html#gaef0bf6cd480f2dcb5e964de151a27dd1',1,'cg_chmod_recursive(struct cgroup *cgroup, mode_t dir_mode, int dirm_change, mode_t file_mode, int filem_change): api.c']]],
- ['cgroup_5fadd_5fall_5fcontrollers_182',['cgroup_add_all_controllers',['../group__group__groups.html#gae870d271b789b5c54c2e3d35de3cd6f9',1,'cgroup_add_all_controllers(struct cgroup *cgroup): wrapper.c'],['../group__group__groups.html#gae870d271b789b5c54c2e3d35de3cd6f9',1,'cgroup_add_all_controllers(struct cgroup *cgroup): wrapper.c']]],
- ['cgroup_5fadd_5fcontroller_183',['cgroup_add_controller',['../group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130',1,'cgroup_add_controller(struct cgroup *cgroup, const char *name): wrapper.c'],['../group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130',1,'cgroup_add_controller(struct cgroup *cgroup, const char *name): wrapper.c']]],
- ['cgroup_5fadd_5fvalue_5fbool_184',['cgroup_add_value_bool',['../group__group__groups.html#ga4b191a600f84b00ea7afd12c01d918f3',1,'cgroup_add_value_bool(struct cgroup_controller *controller, const char *name, bool value): wrapper.c'],['../group__group__groups.html#ga4b191a600f84b00ea7afd12c01d918f3',1,'cgroup_add_value_bool(struct cgroup_controller *controller, const char *name, bool value): wrapper.c']]],
- ['cgroup_5fadd_5fvalue_5fint64_185',['cgroup_add_value_int64',['../group__group__groups.html#ga6c973bb5ce99e7a91def2032f23d7087',1,'cgroup_add_value_int64(struct cgroup_controller *controller, const char *name, int64_t value): wrapper.c'],['../group__group__groups.html#ga6c973bb5ce99e7a91def2032f23d7087',1,'cgroup_add_value_int64(struct cgroup_controller *controller, const char *name, int64_t value): wrapper.c']]],
- ['cgroup_5fadd_5fvalue_5fstring_186',['cgroup_add_value_string',['../group__group__groups.html#ga4817c68ab791c09c07b663c29b3fb029',1,'cgroup_add_value_string(struct cgroup_controller *controller, const char *name, const char *value): wrapper.c'],['../group__group__groups.html#ga4817c68ab791c09c07b663c29b3fb029',1,'cgroup_add_value_string(struct cgroup_controller *controller, const char *name, const char *value): wrapper.c']]],
- ['cgroup_5fadd_5fvalue_5fuint64_187',['cgroup_add_value_uint64',['../group__group__groups.html#gad9d2216205b96278c626122f8d5e63bb',1,'cgroup_add_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value): wrapper.c'],['../group__group__groups.html#gad9d2216205b96278c626122f8d5e63bb',1,'cgroup_add_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value): wrapper.c']]],
- ['cgroup_5fattach_5ftask_188',['cgroup_attach_task',['../group__group__tasks.html#ga43414ac2b1fc73bbb46b6278c7500188',1,'cgroup_attach_task(struct cgroup *cgroup): api.c'],['../group__group__tasks.html#ga43414ac2b1fc73bbb46b6278c7500188',1,'cgroup_attach_task(struct cgroup *cgroup): api.c']]],
- ['cgroup_5fattach_5ftask_5fpid_189',['cgroup_attach_task_pid',['../group__group__tasks.html#ga9c7532681986d156ac3f6bac1fcf6aab',1,'cgroup_attach_task_pid(struct cgroup *cgroup, pid_t tid): api.c'],['../group__group__tasks.html#ga9c7532681986d156ac3f6bac1fcf6aab',1,'cgroup_attach_task_pid(struct cgroup *cgroup, pid_t tid): api.c']]],
- ['cgroup_5fchange_5fall_5fcgroups_190',['cgroup_change_all_cgroups',['../group__group__tasks.html#gafc69658b012b6f1c11ba078ffccd70a2',1,'cgroup_change_all_cgroups(void): api.c'],['../group__group__tasks.html#gafc69658b012b6f1c11ba078ffccd70a2',1,'cgroup_change_all_cgroups(void): api.c']]],
- ['cgroup_5fchange_5fcgroup_5fflags_191',['cgroup_change_cgroup_flags',['../group__group__tasks.html#ga368e7b8e19b3943ab6fb50e76a09e6ea',1,'cgroup_change_cgroup_flags(uid_t uid, gid_t gid, const char *procname, pid_t pid, int flags): api.c'],['../group__group__tasks.html#ga368e7b8e19b3943ab6fb50e76a09e6ea',1,'cgroup_change_cgroup_flags(uid_t uid, gid_t gid, const char *procname, pid_t pid, int flags): api.c']]],
- ['cgroup_5fchange_5fcgroup_5fpath_192',['cgroup_change_cgroup_path',['../group__group__tasks.html#ga2d4677baef780c003fc6fba6b5dc78f2',1,'cgroup_change_cgroup_path(const char *path, pid_t pid, const char *const controllers[]): api.c'],['../group__group__tasks.html#ga2d4677baef780c003fc6fba6b5dc78f2',1,'cgroup_change_cgroup_path(const char *dest, pid_t pid, const char *const controllers[]): api.c']]],
- ['cgroup_5fchange_5fcgroup_5fuid_5fgid_193',['cgroup_change_cgroup_uid_gid',['../group__group__tasks.html#ga5eab78a922dbacd368360f03c70146be',1,'cgroup_change_cgroup_uid_gid(uid_t uid, gid_t gid, pid_t pid): api.c'],['../group__group__tasks.html#ga5eab78a922dbacd368360f03c70146be',1,'cgroup_change_cgroup_uid_gid(uid_t uid, gid_t gid, pid_t pid): api.c']]],
- ['cgroup_5fchange_5fcgroup_5fuid_5fgid_5fflags_194',['cgroup_change_cgroup_uid_gid_flags',['../group__group__tasks.html#gae472183a7c9a37826ef15c77014c47fb',1,'cgroup_change_cgroup_uid_gid_flags(uid_t uid, gid_t gid, pid_t pid, int flags): api.c'],['../group__group__tasks.html#gae472183a7c9a37826ef15c77014c47fb',1,'cgroup_change_cgroup_uid_gid_flags(uid_t uid, gid_t gid, pid_t pid, int flags): api.c']]],
- ['cgroup_5fcompare_5fcgroup_195',['cgroup_compare_cgroup',['../group__group__groups.html#ga86898b59e50335f99fe84a11fa38d3fc',1,'cgroup_compare_cgroup(struct cgroup *cgroup_a, struct cgroup *cgroup_b): wrapper.c'],['../group__group__groups.html#ga86898b59e50335f99fe84a11fa38d3fc',1,'cgroup_compare_cgroup(struct cgroup *cgroup_a, struct cgroup *cgroup_b): wrapper.c']]],
- ['cgroup_5fcompare_5fcontrollers_196',['cgroup_compare_controllers',['../group__group__groups.html#gab1725c50c49cec4b0bdad1f26b150ca7',1,'cgroup_compare_controllers(struct cgroup_controller *cgca, struct cgroup_controller *cgcb): wrapper.c'],['../group__group__groups.html#gab1725c50c49cec4b0bdad1f26b150ca7',1,'cgroup_compare_controllers(struct cgroup_controller *cgca, struct cgroup_controller *cgcb): wrapper.c']]],
- ['cgroup_5fconfig_5fcreate_5ftemplate_5fgroup_197',['cgroup_config_create_template_group',['../group__group__config.html#ga72066260cd31ceed7ecc1a648eba37f2',1,'cgroup_config_create_template_group(struct cgroup *cgroup, char *template_name, int flags): config.c'],['../group__group__config.html#ga72066260cd31ceed7ecc1a648eba37f2',1,'cgroup_config_create_template_group(struct cgroup *cgroup, char *template_name, int flags): config.c']]],
- ['cgroup_5fconfig_5fload_5fconfig_198',['cgroup_config_load_config',['../group__group__config.html#ga8adfaca013333acf922a167f55b84140',1,'cgroup_config_load_config(const char *pathname): config.c'],['../group__group__config.html#ga8adfaca013333acf922a167f55b84140',1,'cgroup_config_load_config(const char *pathname): config.c']]],
- ['cgroup_5fconfig_5fset_5fdefault_199',['cgroup_config_set_default',['../group__group__config.html#ga2d3a252b2c0c61c8f64cb1fc41e370ea',1,'cgroup_config_set_default(struct cgroup *new_default): config.c'],['../group__group__config.html#ga2d3a252b2c0c61c8f64cb1fc41e370ea',1,'cgroup_config_set_default(struct cgroup *new_default): config.c']]],
- ['cgroup_5fconfig_5funload_5fconfig_200',['cgroup_config_unload_config',['../group__group__config.html#gaff77affa0b80ccf507b4b46cc0a8c085',1,'cgroup_config_unload_config(const char *pathname, int flags): config.c'],['../group__group__config.html#gaff77affa0b80ccf507b4b46cc0a8c085',1,'cgroup_config_unload_config(const char *pathname, int flags): config.c']]],
- ['cgroup_5fcopy_5fcgroup_201',['cgroup_copy_cgroup',['../group__group__groups.html#gaa981a95e0917d3167601a4c1b392336a',1,'cgroup_copy_cgroup(struct cgroup *dst, struct cgroup *src): api.c'],['../group__group__groups.html#gaa981a95e0917d3167601a4c1b392336a',1,'cgroup_copy_cgroup(struct cgroup *dst, struct cgroup *src): api.c']]],
- ['cgroup_5fcreate_5fcgroup_202',['cgroup_create_cgroup',['../group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7',1,'cgroup_create_cgroup(struct cgroup *cgroup, int ignore_ownership): api.c'],['../group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7',1,'cgroup_create_cgroup(struct cgroup *cgroup, int ignore_ownership): api.c']]],
- ['cgroup_5fcreate_5fcgroup_5ffrom_5fparent_203',['cgroup_create_cgroup_from_parent',['../group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62',1,'cgroup_create_cgroup_from_parent(struct cgroup *cgroup, int ignore_ownership): api.c'],['../group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62',1,'cgroup_create_cgroup_from_parent(struct cgroup *cgroup, int ignore_ownership): api.c']]],
- ['cgroup_5fdelete_5fcgroup_204',['cgroup_delete_cgroup',['../group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565',1,'cgroup_delete_cgroup(struct cgroup *cgroup, int ignore_migration): api.c'],['../group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565',1,'cgroup_delete_cgroup(struct cgroup *cgroup, int ignore_migration): api.c']]],
- ['cgroup_5fdelete_5fcgroup_5fext_205',['cgroup_delete_cgroup_ext',['../group__group__groups.html#ga860c1ec70189c969b2c8373fc1e96d36',1,'cgroup_delete_cgroup_ext(struct cgroup *cgroup, int flags): api.c'],['../group__group__groups.html#ga860c1ec70189c969b2c8373fc1e96d36',1,'cgroup_delete_cgroup_ext(struct cgroup *cgroup, int flags): api.c']]],
- ['cgroup_5ffree_206',['cgroup_free',['../group__group__groups.html#gab20fdb1ae479f8baac482336abf73900',1,'cgroup_free(struct cgroup **cgroup): wrapper.c'],['../group__group__groups.html#gab20fdb1ae479f8baac482336abf73900',1,'cgroup_free(struct cgroup **cgroup): wrapper.c']]],
- ['cgroup_5ffree_5fcontrollers_207',['cgroup_free_controllers',['../group__group__groups.html#ga92d27c9ff0d655838642a7aa68497596',1,'cgroup_free_controllers(struct cgroup *cgroup): wrapper.c'],['../group__group__groups.html#ga92d27c9ff0d655838642a7aa68497596',1,'cgroup_free_controllers(struct cgroup *cgroup): wrapper.c']]],
- ['cgroup_5fget_5fall_5fcontroller_5fbegin_208',['cgroup_get_all_controller_begin',['../group__group__iterators.html#gad48ef653388ca6739a9b6bbb9d7da82e',1,'cgroup_get_all_controller_begin(void **handle, struct controller_data *info): api.c'],['../group__group__iterators.html#gad48ef653388ca6739a9b6bbb9d7da82e',1,'cgroup_get_all_controller_begin(void **handle, struct controller_data *info): api.c']]],
- ['cgroup_5fget_5fall_5fcontroller_5fend_209',['cgroup_get_all_controller_end',['../group__group__iterators.html#ga0c467d42a2c9a916a0edd339a6d7afc8',1,'cgroup_get_all_controller_end(void **handle): api.c'],['../group__group__iterators.html#ga0c467d42a2c9a916a0edd339a6d7afc8',1,'cgroup_get_all_controller_end(void **handle): api.c']]],
- ['cgroup_5fget_5fall_5fcontroller_5fnext_210',['cgroup_get_all_controller_next',['../group__group__iterators.html#ga3d98a04b29b1fe409db1114b7aa76809',1,'cgroup_get_all_controller_next(void **handle, struct controller_data *info): api.c'],['../group__group__iterators.html#ga3d98a04b29b1fe409db1114b7aa76809',1,'cgroup_get_all_controller_next(void **handle, struct controller_data *info): api.c']]],
- ['cgroup_5fget_5fcgroup_211',['cgroup_get_cgroup',['../group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6',1,'cgroup_get_cgroup(struct cgroup *cgroup): api.c'],['../group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6',1,'cgroup_get_cgroup(struct cgroup *cgroup): api.c']]],
- ['cgroup_5fget_5fcgroup_5fname_212',['cgroup_get_cgroup_name',['../group__group__groups.html#gac9b5ff481de08ba8fdfcbd42940d2cbf',1,'cgroup_get_cgroup_name(struct cgroup *cgroup): wrapper.c'],['../group__group__groups.html#gac9b5ff481de08ba8fdfcbd42940d2cbf',1,'cgroup_get_cgroup_name(struct cgroup *cgroup): wrapper.c']]],
- ['cgroup_5fget_5fcontroller_213',['cgroup_get_controller',['../group__group__groups.html#ga8335b0aec59c8f845639a7404affce05',1,'cgroup_get_controller(struct cgroup *cgroup, const char *name): wrapper.c'],['../group__group__groups.html#ga8335b0aec59c8f845639a7404affce05',1,'cgroup_get_controller(struct cgroup *cgroup, const char *name): wrapper.c']]],
- ['cgroup_5fget_5fcontroller_5fbegin_214',['cgroup_get_controller_begin',['../group__group__iterators.html#ga5f9f21138f9b18912a16b21a45b53c44',1,'cgroup_get_controller_begin(void **handle, struct cgroup_mount_point *info): api.c'],['../group__group__iterators.html#ga5f9f21138f9b18912a16b21a45b53c44',1,'cgroup_get_controller_begin(void **handle, struct cgroup_mount_point *info): api.c']]],
- ['cgroup_5fget_5fcontroller_5fend_215',['cgroup_get_controller_end',['../group__group__iterators.html#gab485cda2bc9640bacbf61f1953ae750c',1,'cgroup_get_controller_end(void **handle): api.c'],['../group__group__iterators.html#gab485cda2bc9640bacbf61f1953ae750c',1,'cgroup_get_controller_end(void **handle): api.c']]],
- ['cgroup_5fget_5fcontroller_5fnext_216',['cgroup_get_controller_next',['../group__group__iterators.html#ga926b70423b6c087c21a14670cd23cd7d',1,'cgroup_get_controller_next(void **handle, struct cgroup_mount_point *info): api.c'],['../group__group__iterators.html#ga926b70423b6c087c21a14670cd23cd7d',1,'cgroup_get_controller_next(void **handle, struct cgroup_mount_point *info): api.c']]],
- ['cgroup_5fget_5fcontroller_5fversion_217',['cgroup_get_controller_version',['../group__group__groups.html#ga452d8c5e95c8d694e26e7efda045360f',1,'cgroup_get_controller_version(const char *const controller, enum cg_version_t *const version): api.c'],['../group__group__groups.html#ga452d8c5e95c8d694e26e7efda045360f',1,'cgroup_get_controller_version(const char *const controller, enum cg_version_t *const version): api.c']]],
- ['cgroup_5fget_5fcurrent_5fcontroller_5fpath_218',['cgroup_get_current_controller_path',['../group__group__tasks.html#ga6f2c17b99cf2526cb46df4769eb3f46e',1,'cgroup_get_current_controller_path(pid_t pid, const char *controller, char **current_path): api.c'],['../group__group__tasks.html#ga6f2c17b99cf2526cb46df4769eb3f46e',1,'cgroup_get_current_controller_path(pid_t pid, const char *controller, char **current_path): api.c']]],
- ['cgroup_5fget_5flast_5ferrno_219',['cgroup_get_last_errno',['../group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46',1,'cgroup_get_last_errno(void): api.c'],['../group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46',1,'cgroup_get_last_errno(void): api.c']]],
- ['cgroup_5fget_5fprocs_220',['cgroup_get_procs',['../group__group__groups.html#ga08a4fe913d59f61a39e61b8b02537dc2',1,'cgroup_get_procs(char *name, char *controller, pid_t **pids, int *size): api.c'],['../group__group__groups.html#ga08a4fe913d59f61a39e61b8b02537dc2',1,'cgroup_get_procs(char *name, char *controller, pid_t **pids, int *size): api.c']]],
- ['cgroup_5fget_5fsubsys_5fmount_5fpoint_5fbegin_221',['cgroup_get_subsys_mount_point_begin',['../group__group__iterators.html#ga18a3c6fe7da42b9da96ce34dce1e31b8',1,'cgroup_get_subsys_mount_point_begin(const char *controller, void **handle, char *path): api.c'],['../group__group__iterators.html#ga18a3c6fe7da42b9da96ce34dce1e31b8',1,'cgroup_get_subsys_mount_point_begin(const char *controller, void **handle, char *path): api.c']]],
- ['cgroup_5fget_5fsubsys_5fmount_5fpoint_5fend_222',['cgroup_get_subsys_mount_point_end',['../group__group__iterators.html#ga9c9b0f1921c205bd25bfc6c1d20486eb',1,'cgroup_get_subsys_mount_point_end(void **handle): api.c'],['../group__group__iterators.html#ga9c9b0f1921c205bd25bfc6c1d20486eb',1,'cgroup_get_subsys_mount_point_end(void **handle): api.c']]],
- ['cgroup_5fget_5fsubsys_5fmount_5fpoint_5fnext_223',['cgroup_get_subsys_mount_point_next',['../group__group__iterators.html#ga3d66997158cb8a334317923ad94cc789',1,'cgroup_get_subsys_mount_point_next(void **handle, char *path): api.c'],['../group__group__iterators.html#ga3d66997158cb8a334317923ad94cc789',1,'cgroup_get_subsys_mount_point_next(void **handle, char *path): api.c']]],
- ['cgroup_5fget_5ftask_5fbegin_224',['cgroup_get_task_begin',['../group__group__iterators.html#gad7218154192f733120e1025cc19d0a36',1,'cgroup_get_task_begin(const char *cgroup, const char *controller, void **handle, pid_t *pid): api.c'],['../group__group__iterators.html#gad7218154192f733120e1025cc19d0a36',1,'cgroup_get_task_begin(const char *cgroup, const char *controller, void **handle, pid_t *pid): api.c']]],
- ['cgroup_5fget_5ftask_5fend_225',['cgroup_get_task_end',['../group__group__iterators.html#gaeb955e5f4da551268380b1271d478816',1,'cgroup_get_task_end(void **handle): api.c'],['../group__group__iterators.html#gaeb955e5f4da551268380b1271d478816',1,'cgroup_get_task_end(void **handle): api.c']]],
- ['cgroup_5fget_5ftask_5fnext_226',['cgroup_get_task_next',['../group__group__iterators.html#gaf3a0364682b7449ddccfb0862bbb565e',1,'cgroup_get_task_next(void **handle, pid_t *pid): api.c'],['../group__group__iterators.html#gaf3a0364682b7449ddccfb0862bbb565e',1,'cgroup_get_task_next(void **handle, pid_t *pid): api.c']]],
- ['cgroup_5fget_5fuid_5fgid_227',['cgroup_get_uid_gid',['../group__group__groups.html#ga007d21c304d9cc6e948dc0ae51ecfa86',1,'cgroup_get_uid_gid(struct cgroup *cgroup, uid_t *tasks_uid, gid_t *tasks_gid, uid_t *control_uid, gid_t *control_gid): wrapper.c'],['../group__group__groups.html#ga007d21c304d9cc6e948dc0ae51ecfa86',1,'cgroup_get_uid_gid(struct cgroup *cgroup, uid_t *tasks_uid, gid_t *tasks_gid, uid_t *control_uid, gid_t *control_gid): wrapper.c']]],
- ['cgroup_5fget_5fvalue_5fbool_228',['cgroup_get_value_bool',['../group__group__groups.html#gab95007148eac89b7e935d93a4524787b',1,'cgroup_get_value_bool(struct cgroup_controller *controller, const char *name, bool *value): wrapper.c'],['../group__group__groups.html#gab95007148eac89b7e935d93a4524787b',1,'cgroup_get_value_bool(struct cgroup_controller *controller, const char *name, bool *value): wrapper.c']]],
- ['cgroup_5fget_5fvalue_5fint64_229',['cgroup_get_value_int64',['../group__group__groups.html#ga0fe9b05f26b3cab21fc446c9a2700526',1,'cgroup_get_value_int64(struct cgroup_controller *controller, const char *name, int64_t *value): wrapper.c'],['../group__group__groups.html#ga0fe9b05f26b3cab21fc446c9a2700526',1,'cgroup_get_value_int64(struct cgroup_controller *controller, const char *name, int64_t *value): wrapper.c']]],
- ['cgroup_5fget_5fvalue_5fname_230',['cgroup_get_value_name',['../group__group__groups.html#ga16ca75fd16eda7cfc642421111e9a331',1,'cgroup_get_value_name(struct cgroup_controller *controller, int index): wrapper.c'],['../group__group__groups.html#ga16ca75fd16eda7cfc642421111e9a331',1,'cgroup_get_value_name(struct cgroup_controller *controller, int index): wrapper.c']]],
- ['cgroup_5fget_5fvalue_5fname_5fcount_231',['cgroup_get_value_name_count',['../group__group__groups.html#ga25115085978ce2a8d671e7876cc49c1d',1,'cgroup_get_value_name_count(struct cgroup_controller *controller): wrapper.c'],['../group__group__groups.html#ga25115085978ce2a8d671e7876cc49c1d',1,'cgroup_get_value_name_count(struct cgroup_controller *controller): wrapper.c']]],
- ['cgroup_5fget_5fvalue_5fstring_232',['cgroup_get_value_string',['../group__group__groups.html#gafaa51e5ffe09f8ad05585a1d3b6f7fa9',1,'cgroup_get_value_string(struct cgroup_controller *controller, const char *name, char **value): wrapper.c'],['../group__group__groups.html#gafaa51e5ffe09f8ad05585a1d3b6f7fa9',1,'cgroup_get_value_string(struct cgroup_controller *controller, const char *name, char **value): wrapper.c']]],
- ['cgroup_5fget_5fvalue_5fuint64_233',['cgroup_get_value_uint64',['../group__group__groups.html#ga951861259c0373895bfb637fce337312',1,'cgroup_get_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t *value): wrapper.c'],['../group__group__groups.html#ga951861259c0373895bfb637fce337312',1,'cgroup_get_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t *value): wrapper.c']]],
- ['cgroup_5finit_5frules_5fcache_234',['cgroup_init_rules_cache',['../group__group__tasks.html#gad7fa5a2c4db08d31da5bfbecaf482d3d',1,'cgroup_init_rules_cache(void): api.c'],['../group__group__tasks.html#gad7fa5a2c4db08d31da5bfbecaf482d3d',1,'cgroup_init_rules_cache(void): api.c']]],
- ['cgroup_5finit_5ftemplates_5fcache_235',['cgroup_init_templates_cache',['../group__group__config.html#ga6f8c41bb920565e674787fe6dabaef00',1,'cgroup_init_templates_cache(char *pathname): config.c'],['../group__group__config.html#ga6f8c41bb920565e674787fe6dabaef00',1,'cgroup_init_templates_cache(char *pathname): config.c']]],
- ['cgroup_5fload_5ftemplates_5fcache_5ffrom_5ffiles_236',['cgroup_load_templates_cache_from_files',['../group__group__config.html#ga924860998c37da53cababe24163fc89b',1,'cgroup_load_templates_cache_from_files(int *file_index): config.c'],['../group__group__config.html#ga924860998c37da53cababe24163fc89b',1,'cgroup_load_templates_cache_from_files(int *file_index): config.c']]],
- ['cgroup_5flog_237',['cgroup_log',['../group__group__log.html#gab514ad5d83422ddfe479bdf651e80958',1,'cgroup_log(int loglevel, const char *fmt,...): log.c'],['../group__group__log.html#gab514ad5d83422ddfe479bdf651e80958',1,'cgroup_log(int level, const char *fmt,...): log.c']]],
- ['cgroup_5fmodify_5fcgroup_238',['cgroup_modify_cgroup',['../group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071',1,'cgroup_modify_cgroup(struct cgroup *cgroup): api.c'],['../group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071',1,'cgroup_modify_cgroup(struct cgroup *cgroup): api.c']]],
- ['cgroup_5fnew_5fcgroup_239',['cgroup_new_cgroup',['../group__group__groups.html#ga6cd4733e5982ac2c92ee3cb3dbd10a31',1,'cgroup_new_cgroup(const char *name): wrapper.c'],['../group__group__groups.html#ga6cd4733e5982ac2c92ee3cb3dbd10a31',1,'cgroup_new_cgroup(const char *name): wrapper.c']]],
- ['cgroup_5fparse_5flog_5flevel_5fstr_240',['cgroup_parse_log_level_str',['../group__group__log.html#gaa364a06aee0e99228a1e6a26b25a9794',1,'cgroup_parse_log_level_str(const char *levelstr): log.c'],['../group__group__log.html#gaa364a06aee0e99228a1e6a26b25a9794',1,'cgroup_parse_log_level_str(const char *levelstr): log.c']]],
- ['cgroup_5fprint_5frules_5fconfig_241',['cgroup_print_rules_config',['../group__group__tasks.html#gac4e3f29cfbdc3d77f08c9fe60857274a',1,'cgroup_print_rules_config(FILE *fp): api.c'],['../group__group__tasks.html#gac4e3f29cfbdc3d77f08c9fe60857274a',1,'cgroup_print_rules_config(FILE *fp): api.c']]],
- ['cgroup_5fread_5fstats_5fbegin_242',['cgroup_read_stats_begin',['../group__group__iterators.html#ga1138e47f124f0f634586db5e0c4ae5de',1,'cgroup_read_stats_begin(const char *controller, const char *path, void **handle, struct cgroup_stat *stat): api.c'],['../group__group__iterators.html#ga1138e47f124f0f634586db5e0c4ae5de',1,'cgroup_read_stats_begin(const char *controller, const char *path, void **handle, struct cgroup_stat *cgroup_stat): api.c']]],
- ['cgroup_5fread_5fstats_5fend_243',['cgroup_read_stats_end',['../group__group__iterators.html#gaba386d9db6cadc6ad85c2552f63447bb',1,'cgroup_read_stats_end(void **handle): api.c'],['../group__group__iterators.html#gaba386d9db6cadc6ad85c2552f63447bb',1,'cgroup_read_stats_end(void **handle): api.c']]],
- ['cgroup_5fread_5fstats_5fnext_244',['cgroup_read_stats_next',['../group__group__iterators.html#gaf95587508fc15d74fd5ed0df58024be7',1,'cgroup_read_stats_next(void **handle, struct cgroup_stat *stat): api.c'],['../group__group__iterators.html#gaf95587508fc15d74fd5ed0df58024be7',1,'cgroup_read_stats_next(void **handle, struct cgroup_stat *cgroup_stat): api.c']]],
- ['cgroup_5fread_5fvalue_5fbegin_245',['cgroup_read_value_begin',['../group__group__iterators.html#ga9378ee0f1f6e65900df8e25b3d7ce236',1,'cgroup_read_value_begin(const char *const controller, const char *path, const char *const name, void **handle, char *buffer, int max): api.c'],['../group__group__iterators.html#ga9378ee0f1f6e65900df8e25b3d7ce236',1,'cgroup_read_value_begin(const char *const controller, const char *path, const char *const name, void **handle, char *buffer, int max): api.c']]],
- ['cgroup_5fread_5fvalue_5fend_246',['cgroup_read_value_end',['../group__group__iterators.html#gad348f041e283860cbf6bcea567e23a21',1,'cgroup_read_value_end(void **handle): api.c'],['../group__group__iterators.html#gad348f041e283860cbf6bcea567e23a21',1,'cgroup_read_value_end(void **handle): api.c']]],
- ['cgroup_5fread_5fvalue_5fnext_247',['cgroup_read_value_next',['../group__group__iterators.html#gaced2fe331f19d599a3270db2440847cc',1,'cgroup_read_value_next(void **handle, char *buffer, int max): api.c'],['../group__group__iterators.html#gaced2fe331f19d599a3270db2440847cc',1,'cgroup_read_value_next(void **handle, char *buffer, int max): api.c']]],
- ['cgroup_5fregister_5funchanged_5fprocess_248',['cgroup_register_unchanged_process',['../group__group__tasks.html#ga64f7967d6d5edfff9afddaa6a6974b1c',1,'cgroup_register_unchanged_process(pid_t pid, int flags): api.c'],['../group__group__tasks.html#ga64f7967d6d5edfff9afddaa6a6974b1c',1,'cgroup_register_unchanged_process(pid_t pid, int flags): api.c']]],
- ['cgroup_5freload_5fcached_5frules_249',['cgroup_reload_cached_rules',['../group__group__tasks.html#gaf81ebd9cb5575c75b4c85f385ebda1ce',1,'cgroup_reload_cached_rules(void): api.c'],['../group__group__tasks.html#gaf81ebd9cb5575c75b4c85f385ebda1ce',1,'cgroup_reload_cached_rules(void): api.c']]],
- ['cgroup_5freload_5fcached_5ftemplates_250',['cgroup_reload_cached_templates',['../group__group__config.html#ga89fe0d7943b29cc10d57b07abcdfa7b5',1,'cgroup_reload_cached_templates(char *pathname): config.c'],['../group__group__config.html#ga89fe0d7943b29cc10d57b07abcdfa7b5',1,'cgroup_reload_cached_templates(char *pathname): config.c']]],
- ['cgroup_5fset_5fdefault_5flogger_251',['cgroup_set_default_logger',['../group__group__log.html#gab1457ce518dcde0b9f3c14ec9efa2de7',1,'cgroup_set_default_logger(int level): log.c'],['../group__group__log.html#gab1457ce518dcde0b9f3c14ec9efa2de7',1,'cgroup_set_default_logger(int loglevel): log.c']]],
- ['cgroup_5fset_5flogger_252',['cgroup_set_logger',['../group__group__log.html#ga76d7032206f9b9d1c0be1a71a68c43d0',1,'cgroup_set_logger(cgroup_logger_callback logger, int loglevel, void *userdata): log.c'],['../group__group__log.html#ga76d7032206f9b9d1c0be1a71a68c43d0',1,'cgroup_set_logger(cgroup_logger_callback logger, int loglevel, void *userdata): log.c']]],
- ['cgroup_5fset_5floglevel_253',['cgroup_set_loglevel',['../group__group__log.html#gaac5fe2352800ff62465a5abe649d5b8c',1,'cgroup_set_loglevel(int loglevel): log.c'],['../group__group__log.html#gaac5fe2352800ff62465a5abe649d5b8c',1,'cgroup_set_loglevel(int loglevel): log.c']]],
- ['cgroup_5fset_5fpermissions_254',['cgroup_set_permissions',['../group__group__groups.html#gaa0400f1ff2fba7fbb6db82d97039d92b',1,'cgroup_set_permissions(struct cgroup *cgroup, mode_t control_dperm, mode_t control_fperm, mode_t task_fperm): api.c'],['../group__group__groups.html#gaa0400f1ff2fba7fbb6db82d97039d92b',1,'cgroup_set_permissions(struct cgroup *cgroup, mode_t control_dperm, mode_t control_fperm, mode_t task_fperm): api.c']]],
- ['cgroup_5fset_5fuid_5fgid_255',['cgroup_set_uid_gid',['../group__group__groups.html#ga53b9e13e30660c805ab5773d69397a43',1,'cgroup_set_uid_gid(struct cgroup *cgroup, uid_t tasks_uid, gid_t tasks_gid, uid_t control_uid, gid_t control_gid): wrapper.c'],['../group__group__groups.html#ga53b9e13e30660c805ab5773d69397a43',1,'cgroup_set_uid_gid(struct cgroup *cgroup, uid_t tasks_uid, gid_t tasks_gid, uid_t control_uid, gid_t control_gid): wrapper.c']]],
- ['cgroup_5fset_5fvalue_5fbool_256',['cgroup_set_value_bool',['../group__group__groups.html#gafb24892bc221cffee0f5fe07f64d54d7',1,'cgroup_set_value_bool(struct cgroup_controller *controller, const char *name, bool value): wrapper.c'],['../group__group__groups.html#gafb24892bc221cffee0f5fe07f64d54d7',1,'cgroup_set_value_bool(struct cgroup_controller *controller, const char *name, bool value): wrapper.c']]],
- ['cgroup_5fset_5fvalue_5fint64_257',['cgroup_set_value_int64',['../group__group__groups.html#gaa5c39e51035cc43dd26a3c620441a956',1,'cgroup_set_value_int64(struct cgroup_controller *controller, const char *name, int64_t value): wrapper.c'],['../group__group__groups.html#gaa5c39e51035cc43dd26a3c620441a956',1,'cgroup_set_value_int64(struct cgroup_controller *controller, const char *name, int64_t value): wrapper.c']]],
- ['cgroup_5fset_5fvalue_5fstring_258',['cgroup_set_value_string',['../group__group__groups.html#ga938febc02b59cbeb8e4ceb2dc7fdac82',1,'cgroup_set_value_string(struct cgroup_controller *controller, const char *name, const char *value): wrapper.c'],['../group__group__groups.html#ga938febc02b59cbeb8e4ceb2dc7fdac82',1,'cgroup_set_value_string(struct cgroup_controller *controller, const char *name, const char *value): wrapper.c']]],
- ['cgroup_5fset_5fvalue_5fuint64_259',['cgroup_set_value_uint64',['../group__group__groups.html#gade01aa1fe30ccc968af9fe8a3bc821e5',1,'cgroup_set_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value): wrapper.c'],['../group__group__groups.html#gade01aa1fe30ccc968af9fe8a3bc821e5',1,'cgroup_set_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value): wrapper.c']]],
- ['cgroup_5fstrerror_260',['cgroup_strerror',['../group__group__errors.html#gaeae1d51db8528c89d84501c745020e6b',1,'cgroup_strerror(int code): api.c'],['../group__group__errors.html#gaeae1d51db8528c89d84501c745020e6b',1,'cgroup_strerror(int code): api.c']]],
- ['cgroup_5ftemplates_5fcache_5fset_5fsource_5ffiles_261',['cgroup_templates_cache_set_source_files',['../group__group__config.html#gacb09024dc469a1a1ff8cdebd8d0ab422',1,'cgroup_templates_cache_set_source_files(struct cgroup_string_list *tmpl_files): config.c'],['../group__group__config.html#gacb09024dc469a1a1ff8cdebd8d0ab422',1,'cgroup_templates_cache_set_source_files(struct cgroup_string_list *tmpl_files): config.c']]],
- ['cgroup_5funload_5fcgroups_262',['cgroup_unload_cgroups',['../group__group__config.html#ga85b285712354faca495193075035938d',1,'cgroup_unload_cgroups(void): config.c'],['../group__group__config.html#ga85b285712354faca495193075035938d',1,'cgroup_unload_cgroups(void): config.c']]],
- ['cgroup_5fwalk_5ftree_5fbegin_263',['cgroup_walk_tree_begin',['../group__group__iterators.html#ga7b19f10c06abb96d8c8ae88a04888a68',1,'cgroup_walk_tree_begin(const char *controller, const char *base_path, int depth, void **handle, struct cgroup_file_info *info, int *base_level): api.c'],['../group__group__iterators.html#ga7b19f10c06abb96d8c8ae88a04888a68',1,'cgroup_walk_tree_begin(const char *controller, const char *base_path, int depth, void **handle, struct cgroup_file_info *info, int *base_level): api.c']]],
- ['cgroup_5fwalk_5ftree_5fend_264',['cgroup_walk_tree_end',['../group__group__iterators.html#ga09a70990837a58e506a264f8c50d4cde',1,'cgroup_walk_tree_end(void **handle): api.c'],['../group__group__iterators.html#ga09a70990837a58e506a264f8c50d4cde',1,'cgroup_walk_tree_end(void **handle): api.c']]],
- ['cgroup_5fwalk_5ftree_5fnext_265',['cgroup_walk_tree_next',['../group__group__iterators.html#ga527f5499b0aa04d325074435baebdff1',1,'cgroup_walk_tree_next(int depth, void **handle, struct cgroup_file_info *info, int base_level): api.c'],['../group__group__iterators.html#ga527f5499b0aa04d325074435baebdff1',1,'cgroup_walk_tree_next(int depth, void **handle, struct cgroup_file_info *info, int base_level): api.c']]],
- ['cgroup_5fwalk_5ftree_5fset_5fflags_266',['cgroup_walk_tree_set_flags',['../group__group__iterators.html#ga645ec7a6206dffb32667e7a0e148edc8',1,'cgroup_walk_tree_set_flags(void **handle, int flags): api.c'],['../group__group__iterators.html#ga645ec7a6206dffb32667e7a0e148edc8',1,'cgroup_walk_tree_set_flags(void **handle, int flags): api.c']]]
+ ['cg_5fchmod_5frecursive_0',['cg_chmod_recursive',['../group__group__groups.html#gaef0bf6cd480f2dcb5e964de151a27dd1',1,'cg_chmod_recursive(struct cgroup *cgroup, mode_t dir_mode, int dirm_change, mode_t file_mode, int filem_change): api.c'],['../group__group__groups.html#gaef0bf6cd480f2dcb5e964de151a27dd1',1,'cg_chmod_recursive(struct cgroup *cgroup, mode_t dir_mode, int dirm_change, mode_t file_mode, int filem_change): api.c']]],
+ ['cgroup_5fadd_5fall_5fcontrollers_1',['cgroup_add_all_controllers',['../group__group__groups.html#gae870d271b789b5c54c2e3d35de3cd6f9',1,'cgroup_add_all_controllers(struct cgroup *cgroup): wrapper.c'],['../group__group__groups.html#gae870d271b789b5c54c2e3d35de3cd6f9',1,'cgroup_add_all_controllers(struct cgroup *cgroup): wrapper.c']]],
+ ['cgroup_5fadd_5fcontroller_2',['cgroup_add_controller',['../group__group__groups.html#ga3929afd6ced9fe877613286b5f06cf8d',1,'cgroup_add_controller(struct cgroup *cgroup, const char *name): wrapper.c'],['../group__group__groups.html#ga3929afd6ced9fe877613286b5f06cf8d',1,'cgroup_add_controller(struct cgroup *cgroup, const char *name): wrapper.c']]],
+ ['cgroup_5fadd_5fvalue_5fbool_3',['cgroup_add_value_bool',['../group__group__groups.html#ga4b191a600f84b00ea7afd12c01d918f3',1,'cgroup_add_value_bool(struct cgroup_controller *controller, const char *name, bool value): wrapper.c'],['../group__group__groups.html#ga4b191a600f84b00ea7afd12c01d918f3',1,'cgroup_add_value_bool(struct cgroup_controller *controller, const char *name, bool value): wrapper.c']]],
+ ['cgroup_5fadd_5fvalue_5fint64_4',['cgroup_add_value_int64',['../group__group__groups.html#ga6c973bb5ce99e7a91def2032f23d7087',1,'cgroup_add_value_int64(struct cgroup_controller *controller, const char *name, int64_t value): wrapper.c'],['../group__group__groups.html#ga6c973bb5ce99e7a91def2032f23d7087',1,'cgroup_add_value_int64(struct cgroup_controller *controller, const char *name, int64_t value): wrapper.c']]],
+ ['cgroup_5fadd_5fvalue_5fstring_5',['cgroup_add_value_string',['../group__group__groups.html#ga4817c68ab791c09c07b663c29b3fb029',1,'cgroup_add_value_string(struct cgroup_controller *controller, const char *name, const char *value): wrapper.c'],['../group__group__groups.html#ga4817c68ab791c09c07b663c29b3fb029',1,'cgroup_add_value_string(struct cgroup_controller *controller, const char *name, const char *value): wrapper.c']]],
+ ['cgroup_5fadd_5fvalue_5fuint64_6',['cgroup_add_value_uint64',['../group__group__groups.html#gad9d2216205b96278c626122f8d5e63bb',1,'cgroup_add_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value): wrapper.c'],['../group__group__groups.html#gad9d2216205b96278c626122f8d5e63bb',1,'cgroup_add_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value): wrapper.c']]],
+ ['cgroup_5fattach_5ftask_7',['cgroup_attach_task',['../group__group__tasks.html#ga43414ac2b1fc73bbb46b6278c7500188',1,'cgroup_attach_task(struct cgroup *cgroup): api.c'],['../group__group__tasks.html#ga43414ac2b1fc73bbb46b6278c7500188',1,'cgroup_attach_task(struct cgroup *cgroup): api.c']]],
+ ['cgroup_5fattach_5ftask_5fpid_8',['cgroup_attach_task_pid',['../group__group__tasks.html#ga9c7532681986d156ac3f6bac1fcf6aab',1,'cgroup_attach_task_pid(struct cgroup *cgroup, pid_t tid): api.c'],['../group__group__tasks.html#ga9c7532681986d156ac3f6bac1fcf6aab',1,'cgroup_attach_task_pid(struct cgroup *cgroup, pid_t tid): api.c']]],
+ ['cgroup_5fchange_5fall_5fcgroups_9',['cgroup_change_all_cgroups',['../group__group__tasks.html#gafc69658b012b6f1c11ba078ffccd70a2',1,'cgroup_change_all_cgroups(void): api.c'],['../group__group__tasks.html#gafc69658b012b6f1c11ba078ffccd70a2',1,'cgroup_change_all_cgroups(void): api.c']]],
+ ['cgroup_5fchange_5fcgroup_5fflags_10',['cgroup_change_cgroup_flags',['../group__group__tasks.html#ga368e7b8e19b3943ab6fb50e76a09e6ea',1,'cgroup_change_cgroup_flags(uid_t uid, gid_t gid, const char *procname, pid_t pid, int flags): api.c'],['../group__group__tasks.html#ga368e7b8e19b3943ab6fb50e76a09e6ea',1,'cgroup_change_cgroup_flags(uid_t uid, gid_t gid, const char *procname, pid_t pid, int flags): api.c']]],
+ ['cgroup_5fchange_5fcgroup_5fpath_11',['cgroup_change_cgroup_path',['../group__group__tasks.html#ga2d4677baef780c003fc6fba6b5dc78f2',1,'cgroup_change_cgroup_path(const char *path, pid_t pid, const char *const controllers[]): api.c'],['../group__group__tasks.html#ga2d4677baef780c003fc6fba6b5dc78f2',1,'cgroup_change_cgroup_path(const char *dest, pid_t pid, const char *const controllers[]): api.c']]],
+ ['cgroup_5fchange_5fcgroup_5fuid_5fgid_12',['cgroup_change_cgroup_uid_gid',['../group__group__tasks.html#ga5eab78a922dbacd368360f03c70146be',1,'cgroup_change_cgroup_uid_gid(uid_t uid, gid_t gid, pid_t pid): api.c'],['../group__group__tasks.html#ga5eab78a922dbacd368360f03c70146be',1,'cgroup_change_cgroup_uid_gid(uid_t uid, gid_t gid, pid_t pid): api.c']]],
+ ['cgroup_5fchange_5fcgroup_5fuid_5fgid_5fflags_13',['cgroup_change_cgroup_uid_gid_flags',['../group__group__tasks.html#gae472183a7c9a37826ef15c77014c47fb',1,'cgroup_change_cgroup_uid_gid_flags(uid_t uid, gid_t gid, pid_t pid, int flags): api.c'],['../group__group__tasks.html#gae472183a7c9a37826ef15c77014c47fb',1,'cgroup_change_cgroup_uid_gid_flags(uid_t uid, gid_t gid, pid_t pid, int flags): api.c']]],
+ ['cgroup_5fcompare_5fcgroup_14',['cgroup_compare_cgroup',['../group__group__groups.html#ga86898b59e50335f99fe84a11fa38d3fc',1,'cgroup_compare_cgroup(struct cgroup *cgroup_a, struct cgroup *cgroup_b): wrapper.c'],['../group__group__groups.html#ga86898b59e50335f99fe84a11fa38d3fc',1,'cgroup_compare_cgroup(struct cgroup *cgroup_a, struct cgroup *cgroup_b): wrapper.c']]],
+ ['cgroup_5fcompare_5fcontrollers_15',['cgroup_compare_controllers',['../group__group__groups.html#gab1725c50c49cec4b0bdad1f26b150ca7',1,'cgroup_compare_controllers(struct cgroup_controller *cgca, struct cgroup_controller *cgcb): wrapper.c'],['../group__group__groups.html#gab1725c50c49cec4b0bdad1f26b150ca7',1,'cgroup_compare_controllers(struct cgroup_controller *cgca, struct cgroup_controller *cgcb): wrapper.c']]],
+ ['cgroup_5fconfig_5fcreate_5ftemplate_5fgroup_16',['cgroup_config_create_template_group',['../group__group__config.html#ga72066260cd31ceed7ecc1a648eba37f2',1,'cgroup_config_create_template_group(struct cgroup *cgroup, char *template_name, int flags): config.c'],['../group__group__config.html#ga72066260cd31ceed7ecc1a648eba37f2',1,'cgroup_config_create_template_group(struct cgroup *cgroup, char *template_name, int flags): config.c']]],
+ ['cgroup_5fconfig_5fload_5fconfig_17',['cgroup_config_load_config',['../group__group__config.html#ga8adfaca013333acf922a167f55b84140',1,'cgroup_config_load_config(const char *pathname): config.c'],['../group__group__config.html#ga8adfaca013333acf922a167f55b84140',1,'cgroup_config_load_config(const char *pathname): config.c']]],
+ ['cgroup_5fconfig_5fset_5fdefault_18',['cgroup_config_set_default',['../group__group__config.html#ga2d3a252b2c0c61c8f64cb1fc41e370ea',1,'cgroup_config_set_default(struct cgroup *new_default): config.c'],['../group__group__config.html#ga2d3a252b2c0c61c8f64cb1fc41e370ea',1,'cgroup_config_set_default(struct cgroup *new_default): config.c']]],
+ ['cgroup_5fconfig_5funload_5fconfig_19',['cgroup_config_unload_config',['../group__group__config.html#gaff77affa0b80ccf507b4b46cc0a8c085',1,'cgroup_config_unload_config(const char *pathname, int flags): config.c'],['../group__group__config.html#gaff77affa0b80ccf507b4b46cc0a8c085',1,'cgroup_config_unload_config(const char *pathname, int flags): config.c']]],
+ ['cgroup_5fcopy_5fcgroup_20',['cgroup_copy_cgroup',['../group__group__groups.html#gaa981a95e0917d3167601a4c1b392336a',1,'cgroup_copy_cgroup(struct cgroup *dst, struct cgroup *src): api.c'],['../group__group__groups.html#gaa981a95e0917d3167601a4c1b392336a',1,'cgroup_copy_cgroup(struct cgroup *dst, struct cgroup *src): api.c']]],
+ ['cgroup_5fcreate_5fcgroup_21',['cgroup_create_cgroup',['../group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7',1,'cgroup_create_cgroup(struct cgroup *cgroup, int ignore_ownership): api.c'],['../group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7',1,'cgroup_create_cgroup(struct cgroup *cgroup, int ignore_ownership): api.c']]],
+ ['cgroup_5fcreate_5fcgroup_5ffrom_5fparent_22',['cgroup_create_cgroup_from_parent',['../group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62',1,'cgroup_create_cgroup_from_parent(struct cgroup *cgroup, int ignore_ownership): api.c'],['../group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62',1,'cgroup_create_cgroup_from_parent(struct cgroup *cgroup, int ignore_ownership): api.c']]],
+ ['cgroup_5fdelete_5fcgroup_23',['cgroup_delete_cgroup',['../group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565',1,'cgroup_delete_cgroup(struct cgroup *cgroup, int ignore_migration): api.c'],['../group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565',1,'cgroup_delete_cgroup(struct cgroup *cgroup, int ignore_migration): api.c']]],
+ ['cgroup_5fdelete_5fcgroup_5fext_24',['cgroup_delete_cgroup_ext',['../group__group__groups.html#ga860c1ec70189c969b2c8373fc1e96d36',1,'cgroup_delete_cgroup_ext(struct cgroup *cgroup, int flags): api.c'],['../group__group__groups.html#ga860c1ec70189c969b2c8373fc1e96d36',1,'cgroup_delete_cgroup_ext(struct cgroup *cgroup, int flags): api.c']]],
+ ['cgroup_5ffree_25',['cgroup_free',['../group__group__groups.html#gab20fdb1ae479f8baac482336abf73900',1,'cgroup_free(struct cgroup **cgroup): wrapper.c'],['../group__group__groups.html#gab20fdb1ae479f8baac482336abf73900',1,'cgroup_free(struct cgroup **cgroup): wrapper.c']]],
+ ['cgroup_5ffree_5fcontrollers_26',['cgroup_free_controllers',['../group__group__groups.html#ga92d27c9ff0d655838642a7aa68497596',1,'cgroup_free_controllers(struct cgroup *cgroup): wrapper.c'],['../group__group__groups.html#ga92d27c9ff0d655838642a7aa68497596',1,'cgroup_free_controllers(struct cgroup *cgroup): wrapper.c']]],
+ ['cgroup_5fget_5fall_5fcontroller_5fbegin_27',['cgroup_get_all_controller_begin',['../group__group__iterators.html#gad48ef653388ca6739a9b6bbb9d7da82e',1,'cgroup_get_all_controller_begin(void **handle, struct controller_data *info): api.c'],['../group__group__iterators.html#gad48ef653388ca6739a9b6bbb9d7da82e',1,'cgroup_get_all_controller_begin(void **handle, struct controller_data *info): api.c']]],
+ ['cgroup_5fget_5fall_5fcontroller_5fend_28',['cgroup_get_all_controller_end',['../group__group__iterators.html#ga0c467d42a2c9a916a0edd339a6d7afc8',1,'cgroup_get_all_controller_end(void **handle): api.c'],['../group__group__iterators.html#ga0c467d42a2c9a916a0edd339a6d7afc8',1,'cgroup_get_all_controller_end(void **handle): api.c']]],
+ ['cgroup_5fget_5fall_5fcontroller_5fnext_29',['cgroup_get_all_controller_next',['../group__group__iterators.html#ga3d98a04b29b1fe409db1114b7aa76809',1,'cgroup_get_all_controller_next(void **handle, struct controller_data *info): api.c'],['../group__group__iterators.html#ga3d98a04b29b1fe409db1114b7aa76809',1,'cgroup_get_all_controller_next(void **handle, struct controller_data *info): api.c']]],
+ ['cgroup_5fget_5fcgroup_30',['cgroup_get_cgroup',['../group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6',1,'cgroup_get_cgroup(struct cgroup *cgroup): api.c'],['../group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6',1,'cgroup_get_cgroup(struct cgroup *cgroup): api.c']]],
+ ['cgroup_5fget_5fcgroup_5fname_31',['cgroup_get_cgroup_name',['../group__group__groups.html#gab60b1f528fbfb17d69a88f499c7071aa',1,'cgroup_get_cgroup_name(struct cgroup *cgroup): wrapper.c'],['../group__group__groups.html#gab60b1f528fbfb17d69a88f499c7071aa',1,'cgroup_get_cgroup_name(struct cgroup *cgroup): wrapper.c']]],
+ ['cgroup_5fget_5fcontroller_32',['cgroup_get_controller',['../group__group__groups.html#ga6b60ab9187a883a2ae114f8d87191e27',1,'cgroup_get_controller(struct cgroup *cgroup, const char *name): wrapper.c'],['../group__group__groups.html#ga6b60ab9187a883a2ae114f8d87191e27',1,'cgroup_get_controller(struct cgroup *cgroup, const char *name): wrapper.c']]],
+ ['cgroup_5fget_5fcontroller_5fbegin_33',['cgroup_get_controller_begin',['../group__group__iterators.html#ga5f9f21138f9b18912a16b21a45b53c44',1,'cgroup_get_controller_begin(void **handle, struct cgroup_mount_point *info): api.c'],['../group__group__iterators.html#ga5f9f21138f9b18912a16b21a45b53c44',1,'cgroup_get_controller_begin(void **handle, struct cgroup_mount_point *info): api.c']]],
+ ['cgroup_5fget_5fcontroller_5fend_34',['cgroup_get_controller_end',['../group__group__iterators.html#gab485cda2bc9640bacbf61f1953ae750c',1,'cgroup_get_controller_end(void **handle): api.c'],['../group__group__iterators.html#gab485cda2bc9640bacbf61f1953ae750c',1,'cgroup_get_controller_end(void **handle): api.c']]],
+ ['cgroup_5fget_5fcontroller_5fnext_35',['cgroup_get_controller_next',['../group__group__iterators.html#ga926b70423b6c087c21a14670cd23cd7d',1,'cgroup_get_controller_next(void **handle, struct cgroup_mount_point *info): api.c'],['../group__group__iterators.html#ga926b70423b6c087c21a14670cd23cd7d',1,'cgroup_get_controller_next(void **handle, struct cgroup_mount_point *info): api.c']]],
+ ['cgroup_5fget_5fcontroller_5fversion_36',['cgroup_get_controller_version',['../group__group__groups.html#ga452d8c5e95c8d694e26e7efda045360f',1,'cgroup_get_controller_version(const char *const controller, enum cg_version_t *const version): api.c'],['../group__group__groups.html#ga452d8c5e95c8d694e26e7efda045360f',1,'cgroup_get_controller_version(const char *const controller, enum cg_version_t *const version): api.c']]],
+ ['cgroup_5fget_5fcurrent_5fcontroller_5fpath_37',['cgroup_get_current_controller_path',['../group__group__tasks.html#ga6f2c17b99cf2526cb46df4769eb3f46e',1,'cgroup_get_current_controller_path(pid_t pid, const char *controller, char **current_path): api.c'],['../group__group__tasks.html#ga6f2c17b99cf2526cb46df4769eb3f46e',1,'cgroup_get_current_controller_path(pid_t pid, const char *controller, char **current_path): api.c']]],
+ ['cgroup_5fget_5flast_5ferrno_38',['cgroup_get_last_errno',['../group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46',1,'cgroup_get_last_errno(void): api.c'],['../group__group__errors.html#ga29057c4aec05bef2b6bf2855ae5d5d46',1,'cgroup_get_last_errno(void): api.c']]],
+ ['cgroup_5fget_5fprocs_39',['cgroup_get_procs',['../group__group__groups.html#ga08a4fe913d59f61a39e61b8b02537dc2',1,'cgroup_get_procs(char *name, char *controller, pid_t **pids, int *size): api.c'],['../group__group__groups.html#ga08a4fe913d59f61a39e61b8b02537dc2',1,'cgroup_get_procs(char *name, char *controller, pid_t **pids, int *size): api.c']]],
+ ['cgroup_5fget_5fsubsys_5fmount_5fpoint_5fbegin_40',['cgroup_get_subsys_mount_point_begin',['../group__group__iterators.html#ga18a3c6fe7da42b9da96ce34dce1e31b8',1,'cgroup_get_subsys_mount_point_begin(const char *controller, void **handle, char *path): api.c'],['../group__group__iterators.html#ga18a3c6fe7da42b9da96ce34dce1e31b8',1,'cgroup_get_subsys_mount_point_begin(const char *controller, void **handle, char *path): api.c']]],
+ ['cgroup_5fget_5fsubsys_5fmount_5fpoint_5fend_41',['cgroup_get_subsys_mount_point_end',['../group__group__iterators.html#ga9c9b0f1921c205bd25bfc6c1d20486eb',1,'cgroup_get_subsys_mount_point_end(void **handle): api.c'],['../group__group__iterators.html#ga9c9b0f1921c205bd25bfc6c1d20486eb',1,'cgroup_get_subsys_mount_point_end(void **handle): api.c']]],
+ ['cgroup_5fget_5fsubsys_5fmount_5fpoint_5fnext_42',['cgroup_get_subsys_mount_point_next',['../group__group__iterators.html#ga3d66997158cb8a334317923ad94cc789',1,'cgroup_get_subsys_mount_point_next(void **handle, char *path): api.c'],['../group__group__iterators.html#ga3d66997158cb8a334317923ad94cc789',1,'cgroup_get_subsys_mount_point_next(void **handle, char *path): api.c']]],
+ ['cgroup_5fget_5ftask_5fbegin_43',['cgroup_get_task_begin',['../group__group__iterators.html#gad7218154192f733120e1025cc19d0a36',1,'cgroup_get_task_begin(const char *cgroup, const char *controller, void **handle, pid_t *pid): api.c'],['../group__group__iterators.html#gad7218154192f733120e1025cc19d0a36',1,'cgroup_get_task_begin(const char *cgroup, const char *controller, void **handle, pid_t *pid): api.c']]],
+ ['cgroup_5fget_5ftask_5fend_44',['cgroup_get_task_end',['../group__group__iterators.html#gaeb955e5f4da551268380b1271d478816',1,'cgroup_get_task_end(void **handle): api.c'],['../group__group__iterators.html#gaeb955e5f4da551268380b1271d478816',1,'cgroup_get_task_end(void **handle): api.c']]],
+ ['cgroup_5fget_5ftask_5fnext_45',['cgroup_get_task_next',['../group__group__iterators.html#gaf3a0364682b7449ddccfb0862bbb565e',1,'cgroup_get_task_next(void **handle, pid_t *pid): api.c'],['../group__group__iterators.html#gaf3a0364682b7449ddccfb0862bbb565e',1,'cgroup_get_task_next(void **handle, pid_t *pid): api.c']]],
+ ['cgroup_5fget_5fuid_5fgid_46',['cgroup_get_uid_gid',['../group__group__groups.html#ga007d21c304d9cc6e948dc0ae51ecfa86',1,'cgroup_get_uid_gid(struct cgroup *cgroup, uid_t *tasks_uid, gid_t *tasks_gid, uid_t *control_uid, gid_t *control_gid): wrapper.c'],['../group__group__groups.html#ga007d21c304d9cc6e948dc0ae51ecfa86',1,'cgroup_get_uid_gid(struct cgroup *cgroup, uid_t *tasks_uid, gid_t *tasks_gid, uid_t *control_uid, gid_t *control_gid): wrapper.c']]],
+ ['cgroup_5fget_5fvalue_5fbool_47',['cgroup_get_value_bool',['../group__group__groups.html#gab95007148eac89b7e935d93a4524787b',1,'cgroup_get_value_bool(struct cgroup_controller *controller, const char *name, bool *value): wrapper.c'],['../group__group__groups.html#gab95007148eac89b7e935d93a4524787b',1,'cgroup_get_value_bool(struct cgroup_controller *controller, const char *name, bool *value): wrapper.c']]],
+ ['cgroup_5fget_5fvalue_5fint64_48',['cgroup_get_value_int64',['../group__group__groups.html#ga0fe9b05f26b3cab21fc446c9a2700526',1,'cgroup_get_value_int64(struct cgroup_controller *controller, const char *name, int64_t *value): wrapper.c'],['../group__group__groups.html#ga0fe9b05f26b3cab21fc446c9a2700526',1,'cgroup_get_value_int64(struct cgroup_controller *controller, const char *name, int64_t *value): wrapper.c']]],
+ ['cgroup_5fget_5fvalue_5fname_49',['cgroup_get_value_name',['../group__group__groups.html#ga9d01743fd3f97014e08fc67149ec5f0b',1,'cgroup_get_value_name(struct cgroup_controller *controller, int index): wrapper.c'],['../group__group__groups.html#ga9d01743fd3f97014e08fc67149ec5f0b',1,'cgroup_get_value_name(struct cgroup_controller *controller, int index): wrapper.c']]],
+ ['cgroup_5fget_5fvalue_5fname_5fcount_50',['cgroup_get_value_name_count',['../group__group__groups.html#ga25115085978ce2a8d671e7876cc49c1d',1,'cgroup_get_value_name_count(struct cgroup_controller *controller): wrapper.c'],['../group__group__groups.html#ga25115085978ce2a8d671e7876cc49c1d',1,'cgroup_get_value_name_count(struct cgroup_controller *controller): wrapper.c']]],
+ ['cgroup_5fget_5fvalue_5fstring_51',['cgroup_get_value_string',['../group__group__groups.html#gafaa51e5ffe09f8ad05585a1d3b6f7fa9',1,'cgroup_get_value_string(struct cgroup_controller *controller, const char *name, char **value): wrapper.c'],['../group__group__groups.html#gafaa51e5ffe09f8ad05585a1d3b6f7fa9',1,'cgroup_get_value_string(struct cgroup_controller *controller, const char *name, char **value): wrapper.c']]],
+ ['cgroup_5fget_5fvalue_5fuint64_52',['cgroup_get_value_uint64',['../group__group__groups.html#ga951861259c0373895bfb637fce337312',1,'cgroup_get_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t *value): wrapper.c'],['../group__group__groups.html#ga951861259c0373895bfb637fce337312',1,'cgroup_get_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t *value): wrapper.c']]],
+ ['cgroup_5finit_5frules_5fcache_53',['cgroup_init_rules_cache',['../group__group__tasks.html#gad7fa5a2c4db08d31da5bfbecaf482d3d',1,'cgroup_init_rules_cache(void): api.c'],['../group__group__tasks.html#gad7fa5a2c4db08d31da5bfbecaf482d3d',1,'cgroup_init_rules_cache(void): api.c']]],
+ ['cgroup_5finit_5ftemplates_5fcache_54',['cgroup_init_templates_cache',['../group__group__config.html#ga6f8c41bb920565e674787fe6dabaef00',1,'cgroup_init_templates_cache(char *pathname): config.c'],['../group__group__config.html#ga6f8c41bb920565e674787fe6dabaef00',1,'cgroup_init_templates_cache(char *pathname): config.c']]],
+ ['cgroup_5fload_5ftemplates_5fcache_5ffrom_5ffiles_55',['cgroup_load_templates_cache_from_files',['../group__group__config.html#ga924860998c37da53cababe24163fc89b',1,'cgroup_load_templates_cache_from_files(int *file_index): config.c'],['../group__group__config.html#ga924860998c37da53cababe24163fc89b',1,'cgroup_load_templates_cache_from_files(int *file_index): config.c']]],
+ ['cgroup_5flog_56',['cgroup_log',['../group__group__log.html#gab514ad5d83422ddfe479bdf651e80958',1,'cgroup_log(int loglevel, const char *fmt,...): log.c'],['../group__group__log.html#gab514ad5d83422ddfe479bdf651e80958',1,'cgroup_log(int level, const char *fmt,...): log.c']]],
+ ['cgroup_5fmodify_5fcgroup_57',['cgroup_modify_cgroup',['../group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071',1,'cgroup_modify_cgroup(struct cgroup *cgroup): api.c'],['../group__group__groups.html#ga31ba5e865ae8d58b4453c0ef06d2c071',1,'cgroup_modify_cgroup(struct cgroup *cgroup): api.c']]],
+ ['cgroup_5fnew_5fcgroup_58',['cgroup_new_cgroup',['../group__group__groups.html#gad34c82ead174988d418f3dcb003aaca7',1,'cgroup_new_cgroup(const char *name): wrapper.c'],['../group__group__groups.html#gad34c82ead174988d418f3dcb003aaca7',1,'cgroup_new_cgroup(const char *name): wrapper.c']]],
+ ['cgroup_5fparse_5flog_5flevel_5fstr_59',['cgroup_parse_log_level_str',['../group__group__log.html#gaa364a06aee0e99228a1e6a26b25a9794',1,'cgroup_parse_log_level_str(const char *levelstr): log.c'],['../group__group__log.html#gaa364a06aee0e99228a1e6a26b25a9794',1,'cgroup_parse_log_level_str(const char *levelstr): log.c']]],
+ ['cgroup_5fprint_5frules_5fconfig_60',['cgroup_print_rules_config',['../group__group__tasks.html#gac4e3f29cfbdc3d77f08c9fe60857274a',1,'cgroup_print_rules_config(FILE *fp): api.c'],['../group__group__tasks.html#gac4e3f29cfbdc3d77f08c9fe60857274a',1,'cgroup_print_rules_config(FILE *fp): api.c']]],
+ ['cgroup_5fread_5fstats_5fbegin_61',['cgroup_read_stats_begin',['../group__group__iterators.html#ga1138e47f124f0f634586db5e0c4ae5de',1,'cgroup_read_stats_begin(const char *controller, const char *path, void **handle, struct cgroup_stat *stat): api.c'],['../group__group__iterators.html#ga1138e47f124f0f634586db5e0c4ae5de',1,'cgroup_read_stats_begin(const char *controller, const char *path, void **handle, struct cgroup_stat *cgroup_stat): api.c']]],
+ ['cgroup_5fread_5fstats_5fend_62',['cgroup_read_stats_end',['../group__group__iterators.html#gaba386d9db6cadc6ad85c2552f63447bb',1,'cgroup_read_stats_end(void **handle): api.c'],['../group__group__iterators.html#gaba386d9db6cadc6ad85c2552f63447bb',1,'cgroup_read_stats_end(void **handle): api.c']]],
+ ['cgroup_5fread_5fstats_5fnext_63',['cgroup_read_stats_next',['../group__group__iterators.html#gaf95587508fc15d74fd5ed0df58024be7',1,'cgroup_read_stats_next(void **handle, struct cgroup_stat *stat): api.c'],['../group__group__iterators.html#gaf95587508fc15d74fd5ed0df58024be7',1,'cgroup_read_stats_next(void **handle, struct cgroup_stat *cgroup_stat): api.c']]],
+ ['cgroup_5fread_5fvalue_5fbegin_64',['cgroup_read_value_begin',['../group__group__iterators.html#ga9378ee0f1f6e65900df8e25b3d7ce236',1,'cgroup_read_value_begin(const char *const controller, const char *path, const char *const name, void **handle, char *buffer, int max): api.c'],['../group__group__iterators.html#ga9378ee0f1f6e65900df8e25b3d7ce236',1,'cgroup_read_value_begin(const char *const controller, const char *path, const char *const name, void **handle, char *buffer, int max): api.c']]],
+ ['cgroup_5fread_5fvalue_5fend_65',['cgroup_read_value_end',['../group__group__iterators.html#gad348f041e283860cbf6bcea567e23a21',1,'cgroup_read_value_end(void **handle): api.c'],['../group__group__iterators.html#gad348f041e283860cbf6bcea567e23a21',1,'cgroup_read_value_end(void **handle): api.c']]],
+ ['cgroup_5fread_5fvalue_5fnext_66',['cgroup_read_value_next',['../group__group__iterators.html#gaced2fe331f19d599a3270db2440847cc',1,'cgroup_read_value_next(void **handle, char *buffer, int max): api.c'],['../group__group__iterators.html#gaced2fe331f19d599a3270db2440847cc',1,'cgroup_read_value_next(void **handle, char *buffer, int max): api.c']]],
+ ['cgroup_5fregister_5funchanged_5fprocess_67',['cgroup_register_unchanged_process',['../group__group__tasks.html#ga64f7967d6d5edfff9afddaa6a6974b1c',1,'cgroup_register_unchanged_process(pid_t pid, int flags): api.c'],['../group__group__tasks.html#ga64f7967d6d5edfff9afddaa6a6974b1c',1,'cgroup_register_unchanged_process(pid_t pid, int flags): api.c']]],
+ ['cgroup_5freload_5fcached_5frules_68',['cgroup_reload_cached_rules',['../group__group__tasks.html#gaf81ebd9cb5575c75b4c85f385ebda1ce',1,'cgroup_reload_cached_rules(void): api.c'],['../group__group__tasks.html#gaf81ebd9cb5575c75b4c85f385ebda1ce',1,'cgroup_reload_cached_rules(void): api.c']]],
+ ['cgroup_5freload_5fcached_5ftemplates_69',['cgroup_reload_cached_templates',['../group__group__config.html#ga89fe0d7943b29cc10d57b07abcdfa7b5',1,'cgroup_reload_cached_templates(char *pathname): config.c'],['../group__group__config.html#ga89fe0d7943b29cc10d57b07abcdfa7b5',1,'cgroup_reload_cached_templates(char *pathname): config.c']]],
+ ['cgroup_5fset_5fdefault_5flogger_70',['cgroup_set_default_logger',['../group__group__log.html#gab1457ce518dcde0b9f3c14ec9efa2de7',1,'cgroup_set_default_logger(int level): log.c'],['../group__group__log.html#gab1457ce518dcde0b9f3c14ec9efa2de7',1,'cgroup_set_default_logger(int loglevel): log.c']]],
+ ['cgroup_5fset_5flogger_71',['cgroup_set_logger',['../group__group__log.html#ga76d7032206f9b9d1c0be1a71a68c43d0',1,'cgroup_set_logger(cgroup_logger_callback logger, int loglevel, void *userdata): log.c'],['../group__group__log.html#ga76d7032206f9b9d1c0be1a71a68c43d0',1,'cgroup_set_logger(cgroup_logger_callback logger, int loglevel, void *userdata): log.c']]],
+ ['cgroup_5fset_5floglevel_72',['cgroup_set_loglevel',['../group__group__log.html#gaac5fe2352800ff62465a5abe649d5b8c',1,'cgroup_set_loglevel(int loglevel): log.c'],['../group__group__log.html#gaac5fe2352800ff62465a5abe649d5b8c',1,'cgroup_set_loglevel(int loglevel): log.c']]],
+ ['cgroup_5fset_5fpermissions_73',['cgroup_set_permissions',['../group__group__groups.html#gaa0400f1ff2fba7fbb6db82d97039d92b',1,'cgroup_set_permissions(struct cgroup *cgroup, mode_t control_dperm, mode_t control_fperm, mode_t task_fperm): api.c'],['../group__group__groups.html#gaa0400f1ff2fba7fbb6db82d97039d92b',1,'cgroup_set_permissions(struct cgroup *cgroup, mode_t control_dperm, mode_t control_fperm, mode_t task_fperm): api.c']]],
+ ['cgroup_5fset_5fuid_5fgid_74',['cgroup_set_uid_gid',['../group__group__groups.html#ga53b9e13e30660c805ab5773d69397a43',1,'cgroup_set_uid_gid(struct cgroup *cgroup, uid_t tasks_uid, gid_t tasks_gid, uid_t control_uid, gid_t control_gid): wrapper.c'],['../group__group__groups.html#ga53b9e13e30660c805ab5773d69397a43',1,'cgroup_set_uid_gid(struct cgroup *cgroup, uid_t tasks_uid, gid_t tasks_gid, uid_t control_uid, gid_t control_gid): wrapper.c']]],
+ ['cgroup_5fset_5fvalue_5fbool_75',['cgroup_set_value_bool',['../group__group__groups.html#gafb24892bc221cffee0f5fe07f64d54d7',1,'cgroup_set_value_bool(struct cgroup_controller *controller, const char *name, bool value): wrapper.c'],['../group__group__groups.html#gafb24892bc221cffee0f5fe07f64d54d7',1,'cgroup_set_value_bool(struct cgroup_controller *controller, const char *name, bool value): wrapper.c']]],
+ ['cgroup_5fset_5fvalue_5fint64_76',['cgroup_set_value_int64',['../group__group__groups.html#gaa5c39e51035cc43dd26a3c620441a956',1,'cgroup_set_value_int64(struct cgroup_controller *controller, const char *name, int64_t value): wrapper.c'],['../group__group__groups.html#gaa5c39e51035cc43dd26a3c620441a956',1,'cgroup_set_value_int64(struct cgroup_controller *controller, const char *name, int64_t value): wrapper.c']]],
+ ['cgroup_5fset_5fvalue_5fstring_77',['cgroup_set_value_string',['../group__group__groups.html#ga938febc02b59cbeb8e4ceb2dc7fdac82',1,'cgroup_set_value_string(struct cgroup_controller *controller, const char *name, const char *value): wrapper.c'],['../group__group__groups.html#ga938febc02b59cbeb8e4ceb2dc7fdac82',1,'cgroup_set_value_string(struct cgroup_controller *controller, const char *name, const char *value): wrapper.c']]],
+ ['cgroup_5fset_5fvalue_5fuint64_78',['cgroup_set_value_uint64',['../group__group__groups.html#gade01aa1fe30ccc968af9fe8a3bc821e5',1,'cgroup_set_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value): wrapper.c'],['../group__group__groups.html#gade01aa1fe30ccc968af9fe8a3bc821e5',1,'cgroup_set_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value): wrapper.c']]],
+ ['cgroup_5fstrerror_79',['cgroup_strerror',['../group__group__errors.html#ga7ee3be57533b25d597a2bfd19819307a',1,'cgroup_strerror(int code): api.c'],['../group__group__errors.html#ga7ee3be57533b25d597a2bfd19819307a',1,'cgroup_strerror(int code): api.c']]],
+ ['cgroup_5ftemplates_5fcache_5fset_5fsource_5ffiles_80',['cgroup_templates_cache_set_source_files',['../group__group__config.html#gacb09024dc469a1a1ff8cdebd8d0ab422',1,'cgroup_templates_cache_set_source_files(struct cgroup_string_list *tmpl_files): config.c'],['../group__group__config.html#gacb09024dc469a1a1ff8cdebd8d0ab422',1,'cgroup_templates_cache_set_source_files(struct cgroup_string_list *tmpl_files): config.c']]],
+ ['cgroup_5funload_5fcgroups_81',['cgroup_unload_cgroups',['../group__group__config.html#ga85b285712354faca495193075035938d',1,'cgroup_unload_cgroups(void): config.c'],['../group__group__config.html#ga85b285712354faca495193075035938d',1,'cgroup_unload_cgroups(void): config.c']]],
+ ['cgroup_5fwalk_5ftree_5fbegin_82',['cgroup_walk_tree_begin',['../group__group__iterators.html#ga7b19f10c06abb96d8c8ae88a04888a68',1,'cgroup_walk_tree_begin(const char *controller, const char *base_path, int depth, void **handle, struct cgroup_file_info *info, int *base_level): api.c'],['../group__group__iterators.html#ga7b19f10c06abb96d8c8ae88a04888a68',1,'cgroup_walk_tree_begin(const char *controller, const char *base_path, int depth, void **handle, struct cgroup_file_info *info, int *base_level): api.c']]],
+ ['cgroup_5fwalk_5ftree_5fend_83',['cgroup_walk_tree_end',['../group__group__iterators.html#ga09a70990837a58e506a264f8c50d4cde',1,'cgroup_walk_tree_end(void **handle): api.c'],['../group__group__iterators.html#ga09a70990837a58e506a264f8c50d4cde',1,'cgroup_walk_tree_end(void **handle): api.c']]],
+ ['cgroup_5fwalk_5ftree_5fnext_84',['cgroup_walk_tree_next',['../group__group__iterators.html#ga527f5499b0aa04d325074435baebdff1',1,'cgroup_walk_tree_next(int depth, void **handle, struct cgroup_file_info *info, int base_level): api.c'],['../group__group__iterators.html#ga527f5499b0aa04d325074435baebdff1',1,'cgroup_walk_tree_next(int depth, void **handle, struct cgroup_file_info *info, int base_level): api.c']]],
+ ['cgroup_5fwalk_5ftree_5fset_5fflags_85',['cgroup_walk_tree_set_flags',['../group__group__iterators.html#ga645ec7a6206dffb32667e7a0e148edc8',1,'cgroup_walk_tree_set_flags(void **handle, int flags): api.c'],['../group__group__iterators.html#ga645ec7a6206dffb32667e7a0e148edc8',1,'cgroup_walk_tree_set_flags(void **handle, int flags): api.c']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="groups_0.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['2_2e_20group_20manipulation_20api_297',['2. Group manipulation API',['../group__group__groups.html',1,'']]]
+ ['2_2e_20group_20manipulation_20api_0',['2. Group manipulation API',['../group__group__groups.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="groups_1.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['3_2e_20iterators_298',['3. Iterators',['../group__group__iterators.html',1,'']]]
+ ['3_2e_20iterators_0',['3. Iterators',['../group__group__iterators.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="groups_2.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['4_2e_20manipulation_20with_20tasks_299',['4. Manipulation with tasks',['../group__group__tasks.html',1,'']]]
+ ['4_2e_20manipulation_20with_20tasks_0',['4. Manipulation with tasks',['../group__group__tasks.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="groups_3.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['5_2e_20configuration_300',['5. Configuration',['../group__group__config.html',1,'']]]
+ ['5_2e_20configuration_0',['5. Configuration',['../group__group__config.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="groups_4.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['6_2e_20error_20handling_301',['6. Error handling',['../group__group__errors.html',1,'']]]
+ ['6_2e_20error_20handling_0',['6. Error handling',['../group__group__errors.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="groups_5.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['7_2e_20logging_302',['7. Logging',['../group__group__log.html',1,'']]]
+ ['7_2e_20logging_0',['7. Logging',['../group__group__log.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="pages_0.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['how_20to_20contribute_20to_20the_20libcgroup_20project_303',['How to Contribute to the libcgroup Project',['../md_CONTRIBUTING.html',1,'']]]
+ ['how_20to_20contribute_20to_20the_20libcgroup_20project_0',['How to Contribute to the libcgroup Project',['../md_CONTRIBUTING.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="pages_1.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['libcgroup_304',['libcgroup',['../index.html',1,'']]]
+ ['libcgroup_0',['libcgroup',['../index.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="pages_2.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['readme_305',['README',['../md_README.html',1,'']]]
+ ['readme_0',['README',['../md_README.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="pages_3.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['the_20libcgroup_20security_20vulnerability_20handling_20process_306',['The libcgroup Security Vulnerability Handling Process',['../md_SECURITY.html',1,'']]],
- ['todo_20list_307',['Todo List',['../todo.html',1,'']]]
+ ['the_20libcgroup_20security_20vulnerability_20handling_20process_0',['The libcgroup Security Vulnerability Handling Process',['../md_SECURITY.html',1,'']]],
+ ['todo_20list_1',['Todo List',['../todo.html',1,'']]]
];
#MSearchSelect {
display: inline-block;
vertical-align: middle;
- height: 1.4em;
+ height: 19px;
padding: 0 0 0 0.3em;
margin: 0;
}
display: inline-block;
vertical-align: middle;
width: 7.5em;
- height: 1.1em;
+ height: 19px;
margin: 0 0.15em;
padding: 0;
line-height: 1em;
background: none;
}
+@media(hover: none) {
+ /* to avoid zooming on iOS */
+ #MSearchField {
+ font-size: 16px;
+ }
+}
#MSearchBox .right {
display: inline-block;
/*---------------- Search results window */
iframe#MSearchResults {
- width: 60ex;
+ /*width: 60ex;*/
height: 15em;
}
storing this instance. Is needed to be able to set timeouts.
resultPath - path to use for external files
*/
-function SearchBox(name, resultsPath, inFrame, label, extension)
+function SearchBox(name, resultsPath, label, extension)
{
if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); }
if (!extension || extension == "") { extension = ".html"; }
this.hideTimeout = 0;
this.searchIndex = 0;
this.searchActive = false;
- this.insideFrame = inFrame;
this.searchLabel = label;
this.extension = extension;
var searchSelectWindow = this.DOMSearchSelectWindow();
var searchField = this.DOMSearchSelect();
- if (this.insideFrame)
- {
- var left = getXPos(searchField);
- var top = getYPos(searchField);
- left += searchField.offsetWidth + 6;
- top += searchField.offsetHeight;
-
- // show search selection popup
- searchSelectWindow.style.display='block';
- left -= searchSelectWindow.offsetWidth;
- searchSelectWindow.style.left = left + 'px';
- searchSelectWindow.style.top = top + 'px';
- }
- else
- {
- var left = getXPos(searchField);
- var top = getYPos(searchField);
- top += searchField.offsetHeight;
-
- // show search selection popup
- searchSelectWindow.style.display='block';
- searchSelectWindow.style.left = left + 'px';
- searchSelectWindow.style.top = top + 'px';
- }
+ var left = getXPos(searchField);
+ var top = getYPos(searchField);
+ top += searchField.offsetHeight;
+
+ // show search selection popup
+ searchSelectWindow.style.display='block';
+ searchSelectWindow.style.left = left + 'px';
+ searchSelectWindow.style.top = top + 'px';
// stop selection hide timer
if (this.hideTimeout)
{
var domSearchBox = this.DOMSearchBox();
this.DOMSearchClose().style.display = 'inline-block';
- if (this.insideFrame)
- {
- var domPopupSearchResults = this.DOMPopupSearchResults();
- domPopupSearchResultsWindow.style.position = 'relative';
- domPopupSearchResultsWindow.style.display = 'block';
- var width = document.body.clientWidth - 8; // the -8 is for IE :-(
- domPopupSearchResultsWindow.style.width = width + 'px';
- domPopupSearchResults.style.width = width + 'px';
- }
- else
- {
- var domPopupSearchResults = this.DOMPopupSearchResults();
- var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
- var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1;
- domPopupSearchResultsWindow.style.display = 'block';
- left -= domPopupSearchResults.offsetWidth;
- domPopupSearchResultsWindow.style.top = top + 'px';
- domPopupSearchResultsWindow.style.left = left + 'px';
- }
+ var domPopupSearchResults = this.DOMPopupSearchResults();
+ var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
+ var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1;
+ domPopupSearchResultsWindow.style.display = 'block';
+ left -= domPopupSearchResults.offsetWidth;
+ var maxWidth = document.body.clientWidth;
+ var width = 400;
+ if (left<10) left=10;
+ if (width+left+8>maxWidth) width=maxWidth-left-8;
+ domPopupSearchResultsWindow.style.top = top + 'px';
+ domPopupSearchResultsWindow.style.left = left + 'px';
+ domPopupSearchResultsWindow.style.width = width + 'px';
}
this.lastSearchValue = searchValue;
if (searchData[e][1].length==2) // single result
{
srLink.setAttribute('href',searchData[e][1][1][0]);
+ srLink.setAttribute('onclick','parent.searchBox.CloseResultsWindow()');
if (searchData[e][1][1][1])
{
srLink.setAttribute('target','_parent');
setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
setClassAttr(srChild,'SRScope');
srChild.setAttribute('href',searchData[e][1][c+1][0]);
+ srChild.setAttribute('onclick','parent.searchBox.CloseResultsWindow()');
if (searchData[e][1][c+1][1])
{
srChild.setAttribute('target','_parent');
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="variables_0.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['depth_267',['depth',['../structcgroup__file__info.html#ad56dca35266f0f5f5c2666b946d72709',1,'cgroup_file_info']]]
+ ['depth_0',['depth',['../structcgroup__file__info.html#ad56dca35266f0f5f5c2666b946d72709',1,'cgroup_file_info']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="variables_1.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['enabled_268',['enabled',['../structcontroller__data.html#a24be412cfb6c19f7a13a4bff9e55206e',1,'controller_data']]]
+ ['enabled_0',['enabled',['../structcontroller__data.html#a24be412cfb6c19f7a13a4bff9e55206e',1,'controller_data']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="variables_2.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['full_5fpath_269',['full_path',['../structcgroup__file__info.html#a4c61dc7f726ba0784ff8c71473dbc6e6',1,'cgroup_file_info']]]
+ ['full_5fpath_0',['full_path',['../structcgroup__file__info.html#a4c61dc7f726ba0784ff8c71473dbc6e6',1,'cgroup_file_info']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="variables_3.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['hierarchy_270',['hierarchy',['../structcontroller__data.html#a25e316f55473ca2b333b0d7e0ca644b4',1,'controller_data']]]
+ ['hierarchy_0',['hierarchy',['../structcontroller__data.html#a25e316f55473ca2b333b0d7e0ca644b4',1,'controller_data']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="variables_4.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['mount_271',['mount',['../structcg__mount__table__s.html#a9704fa3ec3674f6d433345ea52b6aeef',1,'cg_mount_table_s']]]
+ ['mount_0',['mount',['../structcg__mount__table__s.html#a9704fa3ec3674f6d433345ea52b6aeef',1,'cg_mount_table_s']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="variables_5.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['name_272',['name',['../structcgroup__mount__point.html#a849ccf1e77fffd5d45304c6adf0d2100',1,'cgroup_mount_point::name()'],['../structcontroller__data.html#a5474be4d8cc4553c94ca81c6a93f5a18',1,'controller_data::name()'],['../structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6',1,'cg_mount_table_s::name()']]],
- ['num_5fcgroups_273',['num_cgroups',['../structcontroller__data.html#acd075c0bb48062bf720b68d0a30116eb',1,'controller_data']]]
+ ['name_0',['name',['../structcgroup__mount__point.html#a849ccf1e77fffd5d45304c6adf0d2100',1,'cgroup_mount_point::name()'],['../structcontroller__data.html#a5474be4d8cc4553c94ca81c6a93f5a18',1,'controller_data::name()'],['../structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6',1,'cg_mount_table_s::name()']]],
+ ['num_5fcgroups_1',['num_cgroups',['../structcontroller__data.html#acd075c0bb48062bf720b68d0a30116eb',1,'controller_data']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="variables_6.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['parent_274',['parent',['../structcgroup__file__info.html#a739c7f87593e36d8589d3ffa80b57059',1,'cgroup_file_info']]],
- ['path_275',['path',['../structcgroup__file__info.html#a801424e68139c930e40ea24be4d96a68',1,'cgroup_file_info::path()'],['../structcgroup__mount__point.html#ad1e89dfc02cfd7341e2296086a4f251e',1,'cgroup_mount_point::path()']]]
+ ['parent_0',['parent',['../structcgroup__file__info.html#a739c7f87593e36d8589d3ffa80b57059',1,'cgroup_file_info']]],
+ ['path_1',['path',['../structcgroup__file__info.html#a801424e68139c930e40ea24be4d96a68',1,'cgroup_file_info::path()'],['../structcgroup__mount__point.html#ad1e89dfc02cfd7341e2296086a4f251e',1,'cgroup_mount_point::path()']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="variables_7.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['type_276',['type',['../structcgroup__file__info.html#a955506601f440d05cb11e4ee6b455c55',1,'cgroup_file_info']]]
+ ['type_0',['type',['../structcgroup__file__info.html#a955506601f440d05cb11e4ee6b455c55',1,'cgroup_file_info']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: array_parent_info Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">array_parent_info Struct Reference</div> </div>
+ <div class="headertitle"><div class="title">array_parent_info Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
-<tr class="memitem:a104a0f305c8af9406d9eb079d2aab75a"><td class="memItemLeft" align="right" valign="top"><a id="a104a0f305c8af9406d9eb079d2aab75a"></a>
+<tr class="memitem:a104a0f305c8af9406d9eb079d2aab75a"><td class="memItemLeft" align="right" valign="top"><a id="a104a0f305c8af9406d9eb079d2aab75a" name="a104a0f305c8af9406d9eb079d2aab75a"></a>
int </td><td class="memItemRight" valign="bottom"><b>index</b></td></tr>
<tr class="separator:a104a0f305c8af9406d9eb079d2aab75a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a214ba75f553bef2e98e86436bc38b16c"><td class="memItemLeft" align="right" valign="top"><a id="a214ba75f553bef2e98e86436bc38b16c"></a>
+<tr class="memitem:a214ba75f553bef2e98e86436bc38b16c"><td class="memItemLeft" align="right" valign="top"><a id="a214ba75f553bef2e98e86436bc38b16c" name="a214ba75f553bef2e98e86436bc38b16c"></a>
int </td><td class="memItemRight" valign="bottom"><b>num_allocation</b></td></tr>
<tr class="separator:a214ba75f553bef2e98e86436bc38b16c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0bdfe6014e023f42a44c27125b221ab1"><td class="memItemLeft" align="right" valign="top"><a id="a0bdfe6014e023f42a44c27125b221ab1"></a>
+<tr class="memitem:a0bdfe6014e023f42a44c27125b221ab1"><td class="memItemLeft" align="right" valign="top"><a id="a0bdfe6014e023f42a44c27125b221ab1" name="a0bdfe6014e023f42a44c27125b221ab1"></a>
struct <a class="el" href="structparent__info.html">parent_info</a> ** </td><td class="memItemRight" valign="bottom"><b>parent_info</b></td></tr>
<tr class="separator:a0bdfe6014e023f42a44c27125b221ab1"><td class="memSeparator" colspan="2"> </td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: array_unchanged Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">array_unchanged Struct Reference</div> </div>
+ <div class="headertitle"><div class="title">array_unchanged Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
-<tr class="memitem:acce116399336fe5074c445f7107320df"><td class="memItemLeft" align="right" valign="top"><a id="acce116399336fe5074c445f7107320df"></a>
+<tr class="memitem:acce116399336fe5074c445f7107320df"><td class="memItemLeft" align="right" valign="top"><a id="acce116399336fe5074c445f7107320df" name="acce116399336fe5074c445f7107320df"></a>
int </td><td class="memItemRight" valign="bottom"><b>index</b></td></tr>
<tr class="separator:acce116399336fe5074c445f7107320df"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a1be755457cbbb2f00291e12ef1eeed45"><td class="memItemLeft" align="right" valign="top"><a id="a1be755457cbbb2f00291e12ef1eeed45"></a>
+<tr class="memitem:a1be755457cbbb2f00291e12ef1eeed45"><td class="memItemLeft" align="right" valign="top"><a id="a1be755457cbbb2f00291e12ef1eeed45" name="a1be755457cbbb2f00291e12ef1eeed45"></a>
int </td><td class="memItemRight" valign="bottom"><b>num_allocation</b></td></tr>
<tr class="separator:a1be755457cbbb2f00291e12ef1eeed45"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a520e1e517d7e4d6bed85a83d3e182490"><td class="memItemLeft" align="right" valign="top"><a id="a520e1e517d7e4d6bed85a83d3e182490"></a>
+<tr class="memitem:a520e1e517d7e4d6bed85a83d3e182490"><td class="memItemLeft" align="right" valign="top"><a id="a520e1e517d7e4d6bed85a83d3e182490" name="a520e1e517d7e4d6bed85a83d3e182490"></a>
struct <a class="el" href="structunchanged__pid.html">unchanged_pid</a> * </td><td class="memItemRight" valign="bottom"><b>proc</b></td></tr>
<tr class="separator:a520e1e517d7e4d6bed85a83d3e182490"><td class="memSeparator" colspan="2"> </td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: black_list_type Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">black_list_type Struct Reference</div> </div>
+ <div class="headertitle"><div class="title">black_list_type Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
-<tr class="memitem:a5d01592707e1cbe301ef9a45be734d34"><td class="memItemLeft" align="right" valign="top"><a id="a5d01592707e1cbe301ef9a45be734d34"></a>
+<tr class="memitem:a5d01592707e1cbe301ef9a45be734d34"><td class="memItemLeft" align="right" valign="top"><a id="a5d01592707e1cbe301ef9a45be734d34" name="a5d01592707e1cbe301ef9a45be734d34"></a>
char * </td><td class="memItemRight" valign="bottom"><b>name</b></td></tr>
<tr class="separator:a5d01592707e1cbe301ef9a45be734d34"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a98ad845f0bc04eb81518cd1eb5995296"><td class="memItemLeft" align="right" valign="top"><a id="a98ad845f0bc04eb81518cd1eb5995296"></a>
+<tr class="memitem:a98ad845f0bc04eb81518cd1eb5995296"><td class="memItemLeft" align="right" valign="top"><a id="a98ad845f0bc04eb81518cd1eb5995296" name="a98ad845f0bc04eb81518cd1eb5995296"></a>
struct <a class="el" href="structblack__list__type.html">black_list_type</a> * </td><td class="memItemRight" valign="bottom"><b>next</b></td></tr>
<tr class="separator:a98ad845f0bc04eb81518cd1eb5995296"><td class="memSeparator" colspan="2"> </td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: cg_mount_point Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">cg_mount_point Struct Reference</div> </div>
+ <div class="headertitle"><div class="title">cg_mount_point Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
-<tr class="memitem:aee8a194a9d3e786d0659f670c7bb73e9"><td class="memItemLeft" align="right" valign="top"><a id="aee8a194a9d3e786d0659f670c7bb73e9"></a>
+<tr class="memitem:aee8a194a9d3e786d0659f670c7bb73e9"><td class="memItemLeft" align="right" valign="top"><a id="aee8a194a9d3e786d0659f670c7bb73e9" name="aee8a194a9d3e786d0659f670c7bb73e9"></a>
char </td><td class="memItemRight" valign="bottom"><b>path</b> [FILENAME_MAX]</td></tr>
<tr class="separator:aee8a194a9d3e786d0659f670c7bb73e9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab02da6ebd43df2768d7c8fd8556ad14c"><td class="memItemLeft" align="right" valign="top"><a id="ab02da6ebd43df2768d7c8fd8556ad14c"></a>
+<tr class="memitem:ab02da6ebd43df2768d7c8fd8556ad14c"><td class="memItemLeft" align="right" valign="top"><a id="ab02da6ebd43df2768d7c8fd8556ad14c" name="ab02da6ebd43df2768d7c8fd8556ad14c"></a>
struct <a class="el" href="structcg__mount__point.html">cg_mount_point</a> * </td><td class="memItemRight" valign="bottom"><b>next</b></td></tr>
<tr class="separator:ab02da6ebd43df2768d7c8fd8556ad14c"><td class="memSeparator" colspan="2"> </td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: cg_mount_table_s Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">cg_mount_table_s Struct Reference</div> </div>
+ <div class="headertitle"><div class="title">cg_mount_table_s Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr class="memitem:aa9b2cc62fb6cb35334f3d85d660c9fa6"><td class="memItemLeft" align="right" valign="top">char </td><td class="memItemRight" valign="bottom"><a class="el" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a> [FILENAME_MAX]</td></tr>
<tr class="separator:aa9b2cc62fb6cb35334f3d85d660c9fa6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a9704fa3ec3674f6d433345ea52b6aeef"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structcg__mount__point.html">cg_mount_point</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structcg__mount__table__s.html#a9704fa3ec3674f6d433345ea52b6aeef">mount</a></td></tr>
<tr class="separator:a9704fa3ec3674f6d433345ea52b6aeef"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a1d69f1d8406fb81cd7978512b3f6d9a2"><td class="memItemLeft" align="right" valign="top"><a id="a1d69f1d8406fb81cd7978512b3f6d9a2"></a>
+<tr class="memitem:a1d69f1d8406fb81cd7978512b3f6d9a2"><td class="memItemLeft" align="right" valign="top"><a id="a1d69f1d8406fb81cd7978512b3f6d9a2" name="a1d69f1d8406fb81cd7978512b3f6d9a2"></a>
int </td><td class="memItemRight" valign="bottom"><b>index</b></td></tr>
<tr class="separator:a1d69f1d8406fb81cd7978512b3f6d9a2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ae55b944bda455b4cd08490fa86003c25"><td class="memItemLeft" align="right" valign="top"><a id="ae55b944bda455b4cd08490fa86003c25"></a>
+<tr class="memitem:ae55b944bda455b4cd08490fa86003c25"><td class="memItemLeft" align="right" valign="top"><a id="ae55b944bda455b4cd08490fa86003c25" name="ae55b944bda455b4cd08490fa86003c25"></a>
enum cg_version_t </td><td class="memItemRight" valign="bottom"><b>version</b></td></tr>
<tr class="separator:ae55b944bda455b4cd08490fa86003c25"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<h2 class="groupheader">Field Documentation</h2>
-<a id="a9704fa3ec3674f6d433345ea52b6aeef"></a>
+<a id="a9704fa3ec3674f6d433345ea52b6aeef" name="a9704fa3ec3674f6d433345ea52b6aeef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9704fa3ec3674f6d433345ea52b6aeef">◆ </a></span>mount</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>List of mount points, at least one mount point is there for sure. </p>
+<p >List of mount points, at least one mount point is there for sure. </p>
</div>
</div>
-<a id="aa9b2cc62fb6cb35334f3d85d660c9fa6"></a>
+<a id="aa9b2cc62fb6cb35334f3d85d660c9fa6" name="aa9b2cc62fb6cb35334f3d85d660c9fa6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa9b2cc62fb6cb35334f3d85d660c9fa6">◆ </a></span>name</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Controller name. </p>
+<p >Controller name. </p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: cgroup Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">cgroup Struct Reference<div class="ingroups"><a class="el" href="group__group__groups.html">2. Group manipulation API</a></div></div> </div>
+ <div class="headertitle"><div class="title">cgroup Struct Reference<div class="ingroups"><a class="el" href="group__group__groups.html">2. Group manipulation API</a></div></div></div>
</div><!--header-->
<div class="contents">
<p><code>#include <<a class="el" href="groups_8h_source.html">groups.h</a>></code></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
-<tr class="memitem:ad030639d02c1df677211455fd276cec8"><td class="memItemLeft" align="right" valign="top"><a id="ad030639d02c1df677211455fd276cec8"></a>
+<tr class="memitem:ad030639d02c1df677211455fd276cec8"><td class="memItemLeft" align="right" valign="top"><a id="ad030639d02c1df677211455fd276cec8" name="ad030639d02c1df677211455fd276cec8"></a>
char </td><td class="memItemRight" valign="bottom"><b>name</b> [FILENAME_MAX]</td></tr>
<tr class="separator:ad030639d02c1df677211455fd276cec8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a193f440652cde024537ef8df94baff4b"><td class="memItemLeft" align="right" valign="top"><a id="a193f440652cde024537ef8df94baff4b"></a>
+<tr class="memitem:a193f440652cde024537ef8df94baff4b"><td class="memItemLeft" align="right" valign="top"><a id="a193f440652cde024537ef8df94baff4b" name="a193f440652cde024537ef8df94baff4b"></a>
struct <a class="el" href="structcgroup__controller.html">cgroup_controller</a> * </td><td class="memItemRight" valign="bottom"><b>controller</b> [CG_CONTROLLER_MAX]</td></tr>
<tr class="separator:a193f440652cde024537ef8df94baff4b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a9cf5d357aa444ace0b50f3287ad798b2"><td class="memItemLeft" align="right" valign="top"><a id="a9cf5d357aa444ace0b50f3287ad798b2"></a>
+<tr class="memitem:a9cf5d357aa444ace0b50f3287ad798b2"><td class="memItemLeft" align="right" valign="top"><a id="a9cf5d357aa444ace0b50f3287ad798b2" name="a9cf5d357aa444ace0b50f3287ad798b2"></a>
int </td><td class="memItemRight" valign="bottom"><b>index</b></td></tr>
<tr class="separator:a9cf5d357aa444ace0b50f3287ad798b2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a166a667bf62253c6fe5e037765b06b48"><td class="memItemLeft" align="right" valign="top"><a id="a166a667bf62253c6fe5e037765b06b48"></a>
+<tr class="memitem:a166a667bf62253c6fe5e037765b06b48"><td class="memItemLeft" align="right" valign="top"><a id="a166a667bf62253c6fe5e037765b06b48" name="a166a667bf62253c6fe5e037765b06b48"></a>
uid_t </td><td class="memItemRight" valign="bottom"><b>tasks_uid</b></td></tr>
<tr class="separator:a166a667bf62253c6fe5e037765b06b48"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a4dd98248e523553cb2cc79f49d0bfdc9"><td class="memItemLeft" align="right" valign="top"><a id="a4dd98248e523553cb2cc79f49d0bfdc9"></a>
+<tr class="memitem:a4dd98248e523553cb2cc79f49d0bfdc9"><td class="memItemLeft" align="right" valign="top"><a id="a4dd98248e523553cb2cc79f49d0bfdc9" name="a4dd98248e523553cb2cc79f49d0bfdc9"></a>
gid_t </td><td class="memItemRight" valign="bottom"><b>tasks_gid</b></td></tr>
<tr class="separator:a4dd98248e523553cb2cc79f49d0bfdc9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a8b51ed0bebb232adf1a86bee627fa811"><td class="memItemLeft" align="right" valign="top"><a id="a8b51ed0bebb232adf1a86bee627fa811"></a>
+<tr class="memitem:a8b51ed0bebb232adf1a86bee627fa811"><td class="memItemLeft" align="right" valign="top"><a id="a8b51ed0bebb232adf1a86bee627fa811" name="a8b51ed0bebb232adf1a86bee627fa811"></a>
mode_t </td><td class="memItemRight" valign="bottom"><b>task_fperm</b></td></tr>
<tr class="separator:a8b51ed0bebb232adf1a86bee627fa811"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a8a49aab03bbd2fcc09effd5e810ac56d"><td class="memItemLeft" align="right" valign="top"><a id="a8a49aab03bbd2fcc09effd5e810ac56d"></a>
+<tr class="memitem:a8a49aab03bbd2fcc09effd5e810ac56d"><td class="memItemLeft" align="right" valign="top"><a id="a8a49aab03bbd2fcc09effd5e810ac56d" name="a8a49aab03bbd2fcc09effd5e810ac56d"></a>
uid_t </td><td class="memItemRight" valign="bottom"><b>control_uid</b></td></tr>
<tr class="separator:a8a49aab03bbd2fcc09effd5e810ac56d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5f577bb28c1150c646a0e0346fbf34af"><td class="memItemLeft" align="right" valign="top"><a id="a5f577bb28c1150c646a0e0346fbf34af"></a>
+<tr class="memitem:a5f577bb28c1150c646a0e0346fbf34af"><td class="memItemLeft" align="right" valign="top"><a id="a5f577bb28c1150c646a0e0346fbf34af" name="a5f577bb28c1150c646a0e0346fbf34af"></a>
gid_t </td><td class="memItemRight" valign="bottom"><b>control_gid</b></td></tr>
<tr class="separator:a5f577bb28c1150c646a0e0346fbf34af"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5b3e1c30e7e6b854cd3e1487c146634f"><td class="memItemLeft" align="right" valign="top"><a id="a5b3e1c30e7e6b854cd3e1487c146634f"></a>
+<tr class="memitem:a5b3e1c30e7e6b854cd3e1487c146634f"><td class="memItemLeft" align="right" valign="top"><a id="a5b3e1c30e7e6b854cd3e1487c146634f" name="a5b3e1c30e7e6b854cd3e1487c146634f"></a>
mode_t </td><td class="memItemRight" valign="bottom"><b>control_fperm</b></td></tr>
<tr class="separator:a5b3e1c30e7e6b854cd3e1487c146634f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0d910ef50c312ca4ca095c641728c95b"><td class="memItemLeft" align="right" valign="top"><a id="a0d910ef50c312ca4ca095c641728c95b"></a>
+<tr class="memitem:a0d910ef50c312ca4ca095c641728c95b"><td class="memItemLeft" align="right" valign="top"><a id="a0d910ef50c312ca4ca095c641728c95b" name="a0d910ef50c312ca4ca095c641728c95b"></a>
mode_t </td><td class="memItemRight" valign="bottom"><b>control_dperm</b></td></tr>
<tr class="separator:a0d910ef50c312ca4ca095c641728c95b"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Structure describing one or more control groups. The structure is opaque to applications. </p>
+<div class="textblock"><p >Structure describing one or more control groups. The structure is opaque to applications. </p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>src/<a class="el" href="libcgroup-internal_8h_source.html">libcgroup-internal.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: cgroup_abstraction_map Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">cgroup_abstraction_map Struct Reference</div> </div>
+ <div class="headertitle"><div class="title">cgroup_abstraction_map Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<p><code>#include <<a class="el" href="abstraction-map_8h_source.html">abstraction-map.h</a>></code></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
-<tr class="memitem:abf64a953a7757184b31b5a07721e17ce"><td class="memItemLeft" align="right" valign="top"><a id="abf64a953a7757184b31b5a07721e17ce"></a>
+<tr class="memitem:abf64a953a7757184b31b5a07721e17ce"><td class="memItemLeft" align="right" valign="top"><a id="abf64a953a7757184b31b5a07721e17ce" name="abf64a953a7757184b31b5a07721e17ce"></a>
int(* </td><td class="memItemRight" valign="bottom"><b>cgroup_convert</b> )(struct <a class="el" href="structcgroup__controller.html">cgroup_controller</a> *const dst_cgc, const char *const in_value, const char *const out_setting, void *in_dflt, void *out_dflt)</td></tr>
<tr class="separator:abf64a953a7757184b31b5a07721e17ce"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa49f028e9d9e8a58ad9a93100673f4e7"><td class="memItemLeft" align="right" valign="top"><a id="aa49f028e9d9e8a58ad9a93100673f4e7"></a>
+<tr class="memitem:aa49f028e9d9e8a58ad9a93100673f4e7"><td class="memItemLeft" align="right" valign="top"><a id="aa49f028e9d9e8a58ad9a93100673f4e7" name="aa49f028e9d9e8a58ad9a93100673f4e7"></a>
char * </td><td class="memItemRight" valign="bottom"><b>in_setting</b></td></tr>
<tr class="separator:aa49f028e9d9e8a58ad9a93100673f4e7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a9c7b3743d1b62a29705e40e5578c68ee"><td class="memItemLeft" align="right" valign="top"><a id="a9c7b3743d1b62a29705e40e5578c68ee"></a>
+<tr class="memitem:a9c7b3743d1b62a29705e40e5578c68ee"><td class="memItemLeft" align="right" valign="top"><a id="a9c7b3743d1b62a29705e40e5578c68ee" name="a9c7b3743d1b62a29705e40e5578c68ee"></a>
void * </td><td class="memItemRight" valign="bottom"><b>in_dflt</b></td></tr>
<tr class="separator:a9c7b3743d1b62a29705e40e5578c68ee"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5ce580f7efca804ce5a0fdae70fb2cf4"><td class="memItemLeft" align="right" valign="top"><a id="a5ce580f7efca804ce5a0fdae70fb2cf4"></a>
+<tr class="memitem:a5ce580f7efca804ce5a0fdae70fb2cf4"><td class="memItemLeft" align="right" valign="top"><a id="a5ce580f7efca804ce5a0fdae70fb2cf4" name="a5ce580f7efca804ce5a0fdae70fb2cf4"></a>
char * </td><td class="memItemRight" valign="bottom"><b>out_setting</b></td></tr>
<tr class="separator:a5ce580f7efca804ce5a0fdae70fb2cf4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a58e0e6db190e3cceed5ffc6e02a4cfdd"><td class="memItemLeft" align="right" valign="top"><a id="a58e0e6db190e3cceed5ffc6e02a4cfdd"></a>
+<tr class="memitem:a58e0e6db190e3cceed5ffc6e02a4cfdd"><td class="memItemLeft" align="right" valign="top"><a id="a58e0e6db190e3cceed5ffc6e02a4cfdd" name="a58e0e6db190e3cceed5ffc6e02a4cfdd"></a>
void * </td><td class="memItemRight" valign="bottom"><b>out_dflt</b></td></tr>
<tr class="separator:a58e0e6db190e3cceed5ffc6e02a4cfdd"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Libcgroup abstraction layer mappings</p>
-<p>Copyright (c) 2021-2022 Oracle and/or its affiliates. Author: Tom Hromatka <a href="#" onclick="location.href='mai'+'lto:'+'tom'+'.h'+'rom'+'at'+'ka@'+'or'+'acl'+'e.'+'com'; return false;">tom.h<span style="display: none;">.nosp@m.</span>roma<span style="display: none;">.nosp@m.</span>tka@o<span style="display: none;">.nosp@m.</span>racl<span style="display: none;">.nosp@m.</span>e.com</a> </p>
+<div class="textblock"><p >Libcgroup abstraction layer mappings</p>
+<p >Copyright (c) 2021-2022 Oracle and/or its affiliates. Author: Tom Hromatka <a href="#" onclick="location.href='mai'+'lto:'+'tom'+'.h'+'rom'+'at'+'ka@'+'or'+'acl'+'e.'+'com'; return false;">tom.h<span class="obfuscator">.nosp@m.</span>roma<span class="obfuscator">.nosp@m.</span>tka@o<span class="obfuscator">.nosp@m.</span>racl<span class="obfuscator">.nosp@m.</span>e.com</a> </p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>src/<a class="el" href="abstraction-map_8h_source.html">abstraction-map.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: cgroup_controller Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">cgroup_controller Struct Reference<div class="ingroups"><a class="el" href="group__group__groups.html">2. Group manipulation API</a></div></div> </div>
+ <div class="headertitle"><div class="title">cgroup_controller Struct Reference<div class="ingroups"><a class="el" href="group__group__groups.html">2. Group manipulation API</a></div></div></div>
</div><!--header-->
<div class="contents">
<p><code>#include <<a class="el" href="groups_8h_source.html">groups.h</a>></code></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
-<tr class="memitem:a192c36bfd8191056c32cef5d9682a98a"><td class="memItemLeft" align="right" valign="top"><a id="a192c36bfd8191056c32cef5d9682a98a"></a>
+<tr class="memitem:a192c36bfd8191056c32cef5d9682a98a"><td class="memItemLeft" align="right" valign="top"><a id="a192c36bfd8191056c32cef5d9682a98a" name="a192c36bfd8191056c32cef5d9682a98a"></a>
char </td><td class="memItemRight" valign="bottom"><b>name</b> [FILENAME_MAX]</td></tr>
<tr class="separator:a192c36bfd8191056c32cef5d9682a98a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a391b7f18461dc17d1aadb57bbf3d2bda"><td class="memItemLeft" align="right" valign="top"><a id="a391b7f18461dc17d1aadb57bbf3d2bda"></a>
+<tr class="memitem:a391b7f18461dc17d1aadb57bbf3d2bda"><td class="memItemLeft" align="right" valign="top"><a id="a391b7f18461dc17d1aadb57bbf3d2bda" name="a391b7f18461dc17d1aadb57bbf3d2bda"></a>
struct <a class="el" href="structcontrol__value.html">control_value</a> * </td><td class="memItemRight" valign="bottom"><b>values</b> [CG_NV_MAX]</td></tr>
<tr class="separator:a391b7f18461dc17d1aadb57bbf3d2bda"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:af7c36bfafcff06ebde1cf8318fc1a1ec"><td class="memItemLeft" align="right" valign="top"><a id="af7c36bfafcff06ebde1cf8318fc1a1ec"></a>
+<tr class="memitem:af7c36bfafcff06ebde1cf8318fc1a1ec"><td class="memItemLeft" align="right" valign="top"><a id="af7c36bfafcff06ebde1cf8318fc1a1ec" name="af7c36bfafcff06ebde1cf8318fc1a1ec"></a>
struct <a class="el" href="structcgroup.html">cgroup</a> * </td><td class="memItemRight" valign="bottom"><b>cgroup</b></td></tr>
<tr class="separator:af7c36bfafcff06ebde1cf8318fc1a1ec"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ae2b6bd9e6cd54849e0ca3a0625555c77"><td class="memItemLeft" align="right" valign="top"><a id="ae2b6bd9e6cd54849e0ca3a0625555c77"></a>
+<tr class="memitem:ae2b6bd9e6cd54849e0ca3a0625555c77"><td class="memItemLeft" align="right" valign="top"><a id="ae2b6bd9e6cd54849e0ca3a0625555c77" name="ae2b6bd9e6cd54849e0ca3a0625555c77"></a>
int </td><td class="memItemRight" valign="bottom"><b>index</b></td></tr>
<tr class="separator:ae2b6bd9e6cd54849e0ca3a0625555c77"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab9b3473e3b4ebd3ef661618ec46af5e5"><td class="memItemLeft" align="right" valign="top"><a id="ab9b3473e3b4ebd3ef661618ec46af5e5"></a>
+<tr class="memitem:ab9b3473e3b4ebd3ef661618ec46af5e5"><td class="memItemLeft" align="right" valign="top"><a id="ab9b3473e3b4ebd3ef661618ec46af5e5" name="ab9b3473e3b4ebd3ef661618ec46af5e5"></a>
enum cg_version_t </td><td class="memItemRight" valign="bottom"><b>version</b></td></tr>
<tr class="separator:ab9b3473e3b4ebd3ef661618ec46af5e5"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Structure describing a controller attached to one struct <code>cgroup</code>, including parameters of the group and their values. The structure is opaque to applications. </p><dl class="section see"><dt>See also</dt><dd>groups </dd></dl>
+<div class="textblock"><p >Structure describing a controller attached to one struct <code>cgroup</code>, including parameters of the group and their values. The structure is opaque to applications. </p><dl class="section see"><dt>See also</dt><dd>groups </dd></dl>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>src/<a class="el" href="libcgroup-internal_8h_source.html">libcgroup-internal.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: cgroup_dictionary Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">cgroup_dictionary Struct Reference</div> </div>
+ <div class="headertitle"><div class="title">cgroup_dictionary Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<p><code>#include <<a class="el" href="libcgroup-internal_8h_source.html">libcgroup-internal.h</a>></code></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
-<tr class="memitem:ab703bb5d50eaa78f9edb64d04ed63434"><td class="memItemLeft" align="right" valign="top"><a id="ab703bb5d50eaa78f9edb64d04ed63434"></a>
+<tr class="memitem:ab703bb5d50eaa78f9edb64d04ed63434"><td class="memItemLeft" align="right" valign="top"><a id="ab703bb5d50eaa78f9edb64d04ed63434" name="ab703bb5d50eaa78f9edb64d04ed63434"></a>
struct <a class="el" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> * </td><td class="memItemRight" valign="bottom"><b>head</b></td></tr>
<tr class="separator:ab703bb5d50eaa78f9edb64d04ed63434"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a89e46210181abe754bff2d2872c91431"><td class="memItemLeft" align="right" valign="top"><a id="a89e46210181abe754bff2d2872c91431"></a>
+<tr class="memitem:a89e46210181abe754bff2d2872c91431"><td class="memItemLeft" align="right" valign="top"><a id="a89e46210181abe754bff2d2872c91431" name="a89e46210181abe754bff2d2872c91431"></a>
struct <a class="el" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> * </td><td class="memItemRight" valign="bottom"><b>tail</b></td></tr>
<tr class="separator:a89e46210181abe754bff2d2872c91431"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a1f0b713f324f88782e5ad5c8b4e632a7"><td class="memItemLeft" align="right" valign="top"><a id="a1f0b713f324f88782e5ad5c8b4e632a7"></a>
+<tr class="memitem:a1f0b713f324f88782e5ad5c8b4e632a7"><td class="memItemLeft" align="right" valign="top"><a id="a1f0b713f324f88782e5ad5c8b4e632a7" name="a1f0b713f324f88782e5ad5c8b4e632a7"></a>
int </td><td class="memItemRight" valign="bottom"><b>flags</b></td></tr>
<tr class="separator:a1f0b713f324f88782e5ad5c8b4e632a7"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Dictionary of (name, value) items. The dictionary keeps its order, iterator iterates in the same order as the items were added there. It is <em>not</em> hash-style structure, it does not provide random access to its items nor quick search. This structure should be opaque to users of the dictionary, underlying data structure might change anytime and without warnings. </p>
+<div class="textblock"><p >Dictionary of (name, value) items. The dictionary keeps its order, iterator iterates in the same order as the items were added there. It is <em>not</em> hash-style structure, it does not provide random access to its items nor quick search. This structure should be opaque to users of the dictionary, underlying data structure might change anytime and without warnings. </p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>src/<a class="el" href="libcgroup-internal_8h_source.html">libcgroup-internal.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: cgroup_dictionary_item Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">cgroup_dictionary_item Struct Reference</div> </div>
+ <div class="headertitle"><div class="title">cgroup_dictionary_item Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<p><code>#include <<a class="el" href="libcgroup-internal_8h_source.html">libcgroup-internal.h</a>></code></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
-<tr class="memitem:a2e42301c618155e66756acbc5d9163e1"><td class="memItemLeft" align="right" valign="top"><a id="a2e42301c618155e66756acbc5d9163e1"></a>
+<tr class="memitem:a2e42301c618155e66756acbc5d9163e1"><td class="memItemLeft" align="right" valign="top"><a id="a2e42301c618155e66756acbc5d9163e1" name="a2e42301c618155e66756acbc5d9163e1"></a>
const char * </td><td class="memItemRight" valign="bottom"><b>name</b></td></tr>
<tr class="separator:a2e42301c618155e66756acbc5d9163e1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a996f46806a4d0db89fb66cc0211445fa"><td class="memItemLeft" align="right" valign="top"><a id="a996f46806a4d0db89fb66cc0211445fa"></a>
+<tr class="memitem:a996f46806a4d0db89fb66cc0211445fa"><td class="memItemLeft" align="right" valign="top"><a id="a996f46806a4d0db89fb66cc0211445fa" name="a996f46806a4d0db89fb66cc0211445fa"></a>
const char * </td><td class="memItemRight" valign="bottom"><b>value</b></td></tr>
<tr class="separator:a996f46806a4d0db89fb66cc0211445fa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ad3cd0c13cbd942751873fec189526c96"><td class="memItemLeft" align="right" valign="top"><a id="ad3cd0c13cbd942751873fec189526c96"></a>
+<tr class="memitem:ad3cd0c13cbd942751873fec189526c96"><td class="memItemLeft" align="right" valign="top"><a id="ad3cd0c13cbd942751873fec189526c96" name="ad3cd0c13cbd942751873fec189526c96"></a>
struct <a class="el" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> * </td><td class="memItemRight" valign="bottom"><b>next</b></td></tr>
<tr class="separator:ad3cd0c13cbd942751873fec189526c96"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Internal item of dictionary. Linked list is sufficient for now - we need only 'add' operation and simple iterator. In future, this might be easily rewritten to dynamic array when random access is needed, just keep in mind that the order is important and the iterator should return the items in the order they were added there. </p>
+<div class="textblock"><p >Internal item of dictionary. Linked list is sufficient for now - we need only 'add' operation and simple iterator. In future, this might be easily rewritten to dynamic array when random access is needed, just keep in mind that the order is important and the iterator should return the items in the order they were added there. </p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>src/<a class="el" href="libcgroup-internal_8h_source.html">libcgroup-internal.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: cgroup_dictionary_iterator Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">cgroup_dictionary_iterator Struct Reference</div> </div>
+ <div class="headertitle"><div class="title">cgroup_dictionary_iterator Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<p><code>#include <<a class="el" href="libcgroup-internal_8h_source.html">libcgroup-internal.h</a>></code></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
-<tr class="memitem:a0ab008d3fa46a92ead0d1f4e2bf4c667"><td class="memItemLeft" align="right" valign="top"><a id="a0ab008d3fa46a92ead0d1f4e2bf4c667"></a>
+<tr class="memitem:a0ab008d3fa46a92ead0d1f4e2bf4c667"><td class="memItemLeft" align="right" valign="top"><a id="a0ab008d3fa46a92ead0d1f4e2bf4c667" name="a0ab008d3fa46a92ead0d1f4e2bf4c667"></a>
struct <a class="el" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> * </td><td class="memItemRight" valign="bottom"><b>item</b></td></tr>
<tr class="separator:a0ab008d3fa46a92ead0d1f4e2bf4c667"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Opaque iterator of an dictionary. </p>
+<div class="textblock"><p >Opaque iterator of an dictionary. </p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>src/<a class="el" href="libcgroup-internal_8h_source.html">libcgroup-internal.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: cgroup_file_info Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">cgroup_file_info Struct Reference<div class="ingroups"><a class="el" href="group__group__iterators.html">3. Iterators</a></div></div> </div>
+ <div class="headertitle"><div class="title">cgroup_file_info Struct Reference<div class="ingroups"><a class="el" href="group__group__iterators.html">3. Iterators</a></div></div></div>
</div><!--header-->
<div class="contents">
<p><code>#include <<a class="el" href="iterators_8h_source.html">iterators.h</a>></code></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr class="memitem:a955506601f440d05cb11e4ee6b455c55"><td class="memItemLeft" align="right" valign="top">enum <a class="el" href="group__group__iterators.html#ga608b4aa32e2db58fed34771a6a272444">cgroup_file_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structcgroup__file__info.html#a955506601f440d05cb11e4ee6b455c55">type</a></td></tr>
<tr class="separator:a955506601f440d05cb11e4ee6b455c55"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="separator:ad56dca35266f0f5f5c2666b946d72709"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Information about found directory (= a control group). </p>
+<div class="textblock"><p >Information about found directory (= a control group). </p>
</div><h2 class="groupheader">Field Documentation</h2>
-<a id="ad56dca35266f0f5f5c2666b946d72709"></a>
+<a id="ad56dca35266f0f5f5c2666b946d72709" name="ad56dca35266f0f5f5c2666b946d72709"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad56dca35266f0f5f5c2666b946d72709">◆ </a></span>depth</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Depth of the entity, how many directories below the root of walk it is. </p>
+<p >Depth of the entity, how many directories below the root of walk it is. </p>
</div>
</div>
-<a id="a4c61dc7f726ba0784ff8c71473dbc6e6"></a>
+<a id="a4c61dc7f726ba0784ff8c71473dbc6e6" name="a4c61dc7f726ba0784ff8c71473dbc6e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4c61dc7f726ba0784ff8c71473dbc6e6">◆ </a></span>full_path</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Full path to the entity. To get path relative to the root of the walk, you must store its <code>full_path</code> (or its length) and calculate the relative path by yourself. </p>
+<p >Full path to the entity. To get path relative to the root of the walk, you must store its <code>full_path</code> (or its length) and calculate the relative path by yourself. </p>
</div>
</div>
-<a id="a739c7f87593e36d8589d3ffa80b57059"></a>
+<a id="a739c7f87593e36d8589d3ffa80b57059" name="a739c7f87593e36d8589d3ffa80b57059"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a739c7f87593e36d8589d3ffa80b57059">◆ </a></span>parent</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Name of its parent. </p>
+<p >Name of its parent. </p>
</div>
</div>
-<a id="a801424e68139c930e40ea24be4d96a68"></a>
+<a id="a801424e68139c930e40ea24be4d96a68" name="a801424e68139c930e40ea24be4d96a68"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a801424e68139c930e40ea24be4d96a68">◆ </a></span>path</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Name of the entity. </p>
+<p >Name of the entity. </p>
</div>
</div>
-<a id="a955506601f440d05cb11e4ee6b455c55"></a>
+<a id="a955506601f440d05cb11e4ee6b455c55" name="a955506601f440d05cb11e4ee6b455c55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a955506601f440d05cb11e4ee6b455c55">◆ </a></span>type</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Type of the entity. </p>
+<p >Type of the entity. </p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: cgroup_group_spec Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">cgroup_group_spec Struct Reference</div> </div>
+ <div class="headertitle"><div class="title">cgroup_group_spec Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<p><code>#include <<a class="el" href="tools-common_8h_source.html">tools-common.h</a>></code></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
-<tr class="memitem:a0440e6333cca594674419fa8b4a7e733"><td class="memItemLeft" align="right" valign="top"><a id="a0440e6333cca594674419fa8b4a7e733"></a>
+<tr class="memitem:a0440e6333cca594674419fa8b4a7e733"><td class="memItemLeft" align="right" valign="top"><a id="a0440e6333cca594674419fa8b4a7e733" name="a0440e6333cca594674419fa8b4a7e733"></a>
char </td><td class="memItemRight" valign="bottom"><b>path</b> [FILENAME_MAX]</td></tr>
<tr class="separator:a0440e6333cca594674419fa8b4a7e733"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a26c2e69db971464e93110a0bbd589342"><td class="memItemLeft" align="right" valign="top"><a id="a26c2e69db971464e93110a0bbd589342"></a>
+<tr class="memitem:a26c2e69db971464e93110a0bbd589342"><td class="memItemLeft" align="right" valign="top"><a id="a26c2e69db971464e93110a0bbd589342" name="a26c2e69db971464e93110a0bbd589342"></a>
char * </td><td class="memItemRight" valign="bottom"><b>controllers</b> [CG_CONTROLLER_MAX]</td></tr>
<tr class="separator:a26c2e69db971464e93110a0bbd589342"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Auxiliary specifier of group, used to store parsed command line options. </p>
+<div class="textblock"><p >Auxiliary specifier of group, used to store parsed command line options. </p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>src/tools/<a class="el" href="tools-common_8h_source.html">tools-common.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: cgroup_mount_point Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">cgroup_mount_point Struct Reference<div class="ingroups"><a class="el" href="group__group__iterators.html">3. Iterators</a></div></div> </div>
+ <div class="headertitle"><div class="title">cgroup_mount_point Struct Reference<div class="ingroups"><a class="el" href="group__group__iterators.html">3. Iterators</a></div></div></div>
</div><!--header-->
<div class="contents">
<p><code>#include <<a class="el" href="iterators_8h_source.html">iterators.h</a>></code></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr class="memitem:a849ccf1e77fffd5d45304c6adf0d2100"><td class="memItemLeft" align="right" valign="top">char </td><td class="memItemRight" valign="bottom"><a class="el" href="structcgroup__mount__point.html#a849ccf1e77fffd5d45304c6adf0d2100">name</a> [FILENAME_MAX]</td></tr>
<tr class="separator:a849ccf1e77fffd5d45304c6adf0d2100"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="separator:ad1e89dfc02cfd7341e2296086a4f251e"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Information about mounted controller. </p>
+<div class="textblock"><p >Information about mounted controller. </p>
</div><h2 class="groupheader">Field Documentation</h2>
-<a id="a849ccf1e77fffd5d45304c6adf0d2100"></a>
+<a id="a849ccf1e77fffd5d45304c6adf0d2100" name="a849ccf1e77fffd5d45304c6adf0d2100"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a849ccf1e77fffd5d45304c6adf0d2100">◆ </a></span>name</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Name of the controller. </p>
+<p >Name of the controller. </p>
</div>
</div>
-<a id="ad1e89dfc02cfd7341e2296086a4f251e"></a>
+<a id="ad1e89dfc02cfd7341e2296086a4f251e" name="ad1e89dfc02cfd7341e2296086a4f251e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad1e89dfc02cfd7341e2296086a4f251e">◆ </a></span>path</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Mount point of the controller. </p>
+<p >Mount point of the controller. </p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: cgroup_rule Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">cgroup_rule Struct Reference</div> </div>
+ <div class="headertitle"><div class="title">cgroup_rule Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
-<tr class="memitem:ae5c16d897540848a1573f68656c7d667"><td class="memItemLeft" align="right" valign="top"><a id="ae5c16d897540848a1573f68656c7d667"></a>
+<tr class="memitem:ae5c16d897540848a1573f68656c7d667"><td class="memItemLeft" align="right" valign="top"><a id="ae5c16d897540848a1573f68656c7d667" name="ae5c16d897540848a1573f68656c7d667"></a>
uid_t </td><td class="memItemRight" valign="bottom"><b>uid</b></td></tr>
<tr class="separator:ae5c16d897540848a1573f68656c7d667"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a2b8c21c79a9bf166b93108e730e95dc7"><td class="memItemLeft" align="right" valign="top"><a id="a2b8c21c79a9bf166b93108e730e95dc7"></a>
+<tr class="memitem:a2b8c21c79a9bf166b93108e730e95dc7"><td class="memItemLeft" align="right" valign="top"><a id="a2b8c21c79a9bf166b93108e730e95dc7" name="a2b8c21c79a9bf166b93108e730e95dc7"></a>
gid_t </td><td class="memItemRight" valign="bottom"><b>gid</b></td></tr>
<tr class="separator:a2b8c21c79a9bf166b93108e730e95dc7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a7ebe0743b85b1ec6c925888793a75c5d"><td class="memItemLeft" align="right" valign="top"><a id="a7ebe0743b85b1ec6c925888793a75c5d"></a>
+<tr class="memitem:a7ebe0743b85b1ec6c925888793a75c5d"><td class="memItemLeft" align="right" valign="top"><a id="a7ebe0743b85b1ec6c925888793a75c5d" name="a7ebe0743b85b1ec6c925888793a75c5d"></a>
bool </td><td class="memItemRight" valign="bottom"><b>is_ignore</b></td></tr>
<tr class="separator:a7ebe0743b85b1ec6c925888793a75c5d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:abffc5fe695e4304ca5907af937aad48f"><td class="memItemLeft" align="right" valign="top"><a id="abffc5fe695e4304ca5907af937aad48f"></a>
+<tr class="memitem:abffc5fe695e4304ca5907af937aad48f"><td class="memItemLeft" align="right" valign="top"><a id="abffc5fe695e4304ca5907af937aad48f" name="abffc5fe695e4304ca5907af937aad48f"></a>
char * </td><td class="memItemRight" valign="bottom"><b>procname</b></td></tr>
<tr class="separator:abffc5fe695e4304ca5907af937aad48f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:abea30a7c25ba86ce19579cb2b155441e"><td class="memItemLeft" align="right" valign="top"><a id="abea30a7c25ba86ce19579cb2b155441e"></a>
+<tr class="memitem:abea30a7c25ba86ce19579cb2b155441e"><td class="memItemLeft" align="right" valign="top"><a id="abea30a7c25ba86ce19579cb2b155441e" name="abea30a7c25ba86ce19579cb2b155441e"></a>
char </td><td class="memItemRight" valign="bottom"><b>username</b> [LOGIN_NAME_MAX]</td></tr>
<tr class="separator:abea30a7c25ba86ce19579cb2b155441e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:af4d44b4aa00c8448be74092d7f1dfcdb"><td class="memItemLeft" align="right" valign="top"><a id="af4d44b4aa00c8448be74092d7f1dfcdb"></a>
+<tr class="memitem:af4d44b4aa00c8448be74092d7f1dfcdb"><td class="memItemLeft" align="right" valign="top"><a id="af4d44b4aa00c8448be74092d7f1dfcdb" name="af4d44b4aa00c8448be74092d7f1dfcdb"></a>
char </td><td class="memItemRight" valign="bottom"><b>destination</b> [FILENAME_MAX]</td></tr>
<tr class="separator:af4d44b4aa00c8448be74092d7f1dfcdb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a1c02dda41553d6db698b1d661a1def8c"><td class="memItemLeft" align="right" valign="top"><a id="a1c02dda41553d6db698b1d661a1def8c"></a>
+<tr class="memitem:a1c02dda41553d6db698b1d661a1def8c"><td class="memItemLeft" align="right" valign="top"><a id="a1c02dda41553d6db698b1d661a1def8c" name="a1c02dda41553d6db698b1d661a1def8c"></a>
char * </td><td class="memItemRight" valign="bottom"><b>controllers</b> [MAX_MNT_ELEMENTS]</td></tr>
<tr class="separator:a1c02dda41553d6db698b1d661a1def8c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a66147998302a2a58a6b3fc00324703fd"><td class="memItemLeft" align="right" valign="top"><a id="a66147998302a2a58a6b3fc00324703fd"></a>
+<tr class="memitem:a66147998302a2a58a6b3fc00324703fd"><td class="memItemLeft" align="right" valign="top"><a id="a66147998302a2a58a6b3fc00324703fd" name="a66147998302a2a58a6b3fc00324703fd"></a>
struct <a class="el" href="structcgroup__rule.html">cgroup_rule</a> * </td><td class="memItemRight" valign="bottom"><b>next</b></td></tr>
<tr class="separator:a66147998302a2a58a6b3fc00324703fd"><td class="memSeparator" colspan="2"> </td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: cgroup_rule_list Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">cgroup_rule_list Struct Reference</div> </div>
+ <div class="headertitle"><div class="title">cgroup_rule_list Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
-<tr class="memitem:aa2561d560cf3dd40aad7bf8363d1ebd6"><td class="memItemLeft" align="right" valign="top"><a id="aa2561d560cf3dd40aad7bf8363d1ebd6"></a>
+<tr class="memitem:aa2561d560cf3dd40aad7bf8363d1ebd6"><td class="memItemLeft" align="right" valign="top"><a id="aa2561d560cf3dd40aad7bf8363d1ebd6" name="aa2561d560cf3dd40aad7bf8363d1ebd6"></a>
struct <a class="el" href="structcgroup__rule.html">cgroup_rule</a> * </td><td class="memItemRight" valign="bottom"><b>head</b></td></tr>
<tr class="separator:aa2561d560cf3dd40aad7bf8363d1ebd6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a23e82aa76ca8c768224d3f1e3d6ce5a2"><td class="memItemLeft" align="right" valign="top"><a id="a23e82aa76ca8c768224d3f1e3d6ce5a2"></a>
+<tr class="memitem:a23e82aa76ca8c768224d3f1e3d6ce5a2"><td class="memItemLeft" align="right" valign="top"><a id="a23e82aa76ca8c768224d3f1e3d6ce5a2" name="a23e82aa76ca8c768224d3f1e3d6ce5a2"></a>
struct <a class="el" href="structcgroup__rule.html">cgroup_rule</a> * </td><td class="memItemRight" valign="bottom"><b>tail</b></td></tr>
<tr class="separator:a23e82aa76ca8c768224d3f1e3d6ce5a2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa1f741c5a828925a45a2b33d7577d84c"><td class="memItemLeft" align="right" valign="top"><a id="aa1f741c5a828925a45a2b33d7577d84c"></a>
+<tr class="memitem:aa1f741c5a828925a45a2b33d7577d84c"><td class="memItemLeft" align="right" valign="top"><a id="aa1f741c5a828925a45a2b33d7577d84c" name="aa1f741c5a828925a45a2b33d7577d84c"></a>
int </td><td class="memItemRight" valign="bottom"><b>len</b></td></tr>
<tr class="separator:aa1f741c5a828925a45a2b33d7577d84c"><td class="memSeparator" colspan="2"> </td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: cgroup_rules_data Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">cgroup_rules_data Struct Reference</div> </div>
+ <div class="headertitle"><div class="title">cgroup_rules_data Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
-<tr class="memitem:a76eba31fb4f7062c0d5b86a39bd34c6b"><td class="memItemLeft" align="right" valign="top"><a id="a76eba31fb4f7062c0d5b86a39bd34c6b"></a>
+<tr class="memitem:a76eba31fb4f7062c0d5b86a39bd34c6b"><td class="memItemLeft" align="right" valign="top"><a id="a76eba31fb4f7062c0d5b86a39bd34c6b" name="a76eba31fb4f7062c0d5b86a39bd34c6b"></a>
pid_t </td><td class="memItemRight" valign="bottom"><b>pid</b></td></tr>
<tr class="separator:a76eba31fb4f7062c0d5b86a39bd34c6b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:abd9d2b09e2b1e68497c809728c463393"><td class="memItemLeft" align="right" valign="top"><a id="abd9d2b09e2b1e68497c809728c463393"></a>
+<tr class="memitem:abd9d2b09e2b1e68497c809728c463393"><td class="memItemLeft" align="right" valign="top"><a id="abd9d2b09e2b1e68497c809728c463393" name="abd9d2b09e2b1e68497c809728c463393"></a>
struct passwd * </td><td class="memItemRight" valign="bottom"><b>pw</b></td></tr>
<tr class="separator:abd9d2b09e2b1e68497c809728c463393"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a179b3b338954f522495b01cbe2a474ef"><td class="memItemLeft" align="right" valign="top"><a id="a179b3b338954f522495b01cbe2a474ef"></a>
+<tr class="memitem:a179b3b338954f522495b01cbe2a474ef"><td class="memItemLeft" align="right" valign="top"><a id="a179b3b338954f522495b01cbe2a474ef" name="a179b3b338954f522495b01cbe2a474ef"></a>
gid_t </td><td class="memItemRight" valign="bottom"><b>gid</b></td></tr>
<tr class="separator:a179b3b338954f522495b01cbe2a474ef"><td class="memSeparator" colspan="2"> </td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: cgroup_stat Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">cgroup_stat Struct Reference<div class="ingroups"><a class="el" href="group__group__iterators.html">3. Iterators</a></div></div> </div>
+ <div class="headertitle"><div class="title">cgroup_stat Struct Reference<div class="ingroups"><a class="el" href="group__group__iterators.html">3. Iterators</a></div></div></div>
</div><!--header-->
<div class="contents">
<p><code>#include <<a class="el" href="iterators_8h_source.html">iterators.h</a>></code></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
-<tr class="memitem:aab452f27ee2d2da5f75469de94f41a91"><td class="memItemLeft" align="right" valign="top"><a id="aab452f27ee2d2da5f75469de94f41a91"></a>
+<tr class="memitem:aab452f27ee2d2da5f75469de94f41a91"><td class="memItemLeft" align="right" valign="top"><a id="aab452f27ee2d2da5f75469de94f41a91" name="aab452f27ee2d2da5f75469de94f41a91"></a>
char </td><td class="memItemRight" valign="bottom"><b>name</b> [FILENAME_MAX]</td></tr>
<tr class="separator:aab452f27ee2d2da5f75469de94f41a91"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aae14ecf5d537a9247ee8de68aa43bed2"><td class="memItemLeft" align="right" valign="top"><a id="aae14ecf5d537a9247ee8de68aa43bed2"></a>
+<tr class="memitem:aae14ecf5d537a9247ee8de68aa43bed2"><td class="memItemLeft" align="right" valign="top"><a id="aae14ecf5d537a9247ee8de68aa43bed2" name="aae14ecf5d537a9247ee8de68aa43bed2"></a>
char </td><td class="memItemRight" valign="bottom"><b>value</b> [<a class="el" href="group__group__iterators.html#ga55d2eac2af703794651d344c073566f5">CG_VALUE_MAX</a>]</td></tr>
<tr class="separator:aae14ecf5d537a9247ee8de68aa43bed2"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>One item in stats file. </p>
+<div class="textblock"><p >One item in stats file. </p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>include/libcgroup/<a class="el" href="iterators_8h_source.html">iterators.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: cgroup_string_list Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">cgroup_string_list Struct Reference</div> </div>
+ <div class="headertitle"><div class="title">cgroup_string_list Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<p><code>#include <<a class="el" href="tools-common_8h_source.html">tools-common.h</a>></code></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
-<tr class="memitem:af644a51828fa806f9596fd57e74a8b40"><td class="memItemLeft" align="right" valign="top"><a id="af644a51828fa806f9596fd57e74a8b40"></a>
+<tr class="memitem:af644a51828fa806f9596fd57e74a8b40"><td class="memItemLeft" align="right" valign="top"><a id="af644a51828fa806f9596fd57e74a8b40" name="af644a51828fa806f9596fd57e74a8b40"></a>
char ** </td><td class="memItemRight" valign="bottom"><b>items</b></td></tr>
<tr class="separator:af644a51828fa806f9596fd57e74a8b40"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:afdf4b5417c2cf9502cf20bb022724dd0"><td class="memItemLeft" align="right" valign="top"><a id="afdf4b5417c2cf9502cf20bb022724dd0"></a>
+<tr class="memitem:afdf4b5417c2cf9502cf20bb022724dd0"><td class="memItemLeft" align="right" valign="top"><a id="afdf4b5417c2cf9502cf20bb022724dd0" name="afdf4b5417c2cf9502cf20bb022724dd0"></a>
int </td><td class="memItemRight" valign="bottom"><b>size</b></td></tr>
<tr class="separator:afdf4b5417c2cf9502cf20bb022724dd0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a7337c4f463238f341f3686c90c3f1ac5"><td class="memItemLeft" align="right" valign="top"><a id="a7337c4f463238f341f3686c90c3f1ac5"></a>
+<tr class="memitem:a7337c4f463238f341f3686c90c3f1ac5"><td class="memItemLeft" align="right" valign="top"><a id="a7337c4f463238f341f3686c90c3f1ac5" name="a7337c4f463238f341f3686c90c3f1ac5"></a>
int </td><td class="memItemRight" valign="bottom"><b>count</b></td></tr>
<tr class="separator:a7337c4f463238f341f3686c90c3f1ac5"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Simple dynamic array of strings. </p>
+<div class="textblock"><p >Simple dynamic array of strings. </p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>src/tools/<a class="el" href="tools-common_8h_source.html">tools-common.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: cgroup_tree_handle Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">cgroup_tree_handle Struct Reference</div> </div>
+ <div class="headertitle"><div class="title">cgroup_tree_handle Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
-<tr class="memitem:a06d13e3bd844440a5debe742d398bda3"><td class="memItemLeft" align="right" valign="top"><a id="a06d13e3bd844440a5debe742d398bda3"></a>
+<tr class="memitem:a06d13e3bd844440a5debe742d398bda3"><td class="memItemLeft" align="right" valign="top"><a id="a06d13e3bd844440a5debe742d398bda3" name="a06d13e3bd844440a5debe742d398bda3"></a>
FTS * </td><td class="memItemRight" valign="bottom"><b>fts</b></td></tr>
<tr class="separator:a06d13e3bd844440a5debe742d398bda3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a15d834fb4119faf0481ad0bbe28696e4"><td class="memItemLeft" align="right" valign="top"><a id="a15d834fb4119faf0481ad0bbe28696e4"></a>
+<tr class="memitem:a15d834fb4119faf0481ad0bbe28696e4"><td class="memItemLeft" align="right" valign="top"><a id="a15d834fb4119faf0481ad0bbe28696e4" name="a15d834fb4119faf0481ad0bbe28696e4"></a>
int </td><td class="memItemRight" valign="bottom"><b>flags</b></td></tr>
<tr class="separator:a15d834fb4119faf0481ad0bbe28696e4"><td class="memSeparator" colspan="2"> </td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: control_value Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">control_value Struct Reference</div> </div>
+ <div class="headertitle"><div class="title">control_value Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
-<tr class="memitem:af190cf1c7f95a94d99c6c2a0ce438283"><td class="memItemLeft" align="right" valign="top"><a id="af190cf1c7f95a94d99c6c2a0ce438283"></a>
+<tr class="memitem:af190cf1c7f95a94d99c6c2a0ce438283"><td class="memItemLeft" align="right" valign="top"><a id="af190cf1c7f95a94d99c6c2a0ce438283" name="af190cf1c7f95a94d99c6c2a0ce438283"></a>
char </td><td class="memItemRight" valign="bottom"><b>name</b> [FILENAME_MAX]</td></tr>
<tr class="separator:af190cf1c7f95a94d99c6c2a0ce438283"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a4e6a477fac54e065601188b249447458"><td class="memItemLeft" align="right" valign="top"><a id="a4e6a477fac54e065601188b249447458"></a>
+<tr class="memitem:a4e6a477fac54e065601188b249447458"><td class="memItemLeft" align="right" valign="top"><a id="a4e6a477fac54e065601188b249447458" name="a4e6a477fac54e065601188b249447458"></a>
char </td><td class="memItemRight" valign="bottom"><b>value</b> [CG_CONTROL_VALUE_MAX]</td></tr>
<tr class="separator:a4e6a477fac54e065601188b249447458"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:acf3b68d761df53681c1581573801bc1e"><td class="memItemLeft" align="right" valign="top"><a id="acf3b68d761df53681c1581573801bc1e"></a>
+<tr class="memitem:acf3b68d761df53681c1581573801bc1e"><td class="memItemLeft" align="right" valign="top"><a id="acf3b68d761df53681c1581573801bc1e" name="acf3b68d761df53681c1581573801bc1e"></a>
char * </td><td class="memItemRight" valign="bottom"><b>multiline_value</b></td></tr>
<tr class="separator:acf3b68d761df53681c1581573801bc1e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:acfb685aa3cb7d975807497f8a9e6b011"><td class="memItemLeft" align="right" valign="top"><a id="acfb685aa3cb7d975807497f8a9e6b011"></a>
+<tr class="memitem:acfb685aa3cb7d975807497f8a9e6b011"><td class="memItemLeft" align="right" valign="top"><a id="acfb685aa3cb7d975807497f8a9e6b011" name="acfb685aa3cb7d975807497f8a9e6b011"></a>
char * </td><td class="memItemRight" valign="bottom"><b>prev_name</b></td></tr>
<tr class="separator:acfb685aa3cb7d975807497f8a9e6b011"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:afeb6e8bc460a7077197fab8c2dd1e357"><td class="memItemLeft" align="right" valign="top"><a id="afeb6e8bc460a7077197fab8c2dd1e357"></a>
+<tr class="memitem:afeb6e8bc460a7077197fab8c2dd1e357"><td class="memItemLeft" align="right" valign="top"><a id="afeb6e8bc460a7077197fab8c2dd1e357" name="afeb6e8bc460a7077197fab8c2dd1e357"></a>
bool </td><td class="memItemRight" valign="bottom"><b>dirty</b></td></tr>
<tr class="separator:afeb6e8bc460a7077197fab8c2dd1e357"><td class="memSeparator" colspan="2"> </td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: controller_data Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">controller_data Struct Reference<div class="ingroups"><a class="el" href="group__group__iterators.html">3. Iterators</a></div></div> </div>
+ <div class="headertitle"><div class="title">controller_data Struct Reference<div class="ingroups"><a class="el" href="group__group__iterators.html">3. Iterators</a></div></div></div>
</div><!--header-->
<div class="contents">
<p><code>#include <<a class="el" href="iterators_8h_source.html">iterators.h</a>></code></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr class="memitem:a5474be4d8cc4553c94ca81c6a93f5a18"><td class="memItemLeft" align="right" valign="top">char </td><td class="memItemRight" valign="bottom"><a class="el" href="structcontroller__data.html#a5474be4d8cc4553c94ca81c6a93f5a18">name</a> [FILENAME_MAX]</td></tr>
<tr class="separator:a5474be4d8cc4553c94ca81c6a93f5a18"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="separator:a24be412cfb6c19f7a13a4bff9e55206e"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Detailed information about available controller. </p>
+<div class="textblock"><p >Detailed information about available controller. </p>
</div><h2 class="groupheader">Field Documentation</h2>
-<a id="a24be412cfb6c19f7a13a4bff9e55206e"></a>
+<a id="a24be412cfb6c19f7a13a4bff9e55206e" name="a24be412cfb6c19f7a13a4bff9e55206e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a24be412cfb6c19f7a13a4bff9e55206e">◆ </a></span>enabled</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Enabled flag. </p>
+<p >Enabled flag. </p>
</div>
</div>
-<a id="a25e316f55473ca2b333b0d7e0ca644b4"></a>
+<a id="a25e316f55473ca2b333b0d7e0ca644b4" name="a25e316f55473ca2b333b0d7e0ca644b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a25e316f55473ca2b333b0d7e0ca644b4">◆ </a></span>hierarchy</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Hierarchy ID. Controllers with the same hierarchy ID are mounted together as one hierarchy. Controllers with ID 0 are not currently mounted anywhere. </p>
+<p >Hierarchy ID. Controllers with the same hierarchy ID are mounted together as one hierarchy. Controllers with ID 0 are not currently mounted anywhere. </p>
</div>
</div>
-<a id="a5474be4d8cc4553c94ca81c6a93f5a18"></a>
+<a id="a5474be4d8cc4553c94ca81c6a93f5a18" name="a5474be4d8cc4553c94ca81c6a93f5a18"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5474be4d8cc4553c94ca81c6a93f5a18">◆ </a></span>name</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Controller name. </p>
+<p >Controller name. </p>
</div>
</div>
-<a id="acd075c0bb48062bf720b68d0a30116eb"></a>
+<a id="acd075c0bb48062bf720b68d0a30116eb" name="acd075c0bb48062bf720b68d0a30116eb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acd075c0bb48062bf720b68d0a30116eb">◆ </a></span>num_cgroups</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Number of groups. </p>
+<p >Number of groups. </p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: ext_cgroup_record Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">ext_cgroup_record Struct Reference</div> </div>
+ <div class="headertitle"><div class="title">ext_cgroup_record Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
-<tr class="memitem:af584e3085fe71c11d580c869e73adaaf"><td class="memItemLeft" align="right" valign="top"><a id="af584e3085fe71c11d580c869e73adaaf"></a>
+<tr class="memitem:af584e3085fe71c11d580c869e73adaaf"><td class="memItemLeft" align="right" valign="top"><a id="af584e3085fe71c11d580c869e73adaaf" name="af584e3085fe71c11d580c869e73adaaf"></a>
char </td><td class="memItemRight" valign="bottom"><b>name</b> [FILENAME_MAX]</td></tr>
<tr class="separator:af584e3085fe71c11d580c869e73adaaf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab928e3bb594a7a4f179346513b3a74d6"><td class="memItemLeft" align="right" valign="top"><a id="ab928e3bb594a7a4f179346513b3a74d6"></a>
+<tr class="memitem:ab928e3bb594a7a4f179346513b3a74d6"><td class="memItemLeft" align="right" valign="top"><a id="ab928e3bb594a7a4f179346513b3a74d6" name="ab928e3bb594a7a4f179346513b3a74d6"></a>
char </td><td class="memItemRight" valign="bottom"><b>controller</b> [FILENAME_MAX]</td></tr>
<tr class="separator:ab928e3bb594a7a4f179346513b3a74d6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ac0ce27357d53613324114f2b29a9e057"><td class="memItemLeft" align="right" valign="top"><a id="ac0ce27357d53613324114f2b29a9e057"></a>
+<tr class="memitem:ac0ce27357d53613324114f2b29a9e057"><td class="memItemLeft" align="right" valign="top"><a id="ac0ce27357d53613324114f2b29a9e057" name="ac0ce27357d53613324114f2b29a9e057"></a>
int </td><td class="memItemRight" valign="bottom"><b>h_number</b></td></tr>
<tr class="separator:ac0ce27357d53613324114f2b29a9e057"><td class="memSeparator" colspan="2"> </td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: parent_info Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">parent_info Struct Reference</div> </div>
+ <div class="headertitle"><div class="title">parent_info Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
-<tr class="memitem:afa3f57be368d34588a5d86ba70e7960a"><td class="memItemLeft" align="right" valign="top"><a id="afa3f57be368d34588a5d86ba70e7960a"></a>
+<tr class="memitem:afa3f57be368d34588a5d86ba70e7960a"><td class="memItemLeft" align="right" valign="top"><a id="afa3f57be368d34588a5d86ba70e7960a" name="afa3f57be368d34588a5d86ba70e7960a"></a>
__u64 </td><td class="memItemRight" valign="bottom"><b>timestamp</b></td></tr>
<tr class="separator:afa3f57be368d34588a5d86ba70e7960a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a2ab51886a7b2df1dd70fec0f8cc12fee"><td class="memItemLeft" align="right" valign="top"><a id="a2ab51886a7b2df1dd70fec0f8cc12fee"></a>
+<tr class="memitem:a2ab51886a7b2df1dd70fec0f8cc12fee"><td class="memItemLeft" align="right" valign="top"><a id="a2ab51886a7b2df1dd70fec0f8cc12fee" name="a2ab51886a7b2df1dd70fec0f8cc12fee"></a>
pid_t </td><td class="memItemRight" valign="bottom"><b>pid</b></td></tr>
<tr class="separator:a2ab51886a7b2df1dd70fec0f8cc12fee"><td class="memSeparator" colspan="2"> </td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: unchanged_pid Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">unchanged_pid Struct Reference</div> </div>
+ <div class="headertitle"><div class="title">unchanged_pid Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
-<tr class="memitem:a55061a3d9aeab8cb19e400469900e07f"><td class="memItemLeft" align="right" valign="top"><a id="a55061a3d9aeab8cb19e400469900e07f"></a>
+<tr class="memitem:a55061a3d9aeab8cb19e400469900e07f"><td class="memItemLeft" align="right" valign="top"><a id="a55061a3d9aeab8cb19e400469900e07f" name="a55061a3d9aeab8cb19e400469900e07f"></a>
pid_t </td><td class="memItemRight" valign="bottom"><b>pid</b></td></tr>
<tr class="separator:a55061a3d9aeab8cb19e400469900e07f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab2e37e20d584474f0c5f18b90a0f53a2"><td class="memItemLeft" align="right" valign="top"><a id="ab2e37e20d584474f0c5f18b90a0f53a2"></a>
+<tr class="memitem:ab2e37e20d584474f0c5f18b90a0f53a2"><td class="memItemLeft" align="right" valign="top"><a id="ab2e37e20d584474f0c5f18b90a0f53a2" name="ab2e37e20d584474f0c5f18b90a0f53a2"></a>
int </td><td class="memItemRight" valign="bottom"><b>flags</b></td></tr>
<tr class="separator:ab2e37e20d584474f0c5f18b90a0f53a2"><td class="memSeparator" colspan="2"> </td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
-.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}}
\ No newline at end of file
+.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:#666;-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}}
\ No newline at end of file
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: include/libcgroup/tasks.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
</div>
</div><!-- top -->
<div class="header">
- <div class="headertitle">
-<div class="title">tasks.h</div> </div>
+ <div class="headertitle"><div class="title">tasks.h</div></div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="preprocessor">#ifndef _LIBCGROUP_TASKS_H</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="preprocessor">#define _LIBCGROUP_TASKS_H</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  </div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#ifndef _LIBCGROUP_H_INSIDE</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="preprocessor">#error "Only <libcgroup.h> should be included directly."</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>  </div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#include <libcgroup/groups.h></span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#ifndef SWIG</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include <features.h></span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <stdbool.h></span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  </div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  </div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">enum</span> cgflags {</div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  CGFLAG_USECACHE = 0x01,</div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  CGFLAG_USE_TEMPLATE_CACHE = 0x02,</div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> };</div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">enum</span> cgroup_daemon_type {</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  CGROUP_DAEMON_UNCHANGE_CHILDREN = 0x1,</div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  CGROUP_DAEMON_CANCEL_UNCHANGE_PROCESS = 0x2,</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> };</div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keywordtype">int</span> <a class="code" href="group__group__tasks.html#ga43414ac2b1fc73bbb46b6278c7500188">cgroup_attach_task</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>);</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keywordtype">int</span> <a class="code" href="group__group__tasks.html#ga9c7532681986d156ac3f6bac1fcf6aab">cgroup_attach_task_pid</a>(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> *<a class="code" href="structcgroup.html">cgroup</a>, pid_t tid);</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keywordtype">int</span> <a class="code" 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 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 name="l00073"></a><span class="lineno"> 73</span>  </div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keywordtype">int</span> <a class="code" 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 name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordtype">char</span> **current_path);</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  </div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keywordtype">int</span> <a class="code" href="group__group__tasks.html#gad7fa5a2c4db08d31da5bfbecaf482d3d">cgroup_init_rules_cache</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  </div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keywordtype">int</span> <a class="code" href="group__group__tasks.html#gaf81ebd9cb5575c75b4c85f385ebda1ce">cgroup_reload_cached_rules</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  </div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keywordtype">void</span> <a class="code" href="group__group__tasks.html#gac4e3f29cfbdc3d77f08c9fe60857274a">cgroup_print_rules_config</a>(FILE *fp);</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  </div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="keywordtype">int</span> <a class="code" href="group__group__tasks.html#gafc69658b012b6f1c11ba078ffccd70a2">cgroup_change_all_cgroups</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  </div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="keywordtype">int</span> <a class="code" href="group__group__tasks.html#ga368e7b8e19b3943ab6fb50e76a09e6ea">cgroup_change_cgroup_flags</a>(uid_t uid, gid_t gid,</div>
-<div class="line"><a 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 name="l00157"></a><span class="lineno"> 157</span>  </div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="keywordtype">int</span> <a class="code" href="group__group__tasks.html#gae472183a7c9a37826ef15c77014c47fb">cgroup_change_cgroup_uid_gid_flags</a>(uid_t uid, gid_t gid,</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  pid_t pid, <span class="keywordtype">int</span> flags);</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  </div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="keywordtype">int</span> <a class="code" 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 name="l00184"></a><span class="lineno"> 184</span>  </div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="keywordtype">int</span> <a class="code" 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 name="l00204"></a><span class="lineno"> 204</span>  </div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> } <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  </div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="preprocessor">#endif </span><span class="comment">/* _LIBCGROUP_TASKS_H */</span><span class="preprocessor"></span></div>
+<div class="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:4166</div></div>
<div class="ttc" id="agroup__group__tasks_html_ga368e7b8e19b3943ab6fb50e76a09e6ea"><div class="ttname"><a href="group__group__tasks.html#ga368e7b8e19b3943ab6fb50e76a09e6ea">cgroup_change_cgroup_flags</a></div><div class="ttdeci">int cgroup_change_cgroup_flags(uid_t uid, gid_t gid, const char *procname, pid_t pid, int flags)</div><div class="ttdef"><b>Definition:</b> api.c:3936</div></div>
<div class="ttc" id="agroup__group__tasks_html_ga43414ac2b1fc73bbb46b6278c7500188"><div class="ttname"><a href="group__group__tasks.html#ga43414ac2b1fc73bbb46b6278c7500188">cgroup_attach_task</a></div><div class="ttdeci">int cgroup_attach_task(struct cgroup *cgroup)</div><div class="ttdef"><b>Definition:</b> api.c:1805</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: Todo List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
</div>
</div><!-- top -->
-<div class="PageDoc"><div class="header">
- <div class="headertitle">
-<div class="title">Todo List </div> </div>
+<div><div class="header">
+ <div class="headertitle"><div class="title">Todo List </div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><dl class="reflist">
<dt>Global <a class="el" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup</a> (struct cgroup *cgroup, int ignore_ownership)</dt>
<dd><a class="anchor" id="_todo000005"></a>what is ignore_ownership good for? </dd>
<dt>Global <a class="el" href="group__group__groups.html#ga90e1ce96f3cb540f7e82d076dd938f62">cgroup_create_cgroup_from_parent</a> (struct cgroup *cgroup, int ignore_ownership)</dt>
-<dd><p class="startdd"><a class="anchor" id="_todo000006"></a>what is this good for? Why the list of controllers added by <a class="el" href="group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130">cgroup_add_controller()</a> is not used, like in <a class="el" href="group__group__groups.html#gadb8e13df6064841d3c9707960f782fa7">cgroup_create_cgroup()</a>? I can't crate subgroup of root group in just one hierarchy with this function!</p>
+<dd><p class="startdd"><a class="anchor" id="_todo000006"></a>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!</p>
<p class="enddd"><a class="anchor" id="_todo000007"></a>what is ignore_ownership good for? </p>
</dd>
<dt>Global <a class="el" href="group__group__groups.html#ga1dca18434e5d6be30c28c556da94f565">cgroup_delete_cgroup</a> (struct cgroup *cgroup, int ignore_migration)</dt>
<dt>Global <a class="el" href="group__group__groups.html#ga92d27c9ff0d655838642a7aa68497596">cgroup_free_controllers</a> (struct cgroup *cgroup)</dt>
<dd><a class="anchor" id="_todo000004"></a>should this function be public??? </dd>
<dt>Global <a class="el" href="group__group__groups.html#gad4ba31fe5a8bba63b33b1ea339b849e6">cgroup_get_cgroup</a> (struct cgroup *cgroup)</dt>
-<dd><a class="anchor" id="_todo000009"></a>what is this function good for? Why is not considered only the list of controllers attached by <a class="el" href="group__group__groups.html#gaa2f9c2ac75fd7e56e5ec6fb970304130">cgroup_add_controller()</a>? What owners will return <a class="el" href="group__group__groups.html#ga007d21c304d9cc6e948dc0ae51ecfa86">cgroup_get_uid_gid()</a> if the group is in multiple hierarchies, each with different owner of tasks file? </dd>
+<dd><a class="anchor" id="_todo000009"></a>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>
<dt>Global <a class="el" href="group__group__groups.html#gafaa51e5ffe09f8ad05585a1d3b6f7fa9">cgroup_get_value_string</a> (struct <a class="el" href="structcgroup__controller.html">cgroup_controller</a> *controller, const char *name, char **value)</dt>
<dd><a class="anchor" id="_todo000010"></a>rephrase, it's too vague... How big is the buffer actually? </dd>
<dt>Global <a class="el" href="group__group__tasks.html#gad7fa5a2c4db08d31da5bfbecaf482d3d">cgroup_init_rules_cache</a> (void)</dt>
<dd><a class="anchor" id="_todo000015"></a>add parameter with the filename? </dd>
-<dt>Global <a class="el" href="group__group__groups.html#ga6cd4733e5982ac2c92ee3cb3dbd10a31">cgroup_new_cgroup</a> (const char *name)</dt>
+<dt>Global <a class="el" href="group__group__groups.html#gad34c82ead174988d418f3dcb003aaca7">cgroup_new_cgroup</a> (const char *name)</dt>
<dd><a class="anchor" id="_todo000003"></a>suggest one preferred way, either "/foo" or "foo". </dd>
<dt>Global <a class="el" href="group__group__iterators.html#ga7b19f10c06abb96d8c8ae88a04888a68">cgroup_walk_tree_begin</a> (const char *controller, const char *base_path, int depth, void **handle, struct <a class="el" href="structcgroup__file__info.html">cgroup_file_info</a> *info, int *base_level)</dt>
<dd><a class="anchor" id="_todo000012"></a>why base_level is not hidden in **handle? </dd>
</div><!-- PageDoc -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: src/tools/tools-common.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
</div>
</div><!-- top -->
<div class="header">
- <div class="headertitle">
-<div class="title">tools-common.h</div> </div>
+ <div class="headertitle"><div class="title">tools-common.h</div></div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright Red Hat, Inc. 2009</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * Author: Vivek Goyal <vgoyal@redhat.com></span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Jan Safranek <jsafrane@redhat.com></span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> *</span></div>
-<div class="line"><a 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 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 name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * as published by the Free Software Foundation.</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> *</span></div>
-<div class="line"><a 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 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 name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __TOOLS_COMMON</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  </div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#define __TOOLS_COMMON</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "config.h"</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <libcgroup.h></span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "../libcgroup-internal.h"</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#define cgroup_err(x...) cgroup_log(CGROUP_LOG_ERROR, x)</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#define cgroup_warn(x...) cgroup_log(CGROUP_LOG_WARNING, x)</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#define cgroup_info(x...) cgroup_log(CGROUP_LOG_INFO, x)</span></div>
-<div class="line"><a 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="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div>
-<div class="line"><a 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" href="structcgroup__group__spec.html">cgroup_group_spec</a> {</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keywordtype">char</span> path[FILENAME_MAX];</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keywordtype">char</span> *controllers[CG_CONTROLLER_MAX];</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> };</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  </div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
-<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="structcgroup__string__list.html"> 45</a></span> <span class="keyword">struct </span><a class="code" href="structcgroup__string__list.html">cgroup_string_list</a> {</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordtype">char</span> **items;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordtype">int</span> size;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordtype">int</span> count;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> };</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keywordtype">int</span> parse_cgroup_spec(<span class="keyword">struct</span> <a class="code" href="structcgroup__group__spec.html">cgroup_group_spec</a> **cdptr, <span class="keywordtype">char</span> *optarg,</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordtype">int</span> capacity);</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  </div>
-<div class="line"><a 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" href="structcgroup__group__spec.html">cgroup_group_spec</a> *cl);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  </div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  </div>
-<div class="line"><a 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" href="structcgroup__string__list.html">cgroup_string_list</a> *list,</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordtype">int</span> initial_size);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  </div>
-<div class="line"><a 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" href="structcgroup__string__list.html">cgroup_string_list</a> *list);</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  </div>
-<div class="line"><a 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" href="structcgroup__string__list.html">cgroup_string_list</a> *list,</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *item);</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  </div>
-<div class="line"><a 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" href="structcgroup__string__list.html">cgroup_string_list</a> *list,</div>
-<div class="line"><a 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 name="l00108"></a><span class="lineno"> 108</span>  </div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  </div>
-<div class="line"><a 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 name="l00117"></a><span class="lineno"> 117</span>  </div>
-<div class="line"><a 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 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 name="l00127"></a><span class="lineno"> 127</span>  </div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="preprocessor">#ifdef UNIT_TEST</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  </div>
-<div class="line"><a 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 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 name="l00137"></a><span class="lineno"> 137</span>  <span class="keyword">struct</span> <a class="code" href="structcontrol__value.html">control_value</a> * <span class="keyword">const</span> name_value);</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  </div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="preprocessor">#endif </span><span class="comment">/* UNIT_TEST */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  </div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> } <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  </div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="preprocessor">#endif </span><span class="comment">/* TOOLS_COMMON */</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">/*</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, x)</span></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, x)</span></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, x)</span></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="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="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="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:90</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcgroup: include/libcgroup/tools.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">libcgroup
</div>
</td>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
</div>
</div><!-- top -->
<div class="header">
- <div class="headertitle">
-<div class="title">tools.h</div> </div>
+ <div class="headertitle"><div class="title">tools.h</div></div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">/*</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * This library is free software; you can redistribute it and/or modify it</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * under the terms of version 2.1 of the GNU Lesser General Public License as</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * published by the Free Software Foundation.</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * This library is distributed in the hope that it will be useful, but WITHOUT</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * for more details.</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * You should have received a copy of the GNU Lesser General Public License</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * along with this library; if not, see <http://www.gnu.org/licenses>.</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#ifndef _LIBCGROUP_TOOLS_H</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#define _LIBCGROUP_TOOLS_H</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef _LIBCGROUP_H_INSIDE</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#error "Only <libcgroup.h> should be included directly."</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#ifndef SWIG</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <features.h></span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <sys/types.h></span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <stdbool.h></span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keywordtype">int</span> cgroup_cgxget(<span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> ** cg,</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">enum</span> cg_version_t version, <span class="keywordtype">bool</span> ignore_unmappable);</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keywordtype">int</span> cgroup_cgxset(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structcgroup.html">cgroup</a> * <span class="keyword">const</span> cg,</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keyword">enum</span> cg_version_t version, <span class="keywordtype">bool</span> ignore_unmappable);</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> } <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  </div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#endif </span><span class="comment">/* _LIBCGROUP_TOOLS_H */</span><span class="preprocessor"></span></div>
+<div class="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:114</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>