blob: 85637877901124bcb4d648d4a1ccdc102cf43194 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>Apache Mesos: src/linux/ns.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">Apache Mesos
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_a18918b93668b435612395bbc2e8b82b.html">linux</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">ns.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;assert.h&gt;</code><br/>
<code>#include &lt;sched.h&gt;</code><br/>
<code>#include &lt;unistd.h&gt;</code><br/>
<code>#include &lt;sys/syscall.h&gt;</code><br/>
<code>#include &lt;sys/wait.h&gt;</code><br/>
<code>#include &lt;set&gt;</code><br/>
<code>#include &lt;string&gt;</code><br/>
<code>#include &lt;vector&gt;</code><br/>
<code>#include &lt;<a class="el" href="error_8hpp_source.html">stout/error.hpp</a>&gt;</code><br/>
<code>#include &lt;<a class="el" href="hashmap_8hpp_source.html">stout/hashmap.hpp</a>&gt;</code><br/>
<code>#include &lt;<a class="el" href="nothing_8hpp_source.html">stout/nothing.hpp</a>&gt;</code><br/>
<code>#include &lt;<a class="el" href="os_8hpp_source.html">stout/os.hpp</a>&gt;</code><br/>
<code>#include &lt;<a class="el" href="path_8hpp_source.html">stout/path.hpp</a>&gt;</code><br/>
<code>#include &lt;<a class="el" href="proc_8hpp_source.html">stout/proc.hpp</a>&gt;</code><br/>
<code>#include &lt;<a class="el" href="stringify_8hpp_source.html">stout/stringify.hpp</a>&gt;</code><br/>
<code>#include &lt;<a class="el" href="strings_8hpp_source.html">stout/strings.hpp</a>&gt;</code><br/>
<code>#include &lt;<a class="el" href="try_8hpp_source.html">stout/try.hpp</a>&gt;</code><br/>
<code>#include &lt;<a class="el" href="exists_8hpp_source.html">stout/os/exists.hpp</a>&gt;</code><br/>
<code>#include &lt;<a class="el" href="ls_8hpp_source.html">stout/os/ls.hpp</a>&gt;</code><br/>
<code>#include &lt;<a class="el" href="collect_8hpp_source.html">process/collect.hpp</a>&gt;</code><br/>
<code>#include &lt;<a class="el" href="future_8hpp_source.html">process/future.hpp</a>&gt;</code><br/>
<code>#include &lt;<a class="el" href="reap_8hpp_source.html">process/reap.hpp</a>&gt;</code><br/>
<code>#include &quot;<a class="el" href="status__utils_8hpp_source.html">common/status_utils.hpp</a>&quot;</code><br/>
</div>
<p><a href="ns_8hpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespacens"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacens.html">ns</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespacens_1_1pid"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacens_1_1pid.html">ns::pid</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:aab02ccd05c3d9fa806d974e38a8debc4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ns_8hpp.html#aab02ccd05c3d9fa806d974e38a8debc4">CLONE_NEWNS</a>&#160;&#160;&#160;0x00020000</td></tr>
<tr class="separator:aab02ccd05c3d9fa806d974e38a8debc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afaf1addd4b1e90196d1876896c1a53c3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ns_8hpp.html#afaf1addd4b1e90196d1876896c1a53c3">CLONE_NEWUTS</a>&#160;&#160;&#160;0x04000000</td></tr>
<tr class="separator:afaf1addd4b1e90196d1876896c1a53c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f702bf1b80ed7a8cef30e363a87e3e3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ns_8hpp.html#a1f702bf1b80ed7a8cef30e363a87e3e3">CLONE_NEWIPC</a>&#160;&#160;&#160;0x08000000</td></tr>
<tr class="separator:a1f702bf1b80ed7a8cef30e363a87e3e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2fa6801173606dd3492ca9061d1c4ad4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ns_8hpp.html#a2fa6801173606dd3492ca9061d1c4ad4">CLONE_NEWPID</a>&#160;&#160;&#160;0x20000000</td></tr>
<tr class="separator:a2fa6801173606dd3492ca9061d1c4ad4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ba1673aa7423b46a7bcfa8f68cd2bce"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ns_8hpp.html#a2ba1673aa7423b46a7bcfa8f68cd2bce">CLONE_NEWNET</a>&#160;&#160;&#160;0x40000000</td></tr>
<tr class="separator:a2ba1673aa7423b46a7bcfa8f68cd2bce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d697cae6f0156524a1bd7d77bcf8e87"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ns_8hpp.html#a5d697cae6f0156524a1bd7d77bcf8e87">CLONE_NEWUSER</a>&#160;&#160;&#160;0x10000000</td></tr>
<tr class="separator:a5d697cae6f0156524a1bd7d77bcf8e87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d5d88148a26086567c3731e2e5e110a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ns_8hpp.html#a9d5d88148a26086567c3731e2e5e110a">CLONE_NEWCGROUP</a>&#160;&#160;&#160;0x02000000</td></tr>
<tr class="separator:a9d5d88148a26086567c3731e2e5e110a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a9aa5c2738ac9781ed9cd8202d87fb089"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ns_8hpp.html#a9aa5c2738ac9781ed9cd8202d87fb089">setns</a> (int fd, int nstype)</td></tr>
<tr class="separator:a9aa5c2738ac9781ed9cd8202d87fb089"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c4fd4fd04bde294d2d7477dfee8427e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacens.html#a1c4fd4fd04bde294d2d7477dfee8427e">ns::nstype</a> (const std::string &amp;ns)</td></tr>
<tr class="separator:a1c4fd4fd04bde294d2d7477dfee8427e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab01ae26d9da2efc741aa838c69db6e2"><td class="memItemLeft" align="right" valign="top">std::set&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacens.html#aab01ae26d9da2efc741aa838c69db6e2">ns::namespaces</a> ()</td></tr>
<tr class="separator:aab01ae26d9da2efc741aa838c69db6e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae308e5fb79986971a85717365f2258d4"><td class="memItemLeft" align="right" valign="top">std::set&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacens.html#ae308e5fb79986971a85717365f2258d4">ns::nstypes</a> ()</td></tr>
<tr class="separator:ae308e5fb79986971a85717365f2258d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff4db8d452eb5c8f07fba2ceeb5a7d83"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>&lt; <a class="el" href="structNothing.html">Nothing</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacens.html#aff4db8d452eb5c8f07fba2ceeb5a7d83">ns::setns</a> (const std::string &amp;path, const std::string &amp;ns, bool checkMultithreaded=true)</td></tr>
<tr class="separator:aff4db8d452eb5c8f07fba2ceeb5a7d83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e58011de0d8219645c27912fc3bc8f4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>&lt; <a class="el" href="structNothing.html">Nothing</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacens.html#a7e58011de0d8219645c27912fc3bc8f4">ns::setns</a> (<a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> pid, const std::string &amp;ns)</td></tr>
<tr class="separator:a7e58011de0d8219645c27912fc3bc8f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f104f8776ccb934a05efeaeeebab328"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>&lt; ino_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacens.html#a0f104f8776ccb934a05efeaeeebab328">ns::getns</a> (<a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> pid, const std::string &amp;ns)</td></tr>
<tr class="separator:a0f104f8776ccb934a05efeaeeebab328"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98bf4d9e11d546326250997a6493f835"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>&lt; <a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacens.html#a98bf4d9e11d546326250997a6493f835">ns::clone</a> (<a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> target, int nstypes, const lambda::function&lt; int()&gt; &amp;f, int flags)</td></tr>
<tr class="memdesc:a98bf4d9e11d546326250997a6493f835"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs an <code><a class="el" href="namespaceos.html#a06b5d831710f3993abe32fbb3ff69f12">os::clone</a></code> after entering a set of namespaces for the specified <code>target</code> process. <a href="#a98bf4d9e11d546326250997a6493f835">More...</a><br/></td></tr>
<tr class="separator:a98bf4d9e11d546326250997a6493f835"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:accb661a0624f57c7dddf1d1252bff780"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classprocess_1_1Future.html">process::Future</a>&lt; <a class="el" href="structNothing.html">Nothing</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacens_1_1pid.html#accb661a0624f57c7dddf1d1252bff780">ns::pid::destroy</a> (ino_t inode)</td></tr>
<tr class="separator:accb661a0624f57c7dddf1d1252bff780"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28116b46e6543597a11733424cd1aa20"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacens.html#a28116b46e6543597a11733424cd1aa20">ns::stringify</a> (int flags)</td></tr>
<tr class="separator:a28116b46e6543597a11733424cd1aa20"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a9d5d88148a26086567c3731e2e5e110a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CLONE_NEWCGROUP&#160;&#160;&#160;0x02000000</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a1f702bf1b80ed7a8cef30e363a87e3e3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CLONE_NEWIPC&#160;&#160;&#160;0x08000000</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a2ba1673aa7423b46a7bcfa8f68cd2bce"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CLONE_NEWNET&#160;&#160;&#160;0x40000000</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aab02ccd05c3d9fa806d974e38a8debc4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CLONE_NEWNS&#160;&#160;&#160;0x00020000</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a2fa6801173606dd3492ca9061d1c4ad4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CLONE_NEWPID&#160;&#160;&#160;0x20000000</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a5d697cae6f0156524a1bd7d77bcf8e87"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CLONE_NEWUSER&#160;&#160;&#160;0x10000000</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="afaf1addd4b1e90196d1876896c1a53c3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CLONE_NEWUTS&#160;&#160;&#160;0x04000000</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a9aa5c2738ac9781ed9cd8202d87fb089"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int setns </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>fd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>nstype</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</small></address>
</body>
</html>