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> <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> <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> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <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> <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> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <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> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <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> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <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> <span class="comment">// di
stributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <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> <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> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __FS_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __FS_HPP__</span></div><div class="line"><a name="l00019"></a
><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <mntent.h></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <sys/mount.h></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <sys/types.h></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <sys/vfs.h></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00027"></a><span class="lineno">
27</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">// Define relevant MS_* flags for old includes.</span></div><div class
="line"><a name="l00034"></a><span class="lineno"> 34</span> <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> <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> <span class="preprocessor">#define MS_RDONLY 1</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="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> <span class="preprocessor">#define MS_NOSUID 2</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#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> <span class="preprocessor">#define MS_NODEV 4</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <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> <span class="preprocessor">#define MS_NOEXEC 8</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <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> <span class="preprocessor">#define MS_SYNCHRONOUS 16</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div><di
v class="line"><a name="l00055"></a><span class="lineno"> 55</span> <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> <span class="preprocessor">#define MS_REMOUNT 32</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <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> <span class="preprocessor">#define MS_MANDLOCK 64</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</s
pan> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <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> <span class="preprocessor">#define MS_DIRSYNC 128</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor">#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> <span class="preprocessor">#define MS_NOATIME 1024</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="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> <span class="preprocessor">#define MS_NODIRATIME 2048</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <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> <span class="preprocessor">#define MS_BIND 4096</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <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> <span class="preprocessor">#define MS_MOVE 8192</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div><di
v class="line"><a name="l00083"></a><span class="lineno"> 83</span> <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> <span class="preprocessor">#define MS_REC 16384</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor">#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> <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> </div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <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> <span class="preprocessor">#define MS_POSIXACL (1 << 16)</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <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> <span class="preprocessor">#define MS_UNBINDABLE (1 << 17)</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <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> <span class="preprocessor">#define MS_PRIVATE (1 << 18)</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="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> <span class="preprocessor">#define MS_SLAVE (1 << 19)</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <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> <span class="preprocessor">#define MS_SHARED (1 << 20)</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l0
0110"></a><span class="lineno"> 110</span> </div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <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> <span class="preprocessor">#define MS_RELATIME (1 << 21)</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <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> <span class="preprocessor">#define MS_KERNMOUNT (1 <&
lt; 22)</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <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> <span class="preprocessor">#define MS_I_VERSION (1 << 23)</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <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> <span class="preprocessor">#define MS_STRICTATIME (1 << 24)</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <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> <span class="preprocessor">#define MS_ACTIVE (1 << 30)</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div><div class
="line"><a name="l00131"></a><span class="lineno"> 131</span> <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> <span class="preprocessor">#define MS_NOUSER (1 << 31)</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="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> <span class="preprocessor">#define MNT_FORCE 1</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</sp
an> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="preprocessor">#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> <span class="preprocessor">#define MNT_DETACH 2</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <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> <span class="preprocessor">#define MNT_EXPIRE 4</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <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> <span class="preprocessor">#define UMOUNT_NOFOLLOW 8</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="comment">// Define FS_MAGIC_* flags for filesystem
types.</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <span class="preprocessor">#define FS_TYPE_OVERLAY 0x794C7630</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <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> <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> <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> </div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <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> <a class="code" href="classTry.html">Try<bool></a> <a class="code" href="namespacemesos_1_1internal_1_1fs.html#a0c6fe63428ca6e781338ed507a5952bd">supported</a>(<span class="keyword">const</span> std::string& fsname);</div><div class="line"><a name="l00179"></a><span class="lin
eno"> 179</span> </div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <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> <span class="comment">// in `struct dirent`.</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <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> <span class="comment">// It is the caller's responsibility to ensure this holds.</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <a class="code" href="classTry.html">Try<bool></a> <a class="code" href="namespacemesos_1_1internal_1_1fs.html#ac0a24631b546a6be11d56493e089a599
">dtypeSupported</a>(<span class="keyword">const</span> std::string& directory);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="comment">// Returns a filesystem type id, given a directory.</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <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> <a class="code" href="classTry.html">Try<uint32_t></a> <a class="code" href="namespacemesos_1_1internal_1_1fs.html#a2343e2642db514496ba8380776487fba">type</a>(<span class="keyword">const</span> std::string& <a class="code" href="namespacepath.html">path</a>);</div><div class="line"><a name="l00191"></a><span class="l
ineno"> 191</span> </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <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> <a class="code" href="classTry.html">Try<std::string></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> </div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <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> <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> <span class="comment">// umount.</span></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <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> <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> <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> <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>
 <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> <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>  <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>  <span class="comment">// See the /proc/[pid]/mountinfo section in 'man proc' for further</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <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>  <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>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<Entry></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& s);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </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>  <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> </div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <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>  <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>  <a class="code" href="classOption.html">Option<int></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> </div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="comment">// Returns the ID of the peer group in which this mount's master</s
