You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by gi...@apache.org on 2018/05/25 21:36:10 UTC

[02/14] mesos-site git commit: Updated the website built from mesos SHA: ee6c6cf.

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/cb5216c3/content/api/latest/c++/src_2linux_2fs_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/src_2linux_2fs_8hpp_source.html b/content/api/latest/c++/src_2linux_2fs_8hpp_source.html
index 1e772f4..87c0233 100644
--- a/content/api/latest/c++/src_2linux_2fs_8hpp_source.html
+++ b/content/api/latest/c++/src_2linux_2fs_8hpp_source.html
@@ -52,7 +52,7 @@
 <div class="title">fs.hpp</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="src_2linux_2fs_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">// or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">// regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006"></a><s
 pan class="lineno">    6</span>&#160;<span class="comment">// &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">// with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">//     http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">// di
 stributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#ifndef __FS_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#define __FS_HPP__</span></div><div class="line"><a name="l00019"></a
 ><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;mntent.h&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;sys/mount.h&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;sys/types.h&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;sys/vfs.h&gt;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno">   
 27</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>&gt;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="option_8hpp.html">stout/option.hpp</a>&gt;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="try_8hpp.html">stout/try.hpp</a>&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="comment">// Define relevant MS_* flags for old includes.</span></div><div class
 ="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="comment">// This is taken from the enum in sys/mount.h.</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#ifndef MS_RDONLY</span></div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a8e7a9d539a0b19e807c0886d6e068ebe">   36</a></span>&#160;<span class="preprocessor">#define MS_RDONLY 1</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#ifndef MS_NOSUID</span></div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a8dccca886ddcf084815f52201f4c8ee5">   40
 </a></span>&#160;<span class="preprocessor">#define MS_NOSUID 2</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#ifndef MS_NODEV</span></div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a292b80c22270ae903600ee1c49fba263">   44</a></span>&#160;<span class="preprocessor">#define MS_NODEV 4</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#ifndef MS_NOEXEC</span></div><div class="li
 ne"><a name="l00048"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#ac1afc3dd404e32a8243b20c5e2098b46">   48</a></span>&#160;<span class="preprocessor">#define MS_NOEXEC 8</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor">#ifndef MS_SYNCHRONOUS</span></div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a4ee10f60993a0713037bd4d19ecaad3c">   52</a></span>&#160;<span class="preprocessor">#define MS_SYNCHRONOUS 16</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><di
 v class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">#ifndef MS_REMOUNT</span></div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a6f2370947d60e3a39113f30c318c81da">   56</a></span>&#160;<span class="preprocessor">#define MS_REMOUNT 32</span></div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="preprocessor">#ifndef MS_MANDLOCK</span></div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a13c3a49d0277fb0002119597565d3542">   60</a></span>&#160;<span class="preprocessor">#define MS_MANDLOCK 64</span></div><div class="line"><a name="l00061"></a><span class="lineno">   61</s
 pan>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="preprocessor">#ifndef MS_DIRSYNC</span></div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a7ee2c6651ca0b0fd471f1437d04ae7cd">   64</a></span>&#160;<span class="preprocessor">#define MS_DIRSYNC 128</span></div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor">#ifndef MS_NOATIME</span></div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#ac880b4fe92ddcb8e13b3a7f5be1874d9">   68</a>
 </span>&#160;<span class="preprocessor">#define MS_NOATIME 1024</span></div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="preprocessor">#ifndef MS_NODIRATIME</span></div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a888c9aee97919309743ce7d571ed1d3d">   72</a></span>&#160;<span class="preprocessor">#define MS_NODIRATIME 2048</span></div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="preprocessor">#ifndef MS_BIND</span></div><di
 v class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#abf37d078c92b80e477bc24e41196991d">   76</a></span>&#160;<span class="preprocessor">#define MS_BIND 4096</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="preprocessor">#ifndef MS_MOVE</span></div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a0da9f4045d377886bad54cc7eee5465b">   80</a></span>&#160;<span class="preprocessor">#define MS_MOVE 8192</span></div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;</div><di
 v class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="preprocessor">#ifndef MS_REC</span></div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#aca543fb3c17fc07f757c5fc5d9e837df">   84</a></span>&#160;<span class="preprocessor">#define MS_REC 16384</span></div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="preprocessor">#ifndef MS_SILENT</span></div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a47d6ffe53362b344d12c1b4a0d8f3cfe">   88</a></span>&#160;<span class="preprocessor">#define MS_SILENT 32768</span></div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#
 160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="preprocessor">#ifndef MS_POSIXACL</span></div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a434312f276feb56d584f373b0ecfbee7">   92</a></span>&#160;<span class="preprocessor">#define MS_POSIXACL (1 &lt;&lt; 16)</span></div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="preprocessor">#ifndef MS_UNBINDABLE</span></div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a301a4be3ab64c922c1a87740173e28f0
 ">   96</a></span>&#160;<span class="preprocessor">#define MS_UNBINDABLE (1 &lt;&lt; 17)</span></div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="preprocessor">#ifndef MS_PRIVATE</span></div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a2c19b5b06ef9626ad4fe09ff73609325">  100</a></span>&#160;<span class="preprocessor">#define MS_PRIVATE (1 &lt;&lt; 18)</span></div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="preprocessor">#
 ifndef MS_SLAVE</span></div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#af165cc1aeb20afa6b6f97fec3b125b62">  104</a></span>&#160;<span class="preprocessor">#define MS_SLAVE (1 &lt;&lt; 19)</span></div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="preprocessor">#ifndef MS_SHARED</span></div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a011baf263e2d0d2bb1c5fce90d2efaaa">  108</a></span>&#160;<span class="preprocessor">#define MS_SHARED (1 &lt;&lt; 20)</span></div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l0
 0110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<span class="preprocessor">#ifndef MS_RELATIME</span></div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a3eddf2266b92ab1b4cb46a4b179bf473">  112</a></span>&#160;<span class="preprocessor">#define MS_RELATIME (1 &lt;&lt; 21)</span></div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;<span class="preprocessor">#ifndef MS_KERNMOUNT</span></div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a424c26bdeca7feeff6b2300c80baac8e">  116</a></span>&#160;<span class="preprocessor">#define MS_KERNMOUNT (1 &lt;&
 lt; 22)</span></div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="preprocessor">#ifndef MS_I_VERSION</span></div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#abdc55246b5d03ae0a4413c15a6882882">  120</a></span>&#160;<span class="preprocessor">#define MS_I_VERSION (1 &lt;&lt; 23)</span></div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="preprocessor">#ifndef MS_STRICTATIME</span></div><div class="line"><a name="l00124"></a><spa
 n class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a956339f6c752fad4c065dd1f786040f7">  124</a></span>&#160;<span class="preprocessor">#define MS_STRICTATIME (1 &lt;&lt; 24)</span></div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="preprocessor">#ifndef MS_ACTIVE</span></div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a0f9f789b9511ee4e2c1730fba2cf5090">  128</a></span>&#160;<span class="preprocessor">#define MS_ACTIVE (1 &lt;&lt; 30)</span></div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;</div><div class
 ="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;<span class="preprocessor">#ifndef MS_NOUSER</span></div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#ae6ba58485ae80e61846d7c1ab7d7a77e">  132</a></span>&#160;<span class="preprocessor">#define MS_NOUSER (1 &lt;&lt; 31)</span></div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="preprocessor">#ifndef MNT_FORCE</span></div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a7e5bac8c5f849afa8a92476de4c12846">  136</a></span>&#160;<span class="preprocessor">#define MNT_FORCE 1</span></div><div class="line"><a name="l00137"></a><span class="lineno">  137</sp
 an>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;<span class="preprocessor">#ifndef MNT_DETACH</span></div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a724db0d55adda6a70d1cfc6ea6815c80">  140</a></span>&#160;<span class="preprocessor">#define MNT_DETACH 2</span></div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;<span class="preprocessor">#ifndef MNT_EXPIRE</span></div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#ac68f46084b7991556285f5927e12c040">  144</a></s
 pan>&#160;<span class="preprocessor">#define MNT_EXPIRE 4</span></div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;<span class="preprocessor">#ifndef UMOUNT_NOFOLLOW</span></div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a34b04741fa68d7de9b7a79a265b8227f">  148</a></span>&#160;<span class="preprocessor">#define UMOUNT_NOFOLLOW 8</span></div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;<span class="comment">// Define FS_MAGIC_* flags for filesystem
  types.</span></div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;<span class="comment">// http://man7.org/linux/man-pages/man2/fstatfs64.2.html</span></div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#aba91cbd9d92aef71e55e33c2492d2edb">  153</a></span>&#160;<span class="preprocessor">#define FS_TYPE_AUFS 0x61756673</span></div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a15b2a4c4f6f5024002510e2f628347a6">  154</a></span>&#160;<span class="preprocessor">#define FS_TYPE_BTRFS 0x9123683E</span></div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#af99f35bdaed76adb25c60a2b9692583a">  155</a></span>&#160;<span class="preprocessor">#define FS_TYPE_CRAMFS 0x28cd3d45</span></div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hp
 p.html#ae25726778397f42e580b1e5af259252b">  156</a></span>&#160;<span class="preprocessor">#define FS_TYPE_ECRYPTFS 0xf15f</span></div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a78f8e5134daf96646e5991fdab9b8c9c">  157</a></span>&#160;<span class="preprocessor">#define FS_TYPE_EXTFS 0x0000EF53</span></div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a0545e268800bc533878a26f88e50af79">  158</a></span>&#160;<span class="preprocessor">#define FS_TYPE_F2FS 0xF2F52010</span></div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#ad3c7f4eeb37b0ad50c9739f00407bb5e">  159</a></span>&#160;<span class="preprocessor">#define FS_TYPE_GPFS 0x47504653</span></div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a43c9df459546a461fa9ffd22f553d333">  160</a></spa
 n>&#160;<span class="preprocessor">#define FS_TYPE_JFFS2FS 0x000072b6</span></div><div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a354ec800de850029f26165b27fd907bd">  161</a></span>&#160;<span class="preprocessor">#define FS_TYPE_JFS 0x3153464a</span></div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a6f2da2aeb1b93027665fcb705985e70c">  162</a></span>&#160;<span class="preprocessor">#define FS_TYPE_NFSFS 0x00006969</span></div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a3e384402b10580248a58ca631ccb1093">  163</a></span>&#160;<span class="preprocessor">#define FS_TYPE_RAMFS 0x858458f6</span></div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#aafa09f9367e44643253f672100b08e53">  164</a></span>&#160;<span class="preprocessor">#define FS_TYPE_RE
 ISERFS 0x52654973</span></div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a505f1ed03891cf115f0519f95d6bf3ac">  165</a></span>&#160;<span class="preprocessor">#define FS_TYPE_SMBFS 0x0000517B</span></div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a14ab14613c58aadf27f989a207469ddd">  166</a></span>&#160;<span class="preprocessor">#define FS_TYPE_SQUASHFS 0x73717368</span></div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a39e51c6392c08d2e5249a2920f50cc83">  167</a></span>&#160;<span class="preprocessor">#define FS_TYPE_TMPFS 0x01021994</span></div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a6738a5149c85c0f664183ae3b051ea8c">  168</a></span>&#160;<span class="preprocessor">#define FS_TYPE_VXFS 0xa501fcf5</span></div><div class="line"><a 
 name="l00169"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a9b237fa98f2cc64e81342f74e451db4a">  169</a></span>&#160;<span class="preprocessor">#define FS_TYPE_XFS 0x58465342</span></div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a0d619ac65ba18c6585cfcb95daf4951b">  170</a></span>&#160;<span class="preprocessor">#define FS_TYPE_ZFS 0x2fc12fc1</span></div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#ab38d5286660b5b755a4b85e663486145">  171</a></span>&#160;<span class="preprocessor">#define FS_TYPE_OVERLAY 0x794C7630</span></div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemesos.html">mesos</a> {</div><div class="line"><a name="l00174"></a><span class=
 "lineno">  174</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1fs.html">  175</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacefs.html">fs</a> {</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="comment">// Detect whether the given file system is supported by the kernel.</span></div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;<a class="code" href="classTry.html">Try&lt;bool&gt;</a> <a class="code" href="namespacemesos_1_1internal_1_1fs.html#a0c6fe63428ca6e781338ed507a5952bd">supported</a>(<span class="keyword">const</span> std::string&amp; fsname);</div><div class="line"><a name="l00179"></a><span class="lin
 eno">  179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<span class="comment">// Detect whether the given file system supports `d_type`</span></div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;<span class="comment">// in `struct dirent`.</span></div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;<span class="comment">// @directory must not be empty for correct `d_type` detection.</span></div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;<span class="comment">// It is the caller&#39;s responsibility to ensure this holds.</span></div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;<a class="code" href="classTry.html">Try&lt;bool&gt;</a> <a class="code" href="namespacemesos_1_1internal_1_1fs.html#ac0a24631b546a6be11d56493e089a599
 ">dtypeSupported</a>(<span class="keyword">const</span> std::string&amp; directory);</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;<span class="comment">// Returns a filesystem type id, given a directory.</span></div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;<span class="comment">// http://man7.org/linux/man-pages/man2/fstatfs64.2.html</span></div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;<a class="code" href="classTry.html">Try&lt;uint32_t&gt;</a> <a class="code" href="namespacemesos_1_1internal_1_1fs.html#a2343e2642db514496ba8380776487fba">type</a>(<span class="keyword">const</span> std::string&amp; <a class="code" href="namespacepath.html">path</a>);</div><div class="line"><a name="l00191"></a><span class="l
 ineno">  191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;<span class="comment">// Returns the filesystem type name, given a filesystem type id.</span></div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;<a class="code" href="classTry.html">Try&lt;std::string&gt;</a> <a class="code" href="namespacemesos_1_1internal_1_1fs.html#a0d5046cea634bcb658321fc495884020">typeName</a>(uint32_t fsType);</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;<span class="comment">// TODO(idownes): These different variations of mount information</span></div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;<span class="comment">// should be consolidated and moved to stout, along with mount and</sp
 an></div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;<span class="comment">// umount.</span></div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;<span class="comment">// Structure describing the per-process mounts as found in</span></div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;<span class="comment">// /proc/[pid]/mountinfo. In particular, entries in this table specify</span></div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;<span class="comment">// the propagation properties of mounts, information not present in</span></div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;<span class="comment">// the MountTable or /etc/fstab. Entry order is preserved when</span></div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>
 &#160;<span class="comment">// parsing /proc/[pid]/mountinfo.</span></div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable.html">  205</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable.html">MountInfoTable</a> {</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;  <span class="comment">// Structure describing an individual /proc/[pid]/mountinfo entry.</span></div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;  <span class="comment">// See the /proc/[pid]/mountinfo section in &#39;man proc&#39; for further</span></div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;  <span class="comment">// details on each field.</span></div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1fs_1_1Mo
 untInfoTable_1_1Entry.html">  209</a></span>&#160;  <span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html">Entry</a> {</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    <span class="keyword">static</span> <a class="code" href="classTry.html">Try&lt;Entry&gt;</a> <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#ac94fe4b6105e1cb64d1fa78d110a7ff4">parse</a>(<span class="keyword">const</span> std::string&amp; s);</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#a6bed00b8f1c3d902cad200f218b7b941">  212</a></span>&#160;    <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#a6bed00b8f1c3d902cad200f218b7b941">Entry</a>() {}</div><div class="l
 ine"><a name="l00213"></a><span class="lineno">  213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    <span class="comment">// Returns the ID of the peer group in which this mount resides.</span></div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    <span class="comment">// Returns none if this mount is not a shared mount.</span></div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;    <a class="code" href="classOption.html">Option&lt;int&gt;</a> <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#ac598eea6fc64528727f41e20af38fb71">shared</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    <span class="comment">// Returns the ID of the peer group in which this mount&#39;s master</s
 pan></div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;    <span class="comment">// resides in. Returns none if this mount is not a slave mount.</span></div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    <a class="code" href="classOption.html">Option&lt;int&gt;</a> <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#adc7d023a056d3a6969f02bc89eb3a577">master</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#a5a763b7da6d904844d9f85e146418ddb">  222</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#a5a763b7da6d904844d9f85e146418ddb">id</a>;                     <span class="comm
 ent">// mountinfo[1]: mount ID.</span></div><div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#a2c6214743bff291cc64968569a43e52d">  223</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#a2c6214743bff291cc64968569a43e52d">parent</a>;                 <span class="comment">// mountinfo[2]: parent ID.</span></div><div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#a8f4d4a718ecaf7639bd0dcd131ca1d84">  224</a></span>&#160;    dev_t <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#a8f4d4a718ecaf7639bd0dcd131ca1d84">devno</a>;                <span class="comment">// mountinfo[3]: st_dev.</span></div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;</div><di
 v class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#adf2922a1d0bf708dabec5399bb343cc8">  226</a></span>&#160;    std::string <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#adf2922a1d0bf708dabec5399bb343cc8">root</a>;           <span class="comment">// mountinfo[4]: root of the mount.</span></div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#a7bbc786da3c7d084fdca8bd6dbb23b81">  227</a></span>&#160;    std::string <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#a7bbc786da3c7d084fdca8bd6dbb23b81">target</a>;         <span class="comment">// mountinfo[5]: mount point.</span></div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno">  229</spa
 n>&#160;    <span class="comment">// Filesystem independent (VFS) options, e.g., &quot;rw,noatime&quot;.</span></div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#a94d2821374eb78fa47d2233313ce7bd1">  230</a></span>&#160;    std::string <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#a94d2821374eb78fa47d2233313ce7bd1">vfsOptions</a>;     <span class="comment">// mountinfo[6]: per-mount options.</span></div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    <span class="comment">// Filesystem dependent options, e.g., &quot;rw,memory&quot; for a memory</span></div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    <span class="comment">// cgroup filesystem.</span></div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1fs_1_1MountInfoTa
 ble_1_1Entry.html#a88094e265567227925914e8182941c29">  233</a></span>&#160;    std::string <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#a88094e265567227925914e8182941c29">fsOptions</a>;      <span class="comment">// mountinfo[11]: per-block options.</span></div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    <span class="comment">// Current possible optional fields include shared:X, master:X,</span></div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    <span class="comment">// propagate_from:X, unbindable.</span></div><div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#a2f7cbb4d05351adc3143c7aa83e7577b">  237</a></span>&#160;    std::string <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTa
 ble_1_1Entry.html#a2f7cbb4d05351adc3143c7aa83e7577b">optionalFields</a>; <span class="comment">// mountinfo[7]: optional fields.</span></div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    <span class="comment">// mountinfo[8] is a separator.</span></div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#abb78c2f10d58e5d2c8bdd47a459d832b">  241</a></span>&#160;    std::string <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#abb78c2f10d58e5d2c8bdd47a459d832b">type</a>;           <span class="comment">// mountinfo[9]: filesystem type.</span></div><div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1fs_1_1M
 ountInfoTable_1_1Entry.html#a001e8b1b7f8a88fc44e6daa2fb72a861">  242</a></span>&#160;    std::string <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#a001e8b1b7f8a88fc44e6daa2fb72a861">source</a>;         <span class="comment">// mountinfo[10]: source dev, other.</span></div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;  };</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;  <span class="comment">// Read the mountinfo table for a process.</span></div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;  <span class="comment">// @param   pid     The `pid` of the process for which we should</span></div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;  <span class="comment">//                  read the mountinfo table. If `pid` is None(),</span></di
 v><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;  <span class="comment">//                  then &quot;self&quot; is used, i.e., the mountinfo table</span></div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;  <span class="comment">//                  for the calling process.</span></div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;  <span class="comment">// @param   hierarchicalSort</span></div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;  <span class="comment">//                  A boolean indicating whether the entries in the</span></div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;  <span class="comment">//                  mountinfo table should be sorted according to</span></div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;  <span class="comment">//                  their parent / chi
 ld relationship (as opposed to</span></div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;  <span class="comment">//                  the temporal ordering of when they were</span></div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;  <span class="comment">//                  mounted). The two orderings may differ (for</span></div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;  <span class="comment">//                  example) if a filesystem is remounted after some</span></div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;  <span class="comment">//                  of its children have been mounted.</span></div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;  <span class="comment">// @return  An instance of MountInfoTable if success.</span></div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;  <s
 pan class="keyword">static</span> <a class="code" href="classTry.html">Try&lt;MountInfoTable&gt;</a> <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable.html#a04bdaabc73f4791b9411612485d65e05">read</a>(</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;      <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;pid_t&gt;</a>&amp; pid = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;      <span class="keywordtype">bool</span> hierarchicalSort = <span class="keyword">true</span>);</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;  <span class="comment">// Read a mountinfo table from a string.</span></div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;  <span class="comment
 ">// @param   lines   The contents of a mountinfo table represented as</span></div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;  <span class="comment">//                  a string. Different entries in the string are</span></div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;  <span class="comment">//                  separated by a newline.</span></div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;  <span class="comment">// @param   hierarchicalSort</span></div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;  <span class="comment">//                  A boolean indicating whether the entries in the</span></div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;  <span class="comment">//                  mountinfo table should be sorted according to</span></div><div class="line"><a name="l00270"></a><span class="lineno">  270</span
 >&#160;  <span class="comment">//                  their parent / child relationship (as opposed to</span></div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;  <span class="comment">//                  the temporal ordering of when they were</span></div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;  <span class="comment">//                  mounted). The two orderings may differ (for</span></div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;  <span class="comment">//                  example) if a filesystem is remounted after some</span></div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;  <span class="comment">//                  of its children have been mounted.</span></div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;  <span class="comment">// @return  An instance of MountInfoTable if success.</span></div><div class="l
 ine"><a name="l00276"></a><span class="lineno">  276</span>&#160;  <span class="keyword">static</span> <a class="code" href="classTry.html">Try&lt;MountInfoTable&gt;</a> <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable.html#a04bdaabc73f4791b9411612485d65e05">read</a>(</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;      <span class="keyword">const</span> std::string&amp; lines,</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;      <span class="keywordtype">bool</span> hierarchicalSort = <span class="keyword">true</span>);</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;  <span class="comment">// Find the mount table entry by the given target path. If there is</span></div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;  <span class="comment">// n
 o mount table entry that matches the exact target path, return</span></div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;  <span class="comment">// the mount table entry that is the immediate parent of the given</span></div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;  <span class="comment">// target path (similar to `findmnt --target [TARGET]`).</span></div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;  <span class="keyword">static</span> <a class="code" href="classTry.html">Try&lt;Entry&gt;</a> <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable.html#ad699d4634ade488dab8998f302ded6cc">findByTarget</a>(<span class="keyword">const</span> std::string&amp; <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#a7bbc786da3c7d084fdca8bd6dbb23b81">target</a>);</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;</
 div><div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable.html#a2da75fe03ea12faa015f29d667d8af27">  286</a></span>&#160;  std::vector&lt;Entry&gt; <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable.html#a2da75fe03ea12faa015f29d667d8af27">entries</a>;</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;};</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;<span class="comment">// Structure describing a mount table (e.g. /etc/mtab or /proc/mounts).</span></div><div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1fs_1_1MountTable.html">  291</a></span>&#160;<span class="keyword">struct </span><a class="code" hr
 ef="structmesos_1_1internal_1_1fs_1_1MountTable.html">MountTable</a> {</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;  <span class="comment">// Structure describing a mount table entry. This is a wrapper for struct</span></div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;  <span class="comment">// mntent defined in &lt;mntent.h&gt;.</span></div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1fs_1_1MountTable_1_1Entry.html">  294</a></span>&#160;  <span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1fs_1_1MountTable_1_1Entry.html">Entry</a> {</div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1fs_1_1MountTable_1_1Entry.html#a736b46e65729c9158fda65f5739f8aa3">  295</a></span>&#160;    <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountTable_1_1Entry.html#
 a736b46e65729c9158fda65f5739f8aa3">Entry</a>() : freq(0), passno(0) {}</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1fs_1_1MountTable_1_1Entry.html#abf68a09ad2bfbb72613743732710ccbb">  297</a></span>&#160;    <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountTable_1_1Entry.html#abf68a09ad2bfbb72613743732710ccbb">Entry</a>(<span class="keyword">const</span> std::string&amp; _fsname,</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;          <span class="keyword">const</span> std::string&amp; _dir,</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;          <span class="keyword">const</span> std::string&amp; _type,</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;          <span class="keyword">const</span> std::string&amp; _o
 pts,</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;          <span class="keywordtype">int</span> _freq,</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;          <span class="keywordtype">int</span> _passno)</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;      : fsname(_fsname),</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;        dir(_dir),</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;        type(_type),</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;        opts(_opts),</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;        freq(_freq),</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;        passno(_passno)</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;    
 {}</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;    <span class="comment">// Check whether a given mount option exists in a mount table entry.</span></div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;    <span class="comment">// @param   option    The given mount option.</span></div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;    <span class="comment">// @return  Whether the given mount option exists.</span></div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;    <span class="keywordtype">bool</span> hasOption(<span class="keyword">const</span> std::string&amp; option) <span class="keyword">const</span>;</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;</div><div class="line"><a name="l00316"></a><span class="lineno"><a class="line" 
 href="structmesos_1_1internal_1_1fs_1_1MountTable_1_1Entry.html#af5d660cf62e9408dec3c0d7ca9235f45">  316</a></span>&#160;    std::string <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountTable_1_1Entry.html#af5d660cf62e9408dec3c0d7ca9235f45">fsname</a>; <span class="comment">// Device or server for filesystem.</span></div><div class="line"><a name="l00317"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1fs_1_1MountTable_1_1Entry.html#a149ec7ee364b7f728238ce2f81a42d4a">  317</a></span>&#160;    std::string <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountTable_1_1Entry.html#a149ec7ee364b7f728238ce2f81a42d4a">dir</a>;    <span class="comment">// Directory mounted on.</span></div><div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1fs_1_1MountTable_1_1Entry.html#a59c7e9a32021a096821a898eb03b20e1">  318</a></span>&#160;    std::string <a class="code" href="structmesos_1_1internal_1_1fs
 _1_1MountTable_1_1Entry.html#a59c7e9a32021a096821a898eb03b20e1">type</a>;   <span class="comment">// Type of filesystem: ufs, nfs, etc.</span></div><div class="line"><a name="l00319"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1fs_1_1MountTable_1_1Entry.html#ad7eb07741ee4611ba9c532266b269ad9">  319</a></span>&#160;    std::string <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountTable_1_1Entry.html#ad7eb07741ee4611ba9c532266b269ad9">opts</a>;   <span class="comment">// Comma-separated options for fs.</span></div><div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1fs_1_1MountTable_1_1Entry.html#a766ab3d24475ea3fb78c0ae6b5cd533f">  320</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountTable_1_1Entry.html#a766ab3d24475ea3fb78c0ae6b5cd533f">freq</a>;           <span class="comment">// Dump frequency (in days).</span></div><div
  class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1fs_1_1MountTable_1_1Entry.html#a91ebac9b909103e516a849b3f770e005">  321</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountTable_1_1Entry.html#a91ebac9b909103e516a849b3f770e005">passno</a>;         <span class="comment">// Pass number for `fsck&#39;.</span></div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;  };</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;  <span class="comment">// Read the mount table from a file.</span></div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;  <span class="comment">// @param   path    The path of the file storing the mount table.</span></div><div class="line"><a name="l00326"></a><span class="lineno">
   326</span>&#160;  <span class="comment">// @return  An instance of MountTable if success.</span></div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;  <span class="keyword">static</span> <a class="code" href="classTry.html">Try&lt;MountTable&gt;</a> <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable.html#a04bdaabc73f4791b9411612485d65e05">read</a>(<span class="keyword">const</span> std::string&amp; path);</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1fs_1_1MountTable.html#ab367b890e544d556b8dec32fc63292c8">  329</a></span>&#160;  std::vector&lt;Entry&gt; <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountTable.html#ab367b890e544d556b8dec32fc63292c8">entries</a>;</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;};</div><div class="line"><a n
 ame="l00331"></a><span class="lineno">  331</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;<span class="comment">// Mount a file system.</span></div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;<span class="comment">// @param   source    Specify the file system (often a device name but</span></div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;<span class="comment">//                    it can also be a directory for a bind mount).</span></div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;<span class="comment">//                    If None(), nullptr will be passed as a dummy</span></div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;<span class="comment">//                    argument to mount(), i.e., it is not used for</span
 ></div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;<span class="comment">//                    the specified mount operation. For example, you</span></div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;<span class="comment">//                    can mount a filesystem specified in /etc/fstab</span></div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;<span class="comment">//                    by just specifying the target.</span></div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;<span class="comment">// @param   target    Directory to be attached to.</span></div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;<span class="comment">// @param   type      File system type (listed in /proc/filesystems).</span></div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;<span class="comment">//               
      If None(), nullptr will be passed as a dummy</span></div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;<span class="comment">//                    argument to mount(), i.e., it is not used for</span></div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;<span class="comment">//                    the specified mount operation. For example, it</span></div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;<span class="comment">//                    should be None() for a bind mount as it will</span></div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;<span class="comment">//                    inherit the type of the source.</span></div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;<span class="comment">// @param   flags     Mount flags.</span></div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;<spa
 n class="comment">// @param   data      Extra data interpreted by different file systems.</span></div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;<span class="comment">// @return  Whether the mount operation succeeds.</span></div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;<a class="code" href="classTry.html">Try&lt;Nothing&gt;</a> <a class="code" href="namespacemesos_1_1internal_1_1fs.html#af0d63e921d6b48554eaee82037356187">mount</a>(<span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#a001e8b1b7f8a88fc44e6daa2fb72a861">source</a>,</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;                   <span class="keyword">const</span> std::string&amp; <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#a7bbc786da3
 c7d084fdca8bd6dbb23b81">target</a>,</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;                   <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; type,</div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;                   <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="namespaceflags.html">flags</a>,</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;                   <span class="keyword">const</span> <span class="keywordtype">void</span>* data);</div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;</div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;<span class="comment">// Alternate version of mount which passes an optio
 n string as</span></div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;<span class="comment">// additional data for the filesystem mount.</span></div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;<a class="code" href="classTry.html">Try&lt;Nothing&gt;</a> <a class="code" href="namespacemesos_1_1internal_1_1fs.html#af0d63e921d6b48554eaee82037356187">mount</a>(<span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#a001e8b1b7f8a88fc44e6daa2fb72a861">source</a>,</div><div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;                   <span class="keyword">const</span> std::string&amp; <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#a7bbc786da3c7d084fdca8bd6dbb23b81">target</a>,</div><div class="line"><a name="l00362"></a><sp
 an class="lineno">  362</span>&#160;                   <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; type,</div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;                   <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="namespaceflags.html">flags</a>,</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;                   <span class="keyword">const</span> <a class="code" href="classOption.html">Option&lt;std::string&gt;</a>&amp; options);</div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;<span class="comment">// Unmount a file system.</span></div><div class="line"><a name="l00368"></a><span class="linen
 o">  368</span>&#160;<span class="comment">// @param   target    The (topmost) directory where the file system attaches.</span></div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;<span class="comment">// @param   flags     Unmount flags.</span></div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;<span class="comment">// @return  Whether the unmount operation succeeds.</span></div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;<a class="code" href="classTry.html">Try&lt;Nothing&gt;</a> <a class="code" href="namespacemesos_1_1internal_1_1fs.html#a8c141bb6b0368b6e9460184434d4e4d6">unmount</a>(<span class="keyword">const</span> std::string&amp; <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#a7bbc786da3c7d084fdca8bd6dbb23b81">target</a>, <span class="keywordtype">int</span> <a class="code" href="namespaceflags.html">flags</a> = 0);</div><div class="line"><a n
 ame="l00372"></a><span class="lineno">  372</span>&#160;</div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;</div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;<span class="comment">// Unmount a file system and all mounts under that file system.</span></div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;<span class="comment">// @param   target    The (topmost) directory where the file system attaches.</span></div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;<span class="comment">// @param   flags     Unmount flags.</span></div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;<span class="comment">// @return  Whether the unmountAll operation succeeds.</span></div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;<a class="code" href="classTry.html">Try&lt;Nothing&gt;</a> <a class="code" href="namespace
 mesos_1_1internal_1_1fs.html#a8cc7e8b3a7436a7459dfd72cd90057bc">unmountAll</a>(<span class="keyword">const</span> std::string&amp; <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#a7bbc786da3c7d084fdca8bd6dbb23b81">target</a>, <span class="keywordtype">int</span> <a class="code" href="namespaceflags.html">flags</a> = 0);</div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;</div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;<span class="comment">// Change the root filesystem.</span></div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;<a class="code" href="classTry.html">Try&lt;Nothing&gt;</a> <a class="code" href="namespacemesos_1_1internal_1_1fs.html#a6ca148a3dbe24af71c5b08edc0c5d753">pivot_root</a>(<span class="keyword">const</span> std::string&amp; newRoot, <span class="k
 eyword">const</span> std::string&amp; putOld);</div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;</div><div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1fs_1_1chroot.html">  384</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceos.html#a555a98268adfef95f69ee212b318bbc0">chroot</a> {</div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;<span class="comment">// Enter a &#39;chroot&#39; environment. The caller should be in a new mount</span></div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;<span class="comment">// namespace. Basic configuration of special filesystems and device</span></div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;<span class="comment">// nodes is performed. A
 ny mounts to the current root will be</span></div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;<span class="comment">// unmounted.</span></div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;<a class="code" href="classTry.html">Try&lt;Nothing&gt;</a> <a class="code" href="namespacemesos_1_1internal_1_1fs_1_1chroot.html#a3374f58b971e9b4e75d03793e24be549">enter</a>(<span class="keyword">const</span> std::string&amp; <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#adf2922a1d0bf708dabec5399bb343cc8">root</a>);</div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;} <span class="comment">// namespace chroot {</span></div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;</div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160
 ;} <span class="comment">// namespace fs {</span></div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;} <span class="comment">// namespace internal {</span></div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;} <span class="comment">// namespace mesos {</span></div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;<span class="preprocessor">#endif // __FS_HPP__</span></div><div class="ttc" id="namespacepath_html"><div class="ttname"><a href="namespacepath.html">path</a></div><div class="ttdef"><b>Definition:</b> path.hpp:26</div></div>
+<a href="src_2linux_2fs_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">// or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">// regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006"></a><s
 pan class="lineno">    6</span>&#160;<span class="comment">// &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">// with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">//     http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">// di
 stributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#ifndef __FS_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#define __FS_HPP__</span></div><div class="line"><a name="l00019"></a
 ><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;mntent.h&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;sys/mount.h&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;sys/types.h&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;sys/vfs.h&gt;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno">   
 27</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>&gt;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="option_8hpp.html">stout/option.hpp</a>&gt;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="try_8hpp.html">stout/try.hpp</a>&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="comment">// Define relevant MS_* flags for old includes.</span></div><div class
 ="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="comment">// This is taken from the enum in sys/mount.h.</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#ifndef MS_RDONLY</span></div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a8e7a9d539a0b19e807c0886d6e068ebe">   36</a></span>&#160;<span class="preprocessor">#define MS_RDONLY 1</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#ifndef MS_NOSUID</span></div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a8dccca886ddcf084815f52201f4c8ee5">   40
 </a></span>&#160;<span class="preprocessor">#define MS_NOSUID 2</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#ifndef MS_NODEV</span></div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a292b80c22270ae903600ee1c49fba263">   44</a></span>&#160;<span class="preprocessor">#define MS_NODEV 4</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#ifndef MS_NOEXEC</span></div><div class="li
 ne"><a name="l00048"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#ac1afc3dd404e32a8243b20c5e2098b46">   48</a></span>&#160;<span class="preprocessor">#define MS_NOEXEC 8</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor">#ifndef MS_SYNCHRONOUS</span></div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a4ee10f60993a0713037bd4d19ecaad3c">   52</a></span>&#160;<span class="preprocessor">#define MS_SYNCHRONOUS 16</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><di
 v class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">#ifndef MS_REMOUNT</span></div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a6f2370947d60e3a39113f30c318c81da">   56</a></span>&#160;<span class="preprocessor">#define MS_REMOUNT 32</span></div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="preprocessor">#ifndef MS_MANDLOCK</span></div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a13c3a49d0277fb0002119597565d3542">   60</a></span>&#160;<span class="preprocessor">#define MS_MANDLOCK 64</span></div><div class="line"><a name="l00061"></a><span class="lineno">   61</s
 pan>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="preprocessor">#ifndef MS_DIRSYNC</span></div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a7ee2c6651ca0b0fd471f1437d04ae7cd">   64</a></span>&#160;<span class="preprocessor">#define MS_DIRSYNC 128</span></div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor">#ifndef MS_NOATIME</span></div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#ac880b4fe92ddcb8e13b3a7f5be1874d9">   68</a>
 </span>&#160;<span class="preprocessor">#define MS_NOATIME 1024</span></div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="preprocessor">#ifndef MS_NODIRATIME</span></div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a888c9aee97919309743ce7d571ed1d3d">   72</a></span>&#160;<span class="preprocessor">#define MS_NODIRATIME 2048</span></div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="preprocessor">#ifndef MS_BIND</span></div><di
 v class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#abf37d078c92b80e477bc24e41196991d">   76</a></span>&#160;<span class="preprocessor">#define MS_BIND 4096</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="preprocessor">#ifndef MS_MOVE</span></div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a0da9f4045d377886bad54cc7eee5465b">   80</a></span>&#160;<span class="preprocessor">#define MS_MOVE 8192</span></div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;</div><di
 v class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="preprocessor">#ifndef MS_REC</span></div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#aca543fb3c17fc07f757c5fc5d9e837df">   84</a></span>&#160;<span class="preprocessor">#define MS_REC 16384</span></div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="preprocessor">#ifndef MS_SILENT</span></div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a47d6ffe53362b344d12c1b4a0d8f3cfe">   88</a></span>&#160;<span class="preprocessor">#define MS_SILENT 32768</span></div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#
 160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="preprocessor">#ifndef MS_POSIXACL</span></div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a434312f276feb56d584f373b0ecfbee7">   92</a></span>&#160;<span class="preprocessor">#define MS_POSIXACL (1 &lt;&lt; 16)</span></div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="preprocessor">#ifndef MS_UNBINDABLE</span></div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a301a4be3ab64c922c1a87740173e28f0
 ">   96</a></span>&#160;<span class="preprocessor">#define MS_UNBINDABLE (1 &lt;&lt; 17)</span></div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="preprocessor">#ifndef MS_PRIVATE</span></div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a2c19b5b06ef9626ad4fe09ff73609325">  100</a></span>&#160;<span class="preprocessor">#define MS_PRIVATE (1 &lt;&lt; 18)</span></div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="preprocessor">#
 ifndef MS_SLAVE</span></div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#af165cc1aeb20afa6b6f97fec3b125b62">  104</a></span>&#160;<span class="preprocessor">#define MS_SLAVE (1 &lt;&lt; 19)</span></div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="preprocessor">#ifndef MS_SHARED</span></div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a011baf263e2d0d2bb1c5fce90d2efaaa">  108</a></span>&#160;<span class="preprocessor">#define MS_SHARED (1 &lt;&lt; 20)</span></div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l0
 0110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<span class="preprocessor">#ifndef MS_RELATIME</span></div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a3eddf2266b92ab1b4cb46a4b179bf473">  112</a></span>&#160;<span class="preprocessor">#define MS_RELATIME (1 &lt;&lt; 21)</span></div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;<span class="preprocessor">#ifndef MS_KERNMOUNT</span></div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a424c26bdeca7feeff6b2300c80baac8e">  116</a></span>&#160;<span class="preprocessor">#define MS_KERNMOUNT (1 &lt;&
 lt; 22)</span></div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="preprocessor">#ifndef MS_I_VERSION</span></div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#abdc55246b5d03ae0a4413c15a6882882">  120</a></span>&#160;<span class="preprocessor">#define MS_I_VERSION (1 &lt;&lt; 23)</span></div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="preprocessor">#ifndef MS_STRICTATIME</span></div><div class="line"><a name="l00124"></a><spa
 n class="lineno"><a class="line" href="src_2linux_2fs_8hpp.html#a956339f6c752fad4c065dd1f786040f7">  124</a></span>&#160;<span class="preprocessor">#define MS_STRICTATIME (1 &lt;&lt; 24)</span></div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00126"></a><span class="line

<TRUNCATED>