<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span><span class="preprocessor">#endif</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">#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:4746</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:5617</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:5004</div></div>
-<div class="ttc" id="agroup__group__iterators_html_ga18a3c6fe7da42b9da96ce34dce1e31b8"><div class="ttname"><a href="group__group__iterators.html#ga18a3c6fe7da42b9da96ce34dce1e31b8">cgroup_get_subsys_mount_point_begin</a></div><div class="ttdeci">int cgroup_get_subsys_mount_point_begin(const char *controller, void **handle, char *path)</div><div class="ttdef"><b>Definition:</b> api.c:5900</div></div>
+<div class="ttc" id="agroup__group__iterators_html_ga09a70990837a58e506a264f8c50d4cde"><div class="ttname"><a href="group__group__iterators.html#ga09a70990837a58e506a264f8c50d4cde">cgroup_walk_tree_end</a></div><div class="ttdeci">int cgroup_walk_tree_end(void **handle)</div><div class="ttdef"><b>Definition:</b> api.c:4808</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:5679</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:5066</div></div>
+<div class="ttc" id="agroup__group__iterators_html_ga18a3c6fe7da42b9da96ce34dce1e31b8"><div class="ttname"><a href="group__group__iterators.html#ga18a3c6fe7da42b9da96ce34dce1e31b8">cgroup_get_subsys_mount_point_begin</a></div><div class="ttdeci">int cgroup_get_subsys_mount_point_begin(const char *controller, void **handle, char *path)</div><div class="ttdef"><b>Definition:</b> api.c:5962</div></div>
<div class="ttc" id="agroup__group__iterators_html_ga29a572cbc0c07e2b02dfa0f1ac0067d3"><div class="ttname"><a href="group__group__iterators.html#ga29a572cbc0c07e2b02dfa0f1ac0067d3">cgroup_walk_type</a></div><div class="ttdeci">cgroup_walk_type</div><div class="ttdef"><b>Definition:</b> iterators.h:74</div></div>
-<div class="ttc" id="agroup__group__iterators_html_ga3d66997158cb8a334317923ad94cc789"><div class="ttname"><a href="group__group__iterators.html#ga3d66997158cb8a334317923ad94cc789">cgroup_get_subsys_mount_point_next</a></div><div class="ttdeci">int cgroup_get_subsys_mount_point_next(void **handle, char *path)</div><div class="ttdef"><b>Definition:</b> api.c:5931</div></div>
-<div class="ttc" id="agroup__group__iterators_html_ga3d98a04b29b1fe409db1114b7aa76809"><div class="ttname"><a href="group__group__iterators.html#ga3d98a04b29b1fe409db1114b7aa76809">cgroup_get_all_controller_next</a></div><div class="ttdeci">int cgroup_get_all_controller_next(void **handle, struct controller_data *info)</div><div class="ttdef"><b>Definition:</b> api.c:5631</div></div>
-<div class="ttc" id="agroup__group__iterators_html_ga527f5499b0aa04d325074435baebdff1"><div class="ttname"><a href="group__group__iterators.html#ga527f5499b0aa04d325074435baebdff1">cgroup_walk_tree_next</a></div><div class="ttdeci">int cgroup_walk_tree_next(int depth, void **handle, struct cgroup_file_info *info, int base_level)</div><div class="ttdef"><b>Definition:</b> api.c:4719</div></div>
+<div class="ttc" id="agroup__group__iterators_html_ga3d66997158cb8a334317923ad94cc789"><div class="ttname"><a href="group__group__iterators.html#ga3d66997158cb8a334317923ad94cc789">cgroup_get_subsys_mount_point_next</a></div><div class="ttdeci">int cgroup_get_subsys_mount_point_next(void **handle, char *path)</div><div class="ttdef"><b>Definition:</b> api.c:5993</div></div>
+<div class="ttc" id="agroup__group__iterators_html_ga3d98a04b29b1fe409db1114b7aa76809"><div class="ttname"><a href="group__group__iterators.html#ga3d98a04b29b1fe409db1114b7aa76809">cgroup_get_all_controller_next</a></div><div class="ttdeci">int cgroup_get_all_controller_next(void **handle, struct controller_data *info)</div><div class="ttdef"><b>Definition:</b> api.c:5693</div></div>
+<div class="ttc" id="agroup__group__iterators_html_ga527f5499b0aa04d325074435baebdff1"><div class="ttname"><a href="group__group__iterators.html#ga527f5499b0aa04d325074435baebdff1">cgroup_walk_tree_next</a></div><div class="ttdeci">int cgroup_walk_tree_next(int depth, void **handle, struct cgroup_file_info *info, int base_level)</div><div class="ttdef"><b>Definition:</b> api.c:4781</div></div>
<div class="ttc" id="agroup__group__iterators_html_ga55d2eac2af703794651d344c073566f5"><div class="ttname"><a href="group__group__iterators.html#ga55d2eac2af703794651d344c073566f5">CG_VALUE_MAX</a></div><div class="ttdeci">#define CG_VALUE_MAX</div><div class="ttdef"><b>Definition:</b> iterators.h:233</div></div>
-<div class="ttc" id="agroup__group__iterators_html_ga5f9f21138f9b18912a16b21a45b53c44"><div class="ttname"><a href="group__group__iterators.html#ga5f9f21138f9b18912a16b21a45b53c44">cgroup_get_controller_begin</a></div><div class="ttdeci">int cgroup_get_controller_begin(void **handle, struct cgroup_mount_point *info)</div><div class="ttdef"><b>Definition:</b> api.c:5153</div></div>
+<div class="ttc" id="agroup__group__iterators_html_ga5f9f21138f9b18912a16b21a45b53c44"><div class="ttname"><a href="group__group__iterators.html#ga5f9f21138f9b18912a16b21a45b53c44">cgroup_get_controller_begin</a></div><div class="ttdeci">int cgroup_get_controller_begin(void **handle, struct cgroup_mount_point *info)</div><div class="ttdef"><b>Definition:</b> api.c:5215</div></div>
<div class="ttc" id="agroup__group__iterators_html_ga608b4aa32e2db58fed34771a6a272444"><div class="ttname"><a href="group__group__iterators.html#ga608b4aa32e2db58fed34771a6a272444">cgroup_file_type</a></div><div class="ttdeci">cgroup_file_type</div><div class="ttdef"><b>Definition:</b> iterators.h:106</div></div>
-<div class="ttc" id="agroup__group__iterators_html_ga645ec7a6206dffb32667e7a0e148edc8"><div class="ttname"><a href="group__group__iterators.html#ga645ec7a6206dffb32667e7a0e148edc8">cgroup_walk_tree_set_flags</a></div><div class="ttdeci">int cgroup_walk_tree_set_flags(void **handle, int flags)</div><div class="ttdef"><b>Definition:</b> api.c:4832</div></div>
-<div class="ttc" id="agroup__group__iterators_html_ga7b19f10c06abb96d8c8ae88a04888a68"><div class="ttname"><a href="group__group__iterators.html#ga7b19f10c06abb96d8c8ae88a04888a68">cgroup_walk_tree_begin</a></div><div class="ttdeci">int cgroup_walk_tree_begin(const char *controller, const char *base_path, int depth, void **handle, struct cgroup_file_info *info, int *base_level)</div><div class="ttdef"><b>Definition:</b> api.c:4767</div></div>
-<div class="ttc" id="agroup__group__iterators_html_ga926b70423b6c087c21a14670cd23cd7d"><div class="ttname"><a href="group__group__iterators.html#ga926b70423b6c087c21a14670cd23cd7d">cgroup_get_controller_next</a></div><div class="ttdeci">int cgroup_get_controller_next(void **handle, struct cgroup_mount_point *info)</div><div class="ttdef"><b>Definition:</b> api.c:5120</div></div>
-<div class="ttc" id="agroup__group__iterators_html_ga9378ee0f1f6e65900df8e25b3d7ce236"><div class="ttname"><a href="group__group__iterators.html#ga9378ee0f1f6e65900df8e25b3d7ce236">cgroup_read_value_begin</a></div><div class="ttdeci">int cgroup_read_value_begin(const char *const controller, const char *path, const char *const name, void **handle, char *buffer, int max)</div><div class="ttdef"><b>Definition:</b> api.c:4928</div></div>
-<div class="ttc" id="agroup__group__iterators_html_ga9c9b0f1921c205bd25bfc6c1d20486eb"><div class="ttname"><a href="group__group__iterators.html#ga9c9b0f1921c205bd25bfc6c1d20486eb">cgroup_get_subsys_mount_point_end</a></div><div class="ttdeci">int cgroup_get_subsys_mount_point_end(void **handle)</div><div class="ttdef"><b>Definition:</b> api.c:5953</div></div>
-<div class="ttc" id="agroup__group__iterators_html_gab485cda2bc9640bacbf61f1953ae750c"><div class="ttname"><a href="group__group__iterators.html#gab485cda2bc9640bacbf61f1953ae750c">cgroup_get_controller_end</a></div><div class="ttdeci">int cgroup_get_controller_end(void **handle)</div><div class="ttdef"><b>Definition:</b> api.c:5104</div></div>
-<div class="ttc" id="agroup__group__iterators_html_gaba386d9db6cadc6ad85c2552f63447bb"><div class="ttname"><a href="group__group__iterators.html#gaba386d9db6cadc6ad85c2552f63447bb">cgroup_read_stats_end</a></div><div class="ttdeci">int cgroup_read_stats_end(void **handle)</div><div class="ttdef"><b>Definition:</b> api.c:4966</div></div>
-<div class="ttc" id="agroup__group__iterators_html_gaced2fe331f19d599a3270db2440847cc"><div class="ttname"><a href="group__group__iterators.html#gaced2fe331f19d599a3270db2440847cc">cgroup_read_value_next</a></div><div class="ttdeci">int cgroup_read_value_next(void **handle, char *buffer, int max)</div><div class="ttdef"><b>Definition:</b> api.c:4908</div></div>
-<div class="ttc" id="agroup__group__iterators_html_gad348f041e283860cbf6bcea567e23a21"><div class="ttname"><a href="group__group__iterators.html#gad348f041e283860cbf6bcea567e23a21">cgroup_read_value_end</a></div><div class="ttdeci">int cgroup_read_value_end(void **handle)</div><div class="ttdef"><b>Definition:</b> api.c:4892</div></div>
-<div class="ttc" id="agroup__group__iterators_html_gad48ef653388ca6739a9b6bbb9d7da82e"><div class="ttname"><a href="group__group__iterators.html#gad48ef653388ca6739a9b6bbb9d7da82e">cgroup_get_all_controller_begin</a></div><div class="ttdeci">int cgroup_get_all_controller_begin(void **handle, struct controller_data *info)</div><div class="ttdef"><b>Definition:</b> api.c:5660</div></div>
-<div class="ttc" id="agroup__group__iterators_html_gad7218154192f733120e1025cc19d0a36"><div class="ttname"><a href="group__group__iterators.html#gad7218154192f733120e1025cc19d0a36">cgroup_get_task_begin</a></div><div class="ttdeci">int cgroup_get_task_begin(const char *cgroup, const char *controller, void **handle, pid_t *pid)</div><div class="ttdef"><b>Definition:</b> api.c:5071</div></div>
-<div class="ttc" id="agroup__group__iterators_html_gaeb955e5f4da551268380b1271d478816"><div class="ttname"><a href="group__group__iterators.html#gaeb955e5f4da551268380b1271d478816">cgroup_get_task_end</a></div><div class="ttdeci">int cgroup_get_task_end(void **handle)</div><div class="ttdef"><b>Definition:</b> api.c:5035</div></div>
-<div class="ttc" id="agroup__group__iterators_html_gaf3a0364682b7449ddccfb0862bbb565e"><div class="ttname"><a href="group__group__iterators.html#gaf3a0364682b7449ddccfb0862bbb565e">cgroup_get_task_next</a></div><div class="ttdeci">int cgroup_get_task_next(void **handle, pid_t *pid)</div><div class="ttdef"><b>Definition:</b> api.c:5049</div></div>
-<div class="ttc" id="agroup__group__iterators_html_gaf95587508fc15d74fd5ed0df58024be7"><div class="ttname"><a href="group__group__iterators.html#gaf95587508fc15d74fd5ed0df58024be7">cgroup_read_stats_next</a></div><div class="ttdeci">int cgroup_read_stats_next(void **handle, struct cgroup_stat *stat)</div><div class="ttdef"><b>Definition:</b> api.c:4984</div></div>
+<div class="ttc" id="agroup__group__iterators_html_ga645ec7a6206dffb32667e7a0e148edc8"><div class="ttname"><a href="group__group__iterators.html#ga645ec7a6206dffb32667e7a0e148edc8">cgroup_walk_tree_set_flags</a></div><div class="ttdeci">int cgroup_walk_tree_set_flags(void **handle, int flags)</div><div class="ttdef"><b>Definition:</b> api.c:4894</div></div>
+<div class="ttc" id="agroup__group__iterators_html_ga7b19f10c06abb96d8c8ae88a04888a68"><div class="ttname"><a href="group__group__iterators.html#ga7b19f10c06abb96d8c8ae88a04888a68">cgroup_walk_tree_begin</a></div><div class="ttdeci">int cgroup_walk_tree_begin(const char *controller, const char *base_path, int depth, void **handle, struct cgroup_file_info *info, int *base_level)</div><div class="ttdef"><b>Definition:</b> api.c:4829</div></div>
+<div class="ttc" id="agroup__group__iterators_html_ga926b70423b6c087c21a14670cd23cd7d"><div class="ttname"><a href="group__group__iterators.html#ga926b70423b6c087c21a14670cd23cd7d">cgroup_get_controller_next</a></div><div class="ttdeci">int cgroup_get_controller_next(void **handle, struct cgroup_mount_point *info)</div><div class="ttdef"><b>Definition:</b> api.c:5182</div></div>
+<div class="ttc" id="agroup__group__iterators_html_ga9378ee0f1f6e65900df8e25b3d7ce236"><div class="ttname"><a href="group__group__iterators.html#ga9378ee0f1f6e65900df8e25b3d7ce236">cgroup_read_value_begin</a></div><div class="ttdeci">int cgroup_read_value_begin(const char *const controller, const char *path, const char *const name, void **handle, char *buffer, int max)</div><div class="ttdef"><b>Definition:</b> api.c:4990</div></div>
+<div class="ttc" id="agroup__group__iterators_html_ga9c9b0f1921c205bd25bfc6c1d20486eb"><div class="ttname"><a href="group__group__iterators.html#ga9c9b0f1921c205bd25bfc6c1d20486eb">cgroup_get_subsys_mount_point_end</a></div><div class="ttdeci">int cgroup_get_subsys_mount_point_end(void **handle)</div><div class="ttdef"><b>Definition:</b> api.c:6015</div></div>
+<div class="ttc" id="agroup__group__iterators_html_gab485cda2bc9640bacbf61f1953ae750c"><div class="ttname"><a href="group__group__iterators.html#gab485cda2bc9640bacbf61f1953ae750c">cgroup_get_controller_end</a></div><div class="ttdeci">int cgroup_get_controller_end(void **handle)</div><div class="ttdef"><b>Definition:</b> api.c:5166</div></div>
+<div class="ttc" id="agroup__group__iterators_html_gaba386d9db6cadc6ad85c2552f63447bb"><div class="ttname"><a href="group__group__iterators.html#gaba386d9db6cadc6ad85c2552f63447bb">cgroup_read_stats_end</a></div><div class="ttdeci">int cgroup_read_stats_end(void **handle)</div><div class="ttdef"><b>Definition:</b> api.c:5028</div></div>
+<div class="ttc" id="agroup__group__iterators_html_gaced2fe331f19d599a3270db2440847cc"><div class="ttname"><a href="group__group__iterators.html#gaced2fe331f19d599a3270db2440847cc">cgroup_read_value_next</a></div><div class="ttdeci">int cgroup_read_value_next(void **handle, char *buffer, int max)</div><div class="ttdef"><b>Definition:</b> api.c:4970</div></div>
+<div class="ttc" id="agroup__group__iterators_html_gad348f041e283860cbf6bcea567e23a21"><div class="ttname"><a href="group__group__iterators.html#gad348f041e283860cbf6bcea567e23a21">cgroup_read_value_end</a></div><div class="ttdeci">int cgroup_read_value_end(void **handle)</div><div class="ttdef"><b>Definition:</b> api.c:4954</div></div>
+<div class="ttc" id="agroup__group__iterators_html_gad48ef653388ca6739a9b6bbb9d7da82e"><div class="ttname"><a href="group__group__iterators.html#gad48ef653388ca6739a9b6bbb9d7da82e">cgroup_get_all_controller_begin</a></div><div class="ttdeci">int cgroup_get_all_controller_begin(void **handle, struct controller_data *info)</div><div class="ttdef"><b>Definition:</b> api.c:5722</div></div>
+<div class="ttc" id="agroup__group__iterators_html_gad7218154192f733120e1025cc19d0a36"><div class="ttname"><a href="group__group__iterators.html#gad7218154192f733120e1025cc19d0a36">cgroup_get_task_begin</a></div><div class="ttdeci">int cgroup_get_task_begin(const char *cgroup, const char *controller, void **handle, pid_t *pid)</div><div class="ttdef"><b>Definition:</b> api.c:5133</div></div>
+<div class="ttc" id="agroup__group__iterators_html_gaeb955e5f4da551268380b1271d478816"><div class="ttname"><a href="group__group__iterators.html#gaeb955e5f4da551268380b1271d478816">cgroup_get_task_end</a></div><div class="ttdeci">int cgroup_get_task_end(void **handle)</div><div class="ttdef"><b>Definition:</b> api.c:5097</div></div>
+<div class="ttc" id="agroup__group__iterators_html_gaf3a0364682b7449ddccfb0862bbb565e"><div class="ttname"><a href="group__group__iterators.html#gaf3a0364682b7449ddccfb0862bbb565e">cgroup_get_task_next</a></div><div class="ttdeci">int cgroup_get_task_next(void **handle, pid_t *pid)</div><div class="ttdef"><b>Definition:</b> api.c:5111</div></div>
+<div class="ttc" id="agroup__group__iterators_html_gaf95587508fc15d74fd5ed0df58024be7"><div class="ttname"><a href="group__group__iterators.html#gaf95587508fc15d74fd5ed0df58024be7">cgroup_read_stats_next</a></div><div class="ttdeci">int cgroup_read_stats_next(void **handle, struct cgroup_stat *stat)</div><div class="ttdef"><b>Definition:</b> api.c:5046</div></div>
<div class="ttc" id="agroup__group__iterators_html_gga29a572cbc0c07e2b02dfa0f1ac0067d3abf3c31227768960bd6622d2562aae3e1"><div class="ttname"><a href="group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3abf3c31227768960bd6622d2562aae3e1">CGROUP_WALK_TYPE_POST_DIR</a></div><div class="ttdeci">@ CGROUP_WALK_TYPE_POST_DIR</div><div class="ttdef"><b>Definition:</b> iterators.h:100</div></div>
<div class="ttc" id="agroup__group__iterators_html_gga29a572cbc0c07e2b02dfa0f1ac0067d3af865296e6a0e55cff574fbb132b9f913"><div class="ttname"><a href="group__group__iterators.html#gga29a572cbc0c07e2b02dfa0f1ac0067d3af865296e6a0e55cff574fbb132b9f913">CGROUP_WALK_TYPE_PRE_DIR</a></div><div class="ttdeci">@ CGROUP_WALK_TYPE_PRE_DIR</div><div class="ttdef"><b>Definition:</b> iterators.h:87</div></div>
<div class="ttc" id="agroup__group__iterators_html_gga608b4aa32e2db58fed34771a6a272444a24e202c59f318e63ad8cafcc1b4b102b"><div class="ttname"><a href="group__group__iterators.html#gga608b4aa32e2db58fed34771a6a272444a24e202c59f318e63ad8cafcc1b4b102b">CGROUP_FILE_TYPE_OTHER</a></div><div class="ttdeci">@ CGROUP_FILE_TYPE_OTHER</div><div class="ttdef"><b>Definition:</b> iterators.h:109</div></div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"><a class="line" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6"> 129</a></span> <span class="keywordtype">char</span> <a class="code hl_variable" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>[FILENAME_MAX];</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"><a class="line" href="structcg__mount__table__s.html#a9704fa3ec3674f6d433345ea52b6aeef"> 133</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structcg__mount__point.html">cg_mount_point</a> <a class="code hl_variable" href="structcg__mount__table__s.html#a9704fa3ec3674f6d433345ea52b6aeef">mount</a>;</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="keywordtype">int</span> index;</div>
-<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="keyword">enum</span> cg_version_t version;</div>
-<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span>};</div>
-<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> </div>
-<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"><a class="line" href="structcgroup__rules__data.html"> 138</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__rules__data.html">cgroup_rules_data</a> {</div>
-<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> pid_t pid; <span class="comment">/* pid of the process which needs to change group */</span></div>
-<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> </div>
-<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="comment">/* Details of user under consideration for destination cgroup */</span></div>
-<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keyword">struct </span>passwd *pw;</div>
-<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="comment">/* Gid of the process */</span></div>
-<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> gid_t gid;</div>
-<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span>};</div>
-<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> </div>
-<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span><span class="comment">/* A rule that maps UID/GID to a cgroup */</span></div>
-<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"><a class="line" href="structcgroup__rule.html"> 148</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__rule.html">cgroup_rule</a> {</div>
-<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> uid_t uid;</div>
-<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> gid_t gid;</div>
-<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <span class="keywordtype">bool</span> is_ignore;</div>
-<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <span class="keywordtype">char</span> *procname;</div>
-<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="keywordtype">char</span> username[LOGIN_NAME_MAX];</div>
-<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <span class="keywordtype">char</span> destination[FILENAME_MAX];</div>
-<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="keywordtype">char</span> *controllers[MAX_MNT_ELEMENTS];</div>
-<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__rule.html">cgroup_rule</a> *next;</div>
-<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span>};</div>
-<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> </div>
-<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span><span class="comment">/* Container for a list of rules */</span></div>
-<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"><a class="line" href="structcgroup__rule__list.html"> 160</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__rule__list.html">cgroup_rule_list</a> {</div>
-<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__rule.html">cgroup_rule</a> *head;</div>
-<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__rule.html">cgroup_rule</a> *tail;</div>
-<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <span class="keywordtype">int</span> len;</div>
-<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span>};</div>
-<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> </div>
-<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span><span class="comment">/*The walk_tree handle */</span></div>
-<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"><a class="line" href="structcgroup__tree__handle.html"> 167</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__tree__handle.html">cgroup_tree_handle</a> {</div>
-<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> FTS *fts;</div>
-<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <span class="keywordtype">int</span> flags;</div>
-<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span>};</div>
-<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> </div>
-<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"><a class="line" href="structcgroup__dictionary__item.html"> 179</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> {</div>
-<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *name;</div>
-<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *value;</div>
-<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> *next;</div>
-<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span>};</div>
-<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> </div>
-<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span><span class="comment">/* Flags for cgroup_dictionary_create */</span></div>
-<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span><span class="preprocessor">#define CG_DICT_DONT_FREE_ITEMS 1</span></div>
-<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> </div>
-<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"><a class="line" href="structcgroup__dictionary.html"> 202</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__dictionary.html">cgroup_dictionary</a> {</div>
-<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> *head;</div>
-<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> *tail;</div>
-<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> <span class="keywordtype">int</span> flags;</div>
-<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span>};</div>
-<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> </div>
-<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"><a class="line" href="structcgroup__dictionary__iterator.html"> 209</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__dictionary__iterator.html">cgroup_dictionary_iterator</a> {</div>
-<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> *item;</div>
-<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span>};</div>
-<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> </div>
-<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span><span class="keyword">extern</span> __thread <span class="keywordtype">int</span> last_errno;</div>
-<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> </div>
-<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span><span class="keyword">extern</span> jmp_buf parser_error_env;</div>
-<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> </div>
-<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span><span class="comment">/* Internal API */</span></div>
-<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span><span class="keywordtype">char</span> *cg_build_path(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">char</span> *path, <span class="keyword">const</span> <span class="keywordtype">char</span> *type);</div>
-<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span><span class="keywordtype">int</span> cgroup_get_uid_gid_from_procfs(pid_t pid, uid_t *euid, gid_t *egid);</div>
-<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span><span class="keywordtype">int</span> cgroup_get_procname_from_procfs(pid_t pid, <span class="keywordtype">char</span> **procname);</div>
-<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span><span class="keywordtype">int</span> cg_mkdir_p(<span class="keyword">const</span> <span class="keywordtype">char</span> *path);</div>
-<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span><span class="keyword">struct </span><a class="code hl_struct" href="structcgroup.html">cgroup</a> *create_cgroup_from_name_value_pairs(<span class="keyword">const</span> <span class="keywordtype">char</span> *name,</div>
-<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcontrol__value.html">control_value</a> *name_value, <span class="keywordtype">int</span> nv_number);</div>
-<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span><span class="keywordtype">void</span> init_cgroup_table(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *cgroups, <span class="keywordtype">size_t</span> count);</div>
-<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> </div>
-<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span><span class="comment">/*</span></div>
-<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span><span class="comment"> * Main mounting structures</span></div>
-<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span><span class="comment"> */</span></div>
-<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span><span class="keyword">extern</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcg__mount__table__s.html">cg_mount_table_s</a> cg_mount_table[CG_CONTROLLER_MAX];</div>
-<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span><span class="keyword">extern</span> pthread_rwlock_t cg_mount_table_lock;</div>
-<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> </div>
-<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span><span class="comment">/*</span></div>
-<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span><span class="comment"> * config related structures</span></div>
-<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span><span class="comment"> */</span></div>
-<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> </div>
-<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span><span class="keyword">extern</span> __thread <span class="keywordtype">char</span> *cg_namespace_table[CG_CONTROLLER_MAX];</div>
-<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> </div>
-<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span><span class="comment">/*</span></div>
-<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span><span class="comment"> * config related API</span></div>
-<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span><span class="comment"> */</span></div>
-<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span><span class="keywordtype">int</span> cgroup_config_insert_cgroup(<span class="keywordtype">char</span> *cg_name);</div>
-<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span><span class="keywordtype">int</span> cgroup_config_parse_controller_options(<span class="keywordtype">char</span> *controller,</div>
-<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__dictionary.html">cgroup_dictionary</a> *values);</div>
-<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span><span class="keywordtype">int</span> template_config_insert_cgroup(<span class="keywordtype">char</span> *cg_name);</div>
-<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span><span class="keywordtype">int</span> template_config_parse_controller_options(<span class="keywordtype">char</span> *controller,</div>
-<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__dictionary.html">cgroup_dictionary</a> *values);</div>
-<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span><span class="keywordtype">int</span> template_config_group_task_perm(<span class="keywordtype">char</span> *perm_type, <span class="keywordtype">char</span> *value);</div>
-<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span><span class="keywordtype">int</span> template_config_group_admin_perm(<span class="keywordtype">char</span> *perm_type, <span class="keywordtype">char</span> *value);</div>
-<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span><span class="keywordtype">int</span> cgroup_config_group_task_perm(<span class="keywordtype">char</span> *perm_type, <span class="keywordtype">char</span> *value);</div>
-<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span><span class="keywordtype">int</span> cgroup_config_group_admin_perm(<span class="keywordtype">char</span> *perm_type, <span class="keywordtype">char</span> *value);</div>
-<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span><span class="keywordtype">int</span> cgroup_config_insert_into_mount_table(<span class="keywordtype">char</span> *<a class="code hl_variable" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>, <span class="keywordtype">char</span> *mount_point);</div>
-<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span><span class="keywordtype">int</span> cgroup_config_insert_into_namespace_table(<span class="keywordtype">char</span> *<a class="code hl_variable" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>, <span class="keywordtype">char</span> *mount_point);</div>
-<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span><span class="keywordtype">void</span> cgroup_config_cleanup_mount_table(<span class="keywordtype">void</span>);</div>
-<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span><span class="keywordtype">void</span> cgroup_config_cleanup_namespace_table(<span class="keywordtype">void</span>);</div>
-<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span><span class="keywordtype">int</span> cgroup_config_define_default(<span class="keywordtype">void</span>);</div>
-<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> </div>
-<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span><span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_create(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__dictionary.html">cgroup_dictionary</a> **dict,</div>
-<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> <span class="keywordtype">int</span> flags);</div>
-<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span><span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_add(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__dictionary.html">cgroup_dictionary</a> *dict,</div>
-<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code hl_variable" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *value);</div>
-<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span><span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_free(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__dictionary.html">cgroup_dictionary</a> *dict);</div>
-<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> </div>
-<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span><span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_iterator_begin(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__dictionary.html">cgroup_dictionary</a> *dict,</div>
-<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> <span class="keywordtype">void</span> **handle, <span class="keyword">const</span> <span class="keywordtype">char</span> **<a class="code hl_variable" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> **value);</div>
-<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span><span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_iterator_next(<span class="keywordtype">void</span> **handle,</div>
-<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> <span class="keyword">const</span> <span class="keywordtype">char</span> **<a class="code hl_variable" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> **value);</div>
-<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span><span class="keyword">extern</span> <span class="keywordtype">void</span> cgroup_dictionary_iterator_end(<span class="keywordtype">void</span> **handle);</div>
-<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> </div>
-<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span><span class="keywordtype">int</span> cg_chmod_path(<span class="keyword">const</span> <span class="keywordtype">char</span> *path, mode_t mode, <span class="keywordtype">int</span> owner_is_umask);</div>
-<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> </div>
-<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span><span class="keywordtype">int</span> cgroup_build_tasks_procs_path(<span class="keywordtype">char</span> * <span class="keyword">const</span> path,</div>
-<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> <span class="keywordtype">size_t</span> path_sz, <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> cg_name,</div>
-<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> ctrl_name);</div>
-<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> </div>
-<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span><span class="keywordtype">char</span> *cg_build_path_locked(<span class="keyword">const</span> <span class="keywordtype">char</span> *setting, <span class="keywordtype">char</span> *path,</div>
-<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *controller);</div>
-<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> </div>
-<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span><span class="keywordtype">int</span> cgroup_fill_cgc(<span class="keyword">struct</span> dirent *ctrl_dir, <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup.html">cgroup</a> *<a class="code hl_struct" href="structcgroup.html">cgroup</a>,</div>
-<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *cgc, <span class="keywordtype">int</span> cg_index);</div>
-<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span> </div>
-<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span><span class="keywordtype">int</span> cgroup_test_subsys_mounted(<span class="keyword">const</span> <span class="keywordtype">char</span> *ctrl_name);</div>
-<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span> </div>
-<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span><span class="keywordtype">int</span> cgroup_copy_controller_values(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> dst,</div>
-<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> src);</div>
-<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> </div>
-<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span><span class="keywordtype">int</span> cgroup_remove_value(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> controller,</div>
-<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> <a class="code hl_variable" href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">name</a>);</div>
-<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span> </div>
-<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span><span class="keywordtype">void</span> cgroup_free_controller(<span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> *ctrl);</div>
-<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span> </div>
-<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span><span class="preprocessor">#ifdef UNIT_TEST</span></div>
-<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span> </div>
-<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span><span class="preprocessor">#define TEST_PROC_PID_CGROUP_FILE "test-procpidcgroup"</span></div>
-<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span> </div>
-<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"> 393</span><span class="keywordtype">int</span> cgroup_parse_rules_options(<span class="keywordtype">char</span> *options,</div>
-<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__rule.html">cgroup_rule</a> * <span class="keyword">const</span> rule);</div>
-<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</span> </div>
-<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</span><span class="keywordtype">int</span> cg_get_cgroups_from_proc_cgroups(pid_t pid, <span class="keywordtype">char</span> *cgroup_list[],</div>
-<div class="line"><a id="l00397" name="l00397"></a><span class="lineno"> 397</span> <span class="keywordtype">char</span> *controller_list[],</div>
-<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"> 398</span> <span class="keywordtype">int</span> list_len);</div>
-<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"> 399</span> </div>
-<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"> 400</span><span class="keywordtype">bool</span> cgroup_compare_ignore_rule(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__rule.html">cgroup_rule</a> * <span class="keyword">const</span> rule,</div>
-<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span> pid_t pid, <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> procname);</div>
-<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"> 402</span> </div>
-<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span><span class="keywordtype">bool</span> cgroup_compare_wildcard_procname(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> rule_procname,</div>
-<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> procname);</div>
-<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span> </div>
-<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span><span class="keywordtype">int</span> cgroup_process_v1_mnt(<span class="keywordtype">char</span> *controllers[], <span class="keyword">struct</span> mntent *ent,</div>
-<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span> <span class="keywordtype">int</span> *mnt_tbl_idx);</div>
-<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span> </div>
-<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"> 409</span><span class="keywordtype">int</span> cgroup_process_v2_mnt(<span class="keyword">struct</span> mntent *ent, <span class="keywordtype">int</span> *mnt_tbl_idx);</div>
-<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"> 410</span> </div>
-<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"> 411</span><span class="keywordtype">int</span> cgroup_set_values_recursive(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> base,</div>
-<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</span> <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code hl_struct" href="structcgroup__controller.html">cgroup_controller</a> * <span class="keyword">const</span> controller,</div>
-<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"> 413</span> <span class="keywordtype">bool</span> ignore_non_dirty_failures);</div>
-<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"> 414</span> </div>
-<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</span><span class="keywordtype">int</span> cgroup_chown_chmod_tasks(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> cg_path,</div>
-<div class="line"><a id="l00416" name="l00416"></a><span class="lineno"> 416</span> uid_t uid, gid_t gid, mode_t fperm);</div>
-<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"> 417</span> </div>
-<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"> 418</span><span class="keywordtype">int</span> cgroupv2_subtree_control(<span class="keyword">const</span> <span class="keywordtype">char</span> *path, <span class="keyword">const</span> <span class="keywordtype">char</span> *ctrl_name,</div>
-<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"> 419</span> <span class="keywordtype">bool</span> enable);</div>
-<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</span> </div>
-<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span><span class="keywordtype">int</span> cgroupv2_get_subtree_control(<span class="keyword">const</span> <span class="keywordtype">char</span> *path,</div>
-<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *ctrl_name,</div>
-<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span> <span class="keywordtype">bool</span> * <span class="keyword">const</span> enabled);</div>
-<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span> </div>
-<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"> 425</span><span class="keywordtype">int</span> cgroupv2_controller_enabled(<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> cg_name,</div>
-<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"> 426</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> ctrl_name);</div>
-<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"> 427</span> </div>
-<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span><span class="preprocessor">#endif </span><span class="comment">/* UNIT_TEST */</span><span class="preprocessor"></span></div>
-<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span> </div>
-<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span><span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span>} <span class="comment">/* extern "C" */</span></div>
-<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"> 432</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span> </div>
-<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"> 434</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="keywordtype">int</span> shared_mnt;</div>
+<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="keyword">enum</span> cg_version_t version;</div>
+<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span>};</div>
+<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> </div>
+<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"><a class="line" href="structcgroup__rules__data.html"> 139</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="l00140" name="l00140"></a><span class="lineno"> 140</span> pid_t pid; <span class="comment">/* pid of the process which needs to change group */</span></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> <span class="comment">/* Details of user under consideration for destination cgroup */</span></div>
+<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="keyword">struct </span>passwd *pw;</div>
+<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="comment">/* Gid of the process */</span></div>
+<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> gid_t gid;</div>
+<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span>};</div>
+<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> </div>
+<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span><span class="comment">/* A rule that maps UID/GID to a cgroup */</span></div>
+<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"><a class="line" href="structcgroup__rule.html"> 149</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="l00150" name="l00150"></a><span class="lineno"> 150</span> uid_t uid;</div>
+<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> gid_t gid;</div>
+<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <span class="keywordtype">bool</span> is_ignore;</div>
+<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="keywordtype">char</span> *procname;</div>
+<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <span class="keywordtype">char</span> username[LOGIN_NAME_MAX];</div>
+<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="keywordtype">char</span> destination[FILENAME_MAX];</div>
+<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keywordtype">char</span> *controllers[MAX_MNT_ELEMENTS];</div>
+<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</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="l00158" name="l00158"></a><span class="lineno"> 158</span>};</div>
+<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> </div>
+<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span><span class="comment">/* Container for a list of rules */</span></div>
+<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"><a class="line" href="structcgroup__rule__list.html"> 161</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="l00162" name="l00162"></a><span class="lineno"> 162</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__rule.html">cgroup_rule</a> *head;</div>
+<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__rule.html">cgroup_rule</a> *tail;</div>
+<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <span class="keywordtype">int</span> len;</div>
+<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span>};</div>
+<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> </div>
+<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span><span class="comment">/*The walk_tree handle */</span></div>
+<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"><a class="line" href="structcgroup__tree__handle.html"> 168</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="l00169" name="l00169"></a><span class="lineno"> 169</span> FTS *fts;</div>
+<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <span class="keywordtype">int</span> flags;</div>
+<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span>};</div>
+<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> </div>
+<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"><a class="line" href="structcgroup__dictionary__item.html"> 180</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="l00181" name="l00181"></a><span class="lineno"> 181</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *name;</div>
+<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *value;</div>
+<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</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="l00184" name="l00184"></a><span class="lineno"> 184</span>};</div>
+<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> </div>
+<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span><span class="comment">/* Flags for cgroup_dictionary_create */</span></div>
+<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span><span class="preprocessor">#define CG_DICT_DONT_FREE_ITEMS 1</span></div>
+<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> </div>
+<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"><a class="line" href="structcgroup__dictionary.html"> 203</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="l00204" name="l00204"></a><span class="lineno"> 204</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> *head;</div>
+<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</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="l00206" name="l00206"></a><span class="lineno"> 206</span> <span class="keywordtype">int</span> flags;</div>
+<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span>};</div>
+<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> </div>
+<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"><a class="line" href="structcgroup__dictionary__iterator.html"> 210</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="l00211" name="l00211"></a><span class="lineno"> 211</span> <span class="keyword">struct </span><a class="code hl_struct" href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a> *item;</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> </div>
+<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span><span class="keyword">extern</span> __thread <span class="keywordtype">int</span> last_errno;</div>
+<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> </div>
+<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span><span class="keyword">extern</span> jmp_buf parser_error_env;</div>
+<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> </div>
+<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span><span class="comment">/* Internal API */</span></div>
+<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</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="l00226" name="l00226"></a><span class="lineno"> 226</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="l00227" name="l00227"></a><span class="lineno"> 227</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="l00228" name="l00228"></a><span class="lineno"> 228</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="l00229" name="l00229"></a><span class="lineno"> 229</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="l00230" name="l00230"></a><span class="lineno"> 230</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="l00231" name="l00231"></a><span class="lineno"> 231</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="l00232" name="l00232"></a><span class="lineno"> 232</span> </div>
+<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span><span class="comment">/*</span></div>
+<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span><span class="comment"> * Main mounting structures</span></div>
+<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span><span class="comment"> */</span></div>
+<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</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="l00237" name="l00237"></a><span class="lineno"> 237</span><span class="keyword">extern</span> pthread_rwlock_t cg_mount_table_lock;</div>
+<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> </div>
+<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span><span class="comment">/*</span></div>
+<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span><span class="comment"> * config related structures</span></div>
+<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span><span class="comment"> */</span></div>
+<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> </div>
+<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span><span class="keyword">extern</span> __thread <span class="keywordtype">char</span> *cg_namespace_table[CG_CONTROLLER_MAX];</div>
+<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> </div>
+<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span><span class="comment">/*</span></div>
+<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span><span class="comment"> * config related API</span></div>
+<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span><span class="comment"> */</span></div>
+<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span><span class="keywordtype">int</span> cgroup_config_insert_cgroup(<span class="keywordtype">char</span> *cg_name);</div>
+<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span><span class="keywordtype">int</span> cgroup_config_parse_controller_options(<span class="keywordtype">char</span> *controller,</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__dictionary.html">cgroup_dictionary</a> *values);</div>
+<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span><span class="keywordtype">int</span> template_config_insert_cgroup(<span class="keywordtype">char</span> *cg_name);</div>
+<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span><span class="keywordtype">int</span> template_config_parse_controller_options(<span class="keywordtype">char</span> *controller,</div>
+<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</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="l00254" name="l00254"></a><span class="lineno"> 254</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="l00255" name="l00255"></a><span class="lineno"> 255</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="l00256" name="l00256"></a><span class="lineno"> 256</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="l00257" name="l00257"></a><span class="lineno"> 257</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="l00258" name="l00258"></a><span class="lineno"> 258</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="l00259" name="l00259"></a><span class="lineno"> 259</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="l00260" name="l00260"></a><span class="lineno"> 260</span><span class="keywordtype">void</span> cgroup_config_cleanup_mount_table(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span><span class="keywordtype">void</span> cgroup_config_cleanup_namespace_table(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span><span class="keywordtype">int</span> cgroup_config_define_default(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> </div>
+<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</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="l00268" name="l00268"></a><span class="lineno"> 268</span> <span class="keywordtype">int</span> flags);</div>
+<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</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="l00273" name="l00273"></a><span class="lineno"> 273</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="l00278" name="l00278"></a><span class="lineno"> 278</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="l00279" name="l00279"></a><span class="lineno"> 279</span> </div>
+<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span><span class="keyword">extern</span> <span class="keywordtype">int</span> cgroup_dictionary_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="l00285" name="l00285"></a><span class="lineno"> 285</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="l00289" name="l00289"></a><span class="lineno"> 289</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="l00290" name="l00290"></a><span class="lineno"> 290</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="l00294" name="l00294"></a><span class="lineno"> 294</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="l00295" name="l00295"></a><span class="lineno"> 295</span> </div>
+<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</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="l00306" name="l00306"></a><span class="lineno"> 306</span> </div>
+<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</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="l00317" name="l00317"></a><span class="lineno"> 317</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="l00318" name="l00318"></a><span class="lineno"> 318</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> ctrl_name);</div>
+<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> </div>
+<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</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="l00332" name="l00332"></a><span class="lineno"> 332</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *controller);</div>
+<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> </div>
+<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</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="l00346" name="l00346"></a><span class="lineno"> 346</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="l00347" name="l00347"></a><span class="lineno"> 347</span> </div>
+<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</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="l00355" name="l00355"></a><span class="lineno"> 355</span> </div>
+<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</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="l00365" name="l00365"></a><span class="lineno"> 365</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="l00366" name="l00366"></a><span class="lineno"> 366</span> </div>
+<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</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="l00375" name="l00375"></a><span class="lineno"> 375</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="l00376" name="l00376"></a><span class="lineno"> 376</span> </div>
+<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</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="l00384" name="l00384"></a><span class="lineno"> 384</span> </div>
+<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span><span class="preprocessor">#ifdef UNIT_TEST</span></div>
+<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span> </div>
+<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span><span class="preprocessor">#define TEST_PROC_PID_CGROUP_FILE "test-procpidcgroup"</span></div>
+<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"> 393</span> </div>
+<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span><span class="keywordtype">int</span> cgroup_parse_rules_options(<span class="keywordtype">char</span> *options,</div>
+<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</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="l00396" name="l00396"></a><span class="lineno"> 396</span> </div>
+<div class="line"><a id="l00397" name="l00397"></a><span class="lineno"> 397</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="l00398" name="l00398"></a><span class="lineno"> 398</span> <span class="keywordtype">char</span> *controller_list[],</div>
+<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"> 399</span> <span class="keywordtype">int</span> list_len);</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">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="l00402" name="l00402"></a><span class="lineno"> 402</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="l00403" name="l00403"></a><span class="lineno"> 403</span> </div>
+<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</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="l00405" name="l00405"></a><span class="lineno"> 405</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> procname);</div>
+<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span> </div>
+<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span><span class="keywordtype">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="l00408" name="l00408"></a><span class="lineno"> 408</span> <span class="keywordtype">int</span> *mnt_tbl_idx);</div>
+<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"> 409</span> </div>
+<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"> 410</span><span class="keywordtype">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="l00411" name="l00411"></a><span class="lineno"> 411</span> </div>
+<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</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="l00413" name="l00413"></a><span class="lineno"> 413</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="l00414" name="l00414"></a><span class="lineno"> 414</span> <span class="keywordtype">bool</span> ignore_non_dirty_failures);</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_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="l00417" name="l00417"></a><span class="lineno"> 417</span> uid_t uid, gid_t gid, mode_t fperm);</div>
+<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"> 418</span> </div>
+<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"> 419</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="l00420" name="l00420"></a><span class="lineno"> 420</span> <span class="keywordtype">bool</span> enable);</div>
+<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span> </div>
+<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span><span class="keywordtype">int</span> cgroupv2_get_subtree_control(<span class="keyword">const</span> <span class="keywordtype">char</span> *path,</div>
+<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span> <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> * <span class="keyword">const</span> enabled);</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_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="l00427" name="l00427"></a><span class="lineno"> 427</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> ctrl_name);</div>
+<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span> </div>
+<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span><span class="preprocessor">#endif </span><span class="comment">/* UNIT_TEST */</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span> </div>
+<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"> 432</span>} <span class="comment">/* extern "C" */</span></div>
+<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span><span class="preprocessor">#endif</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">#endif</span></div>
<div class="ttc" id="astructcg__mount__point_html"><div class="ttname"><a href="structcg__mount__point.html">cg_mount_point</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:122</div></div>
<div class="ttc" id="astructcg__mount__table__s_html"><div class="ttname"><a href="structcg__mount__table__s.html">cg_mount_table_s</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:127</div></div>
<div class="ttc" id="astructcg__mount__table__s_html_a9704fa3ec3674f6d433345ea52b6aeef"><div class="ttname"><a href="structcg__mount__table__s.html#a9704fa3ec3674f6d433345ea52b6aeef">cg_mount_table_s::mount</a></div><div class="ttdeci">struct cg_mount_point mount</div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:133</div></div>
<div class="ttc" id="astructcg__mount__table__s_html_aa9b2cc62fb6cb35334f3d85d660c9fa6"><div class="ttname"><a href="structcg__mount__table__s.html#aa9b2cc62fb6cb35334f3d85d660c9fa6">cg_mount_table_s::name</a></div><div class="ttdeci">char name[FILENAME_MAX]</div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:129</div></div>
<div class="ttc" id="astructcgroup__controller_html"><div class="ttname"><a href="structcgroup__controller.html">cgroup_controller</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:101</div></div>
-<div class="ttc" id="astructcgroup__dictionary__item_html"><div class="ttname"><a href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:179</div></div>
-<div class="ttc" id="astructcgroup__dictionary__iterator_html"><div class="ttname"><a href="structcgroup__dictionary__iterator.html">cgroup_dictionary_iterator</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:209</div></div>
-<div class="ttc" id="astructcgroup__dictionary_html"><div class="ttname"><a href="structcgroup__dictionary.html">cgroup_dictionary</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:202</div></div>
-<div class="ttc" id="astructcgroup__rule__list_html"><div class="ttname"><a href="structcgroup__rule__list.html">cgroup_rule_list</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:160</div></div>
-<div class="ttc" id="astructcgroup__rule_html"><div class="ttname"><a href="structcgroup__rule.html">cgroup_rule</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:148</div></div>
-<div class="ttc" id="astructcgroup__rules__data_html"><div class="ttname"><a href="structcgroup__rules__data.html">cgroup_rules_data</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:138</div></div>
-<div class="ttc" id="astructcgroup__tree__handle_html"><div class="ttname"><a href="structcgroup__tree__handle.html">cgroup_tree_handle</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:167</div></div>
+<div class="ttc" id="astructcgroup__dictionary__item_html"><div class="ttname"><a href="structcgroup__dictionary__item.html">cgroup_dictionary_item</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:180</div></div>
+<div class="ttc" id="astructcgroup__dictionary__iterator_html"><div class="ttname"><a href="structcgroup__dictionary__iterator.html">cgroup_dictionary_iterator</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:210</div></div>
+<div class="ttc" id="astructcgroup__dictionary_html"><div class="ttname"><a href="structcgroup__dictionary.html">cgroup_dictionary</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:203</div></div>
+<div class="ttc" id="astructcgroup__rule__list_html"><div class="ttname"><a href="structcgroup__rule__list.html">cgroup_rule_list</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:161</div></div>
+<div class="ttc" id="astructcgroup__rule_html"><div class="ttname"><a href="structcgroup__rule.html">cgroup_rule</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:149</div></div>
+<div class="ttc" id="astructcgroup__rules__data_html"><div class="ttname"><a href="structcgroup__rules__data.html">cgroup_rules_data</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:139</div></div>
+<div class="ttc" id="astructcgroup__tree__handle_html"><div class="ttname"><a href="structcgroup__tree__handle.html">cgroup_tree_handle</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:168</div></div>
<div class="ttc" id="astructcgroup_html"><div class="ttname"><a href="structcgroup.html">cgroup</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:109</div></div>
<div class="ttc" id="astructcontrol__value_html"><div class="ttname"><a href="structcontrol__value.html">control_value</a></div><div class="ttdef"><b>Definition:</b> libcgroup-internal.h:85</div></div>
</div><!-- fragment --></div><!-- contents -->