pan></div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <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>  <a class="code" href="classOption.html">Option<int></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> </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>  <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>  <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>  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> </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>  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>  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> </div><div class="line"><a name="l00229"></a><span class="lineno"> 229</spa
n>  <span class="comment">// Filesystem independent (VFS) options, e.g., "rw,noatime".</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>  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>  <span class="comment">// Filesystem dependent options, e.g., "rw,memory" for a memory</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <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>  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> </div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <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>  <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>  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> </div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="comment">// mountinfo[8] is a separator.</span></div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </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>  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>  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>  };</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span> </div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="comment">// Read the mountinfo table for a process.</span></div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <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>  <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>  <span class="comment">// then "self" is used, i.e., the mountinfo table</span></div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="comment">// for the calling process.</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="comment">// @param hierarchicalSort</span></div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <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>  <span class="comment">// mountinfo table should be sorted according to</span></div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <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>  <span class="comment">// the temporal ordering of when they were</span></div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="comment">// mounted). The two orderings may differ (for</span></div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <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>  <span class="comment">// of its children have been mounted.</span></div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="comment">// @return An instance of MountInfoTable if success.</span></div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <s
pan class="keyword">static</span> <a class="code" href="classTry.html">Try<MountInfoTable></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>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<pid_t></a>& pid = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordtype">bool</span> hierarchicalSort = <span class="keyword">true</span>);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="comment">// Read a mountinfo table from a string.</span></div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <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>  <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>  <span class="comment">// separated by a newline.</span></div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="comment">// @param hierarchicalSort</span></div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <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>  <span class="comment">// mountinfo table should be sorted according to</span></div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span
>  <span class="comment">// their parent / child relationship (as opposed to</span></div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="comment">// the temporal ordering of when they were</span></div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="comment">// mounted). The two orderings may differ (for</span></div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <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>  <span class="comment">// of its children have been mounted.</span></div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <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>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<MountInfoTable></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>  <span class="keyword">const</span> std::string& lines,</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordtype">bool</span> hierarchicalSort = <span class="keyword">true</span>);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span> </div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <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>  <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>  <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>  <span class="comment">// target path (similar to `findmnt --target [TARGET]`).</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<Entry></a> <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable.html#ad699d4634ade488dab8998f302ded6cc">findByTarget</a>(<span class="keyword">const</span> std::string& <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> </
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>  std::vector<Entry> <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> };</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span> </div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <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> <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>  <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>  <span class="comment">// mntent defined in <mntent.h>.</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>  <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>  <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> </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>  <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountTable_1_1Entry.html#abf68a09ad2bfbb72613743732710ccbb">Entry</a>(<span class="keyword">const</span> std::string& _fsname,</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keyword">const</span> std::string& _dir,</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keyword">const</span> std::string& _type,</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keyword">const</span> std::string& _o
pts,</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordtype">int</span> _freq,</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keywordtype">int</span> _passno)</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  : fsname(_fsname),</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  dir(_dir),</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  type(_type),</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  opts(_opts),</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  freq(_freq),</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  passno(_passno)</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span> 
{}</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <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>  <span class="comment">// @param option The given mount option.</span></div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="comment">// @return Whether the given mount option exists.</span></div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keywordtype">bool</span> hasOption(<span class="keyword">const</span> std::string& option) <span class="keyword">const</span>;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span> </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>  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>  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>  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>  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>  <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>  <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'.</span></div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  };</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="comment">// Read the mount table from a file.</span></div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <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>  <span class="comment">// @return An instance of MountTable if success.</span></div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<MountTable></a> <a class="code" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable.html#a04bdaabc73f4791b9411612485d65e05">read</a>(<span class="keyword">const</span> std::string& path);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span> </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>  std::vector<Entry> <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> };</div><div class="line"><a n
ame="l00331"></a><span class="lineno"> 331</span> </div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span> </div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="comment">// Mount a file system.</span></div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <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> <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> <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> <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> <span class="comment">// the specified mount operation. For example, you</span></div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <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> <span class="comment">// by just specifying the target.</span></div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="comment">// @param target Directory to be attached to.</span></div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <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> <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> <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> <span class="comment">// the specified mount operation. For example, it</span></div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <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> <span class="comment">// inherit the type of the source.</span></div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="comment">// @param flags Mount flags.</span></div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <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> <span class="comment">// @return Whether the mount operation succeeds.</span></div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <a class="code" href="classTry.html">Try<Nothing></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<std::string></a>& <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>  <span class="keyword">const</span> std::string& <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>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& type,</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <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>  <span class="keyword">const</span> <span class="keywordtype">void</span>* data);</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span> </div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span> </div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <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> <span class="comment">// additional data for the filesystem mount.</span></div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span> <a class="code" href="classTry.html">Try<Nothing></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<std::string></a>& <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>  <span class="keyword">const</span> std::string& <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>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& type,</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <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>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& options);</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span> </div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span> </div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="comment">// Unmount a file system.</span></div><div class="line"><a name="l00368"></a><span class="linen
o"> 368</span> <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> <span class="comment">// @param flags Unmount flags.</span></div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="comment">// @return Whether the unmount operation succeeds.</span></div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespacemesos_1_1internal_1_1fs.html#a8c141bb6b0368b6e9460184434d4e4d6">unmount</a>(<span class="keyword">const</span> std::string& <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> </div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span> </div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <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> <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> <span class="comment">// @param flags Unmount flags.</span></div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="comment">// @return Whether the unmountAll operation succeeds.</span></div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespace
mesos_1_1internal_1_1fs.html#a8cc7e8b3a7436a7459dfd72cd90057bc">unmountAll</a>(<span class="keyword">const</span> std::string& <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> </div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span> </div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="comment">// Change the root filesystem.</span></div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespacemesos_1_1internal_1_1fs.html#a6ca148a3dbe24af71c5b08edc0c5d753">pivot_root</a>(<span class="keyword">const</span> std::string& newRoot, <span class="k
eyword">const</span> std::string& putOld);</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span> </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> <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> </div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="comment">// Enter a 'chroot' environment. The caller should be in a new mount</span></div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <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> <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> <span class="comment">// unmounted.</span></div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespacemesos_1_1internal_1_1fs_1_1chroot.html#a3374f58b971e9b4e75d03793e24be549">enter</a>(<span class="keyword">const</span> std::string& <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> </div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span> } <span class="comment">// namespace chroot {</span></div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span> </div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span> 
;} <span class="comment">// namespace fs {</span></div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span> } <span class="comment">// namespace internal {</span></div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span> } <span class="comment">// namespace mesos {</span></div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span> </div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span> </div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <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> <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> <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> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <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> <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> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <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> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <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> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <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> <span class="comment">// di
stributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <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> <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> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __FS_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __FS_HPP__</span></div><div class="line"><a name="l00019"></a
><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <mntent.h></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <sys/mount.h></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <sys/types.h></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <sys/vfs.h></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00027"></a><span class="lineno">
27</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">// Define relevant MS_* flags for old includes.</span></div><div class
="line"><a name="l00034"></a><span class="lineno"> 34</span> <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> <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> <span class="preprocessor">#define MS_RDONLY 1</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="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> <span class="preprocessor">#define MS_NOSUID 2</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#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> <span class="preprocessor">#define MS_NODEV 4</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <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> <span class="preprocessor">#define MS_NOEXEC 8</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <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> <span class="preprocessor">#define MS_SYNCHRONOUS 16</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div><di
v class="line"><a name="l00055"></a><span class="lineno"> 55</span> <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> <span class="preprocessor">#define MS_REMOUNT 32</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <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> <span class="preprocessor">#define MS_MANDLOCK 64</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</s
pan> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <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> <span class="preprocessor">#define MS_DIRSYNC 128</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor">#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> <span class="preprocessor">#define MS_NOATIME 1024</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="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> <span class="preprocessor">#define MS_NODIRATIME 2048</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <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> <span class="preprocessor">#define MS_BIND 4096</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <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> <span class="preprocessor">#define MS_MOVE 8192</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div><di
v class="line"><a name="l00083"></a><span class="lineno"> 83</span> <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> <span class="preprocessor">#define MS_REC 16384</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor">#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> <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> </div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <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> <span class="preprocessor">#define MS_POSIXACL (1 << 16)</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <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> <span class="preprocessor">#define MS_UNBINDABLE (1 << 17)</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <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> <span class="preprocessor">#define MS_PRIVATE (1 << 18)</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="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> <span class="preprocessor">#define MS_SLAVE (1 << 19)</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <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> <span class="preprocessor">#define MS_SHARED (1 << 20)</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l0
0110"></a><span class="lineno"> 110</span> </div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <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> <span class="preprocessor">#define MS_RELATIME (1 << 21)</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <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> <span class="preprocessor">#define MS_KERNMOUNT (1 <&
lt; 22)</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <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> <span class="preprocessor">#define MS_I_VERSION (1 << 23)</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <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> <span class="preprocessor">#define MS_STRICTATIME (1 << 24)</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00126"></a><span class="line
<TRUNCATED>