Sophie

Sophie

distrib > Fedora > 13 > i386 > by-pkgid > 1e2724962c0c4eea8e642603f77e9431 > files > 22

util-vserver-devel-0.30.215+svn2847-143596525.fc12.i686.rpm

<!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/html;charset=UTF-8"/>
<title>util-vserver (libvserver): Syscall wrappers</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.0 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>Syscall wrappers</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__syscalls.html#ga363272d33d716c4bea57127c9b6f4d35">vc_syscall</a> (uint32_t cmd, <a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a> xid, void *data)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The generic vserver syscallThis function executes the generic vserver syscall. It uses the correct syscallnumber (which may differ between the different architectures).  <a href="#ga363272d33d716c4bea57127c9b6f4d35"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__syscalls.html#ga1dedd9c37a14feda4eb3f04f0d29bc60">vc_get_version</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the version of the current kernel API.  <a href="#ga1dedd9c37a14feda4eb3f04f0d29bc60"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">vc_vci_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__syscalls.html#ga17d8ea85db471ef45d5a47ac8bc3b1aa">vc_get_vci</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the kernel configuration bits.  <a href="#ga17d8ea85db471ef45d5a47ac8bc3b1aa"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__syscalls.html#ga933197ab561356f2b6dbbee785feff8d">vc_new_s_context</a> (<a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a> ctx, unsigned int remove_cap, unsigned int flags)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Moves current process into a contextPuts current process into context <em>ctx</em>, removes the capabilities given in <em>remove_cap</em> and sets <em>flags</em>.  <a href="#ga933197ab561356f2b6dbbee785feff8d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__syscalls.html#gad95cdca3b7f9e7a25f023ec1e2da1805">vc_set_ipv4root</a> (uint32_t bcast, size_t nb, struct <a class="el" href="structvc__ip__mask__pair.html">vc_ip_mask_pair</a> const *ips) VC_ATTR_NONNULL((3))</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the ipv4root information.  <a href="#gad95cdca3b7f9e7a25f023ec1e2da1805"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__syscalls.html#ga9166a915923f984ce708e8a45a3331eb">vc_ctx_create</a> (<a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a> xid, struct <a class="el" href="structvc__ctx__flags.html">vc_ctx_flags</a> *flags)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a context without starting it.This functions initializes a new context. When already in a freshly created context, this old context will be discarded.  <a href="#ga9166a915923f984ce708e8a45a3331eb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__syscalls.html#gaab913ae205a5a2e9c2c4e5d77eb79789">vc_ctx_migrate</a> (<a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a> xid, uint_least64_t flags)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Moves the current process into the specified context.  <a href="#gaab913ae205a5a2e9c2c4e5d77eb79789"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__syscalls.html#gad43bf1cc6583921a02c03015ed9bb348">vc_ctx_stat</a> (<a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a> xid, struct <a class="el" href="structvc__ctx__stat.html">vc_ctx_stat</a> *stat) VC_ATTR_NONNULL((2))</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get some statistics about a context.  <a href="#gad43bf1cc6583921a02c03015ed9bb348"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__syscalls.html#gaeef76baa362192d4e103aeaac148e735">vc_virt_stat</a> (<a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a> xid, struct <a class="el" href="structvc__virt__stat.html">vc_virt_stat</a> *stat) VC_ATTR_NONNULL((2))</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get more statistics about a context.  <a href="#gaeef76baa362192d4e103aeaac148e735"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaca2c20d2e6485b04cab4e1a40af3a72c"></a><!-- doxytag: member="syscalls::vc_ctx_kill" ref="gaca2c20d2e6485b04cab4e1a40af3a72c" args="(xid_t ctx, pid_t pid, int sig)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__syscalls.html#gaca2c20d2e6485b04cab4e1a40af3a72c">vc_ctx_kill</a> (<a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a> ctx, pid_t pid, int sig)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sends a signal to a context/pidSpecial values for <em>pid</em> are:</p>
<ul>
<li>-1 which means every process in ctx except the init-process</li>
<li>0 which means every process in ctx inclusive the init-process. </li>
</ul>
<br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__syscalls.html#ga2c9c68b714c4864287c9f6986573ae59">vc_get_task_xid</a> (pid_t pid)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the context of the given process.  <a href="#ga2c9c68b714c4864287c9f6986573ae59"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga837ce8bbb06ac2457c3125696ea08899"></a><!-- doxytag: member="syscalls::vc_wait_exit" ref="ga837ce8bbb06ac2457c3125696ea08899" args="(xid_t xid)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__syscalls.html#ga837ce8bbb06ac2457c3125696ea08899">vc_wait_exit</a> (<a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a> xid)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Waits for the end of a context. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__syscalls.html#gaebc11477d165e8f4b4183aff7019721b">vc_get_rlimit</a> (<a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a> xid, int resource, struct <a class="el" href="structvc__rlimit.html">vc_rlimit</a> *lim) VC_ATTR_NONNULL((3))</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the limits of <em>resource</em>.  <a href="#gaebc11477d165e8f4b4183aff7019721b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__syscalls.html#ga156a4d7f47464de28e0344577361bf46">vc_set_rlimit</a> (<a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a> xid, int resource, struct <a class="el" href="structvc__rlimit.html">vc_rlimit</a> const *lim) VC_ATTR_NONNULL((3))</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the limits of <em>resource</em>.  <a href="#ga156a4d7f47464de28e0344577361bf46"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__syscalls.html#gabec23f855f1b2feff9c69d88458ad1e4">vc_rlimit_stat</a> (<a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a> xid, int resource, struct <a class="el" href="structvc__rlimit__stat.html">vc_rlimit_stat</a> *stat) VC_ATTR_NONNULL((3))</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the current stats of <em>resource</em>.  <a href="#gabec23f855f1b2feff9c69d88458ad1e4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__syscalls.html#gaa7d81b266eda87b5b4260289b3959e29">vc_reset_minmax</a> (<a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a> xid)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Resets the minimum and maximum observed values of all resources.  <a href="#gaa7d81b266eda87b5b4260289b3959e29"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__syscalls.html#ga7cf4aa692997e33e4eb2c89685c16f69">vc_get_iattr</a> (char const *filename, <a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a> *xid, uint_least32_t *flags, uint_least32_t *mask) VC_ATTR_NONNULL((1))</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns information about attributes and assigned context of a file.This function returns the VC_IATTR_XXX flags and about the assigned context of a file. To request an information, the appropriate bit in <code>mask</code> must be set and the corresponding parameter (<em>xid</em> or <em>flags</em>) must not be NULL.  <a href="#ga7cf4aa692997e33e4eb2c89685c16f69"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__syscalls.html#gad0a70ac732d841b8204462997d575a9b">vc_getfilecontext</a> (char const *filename) VC_ATTR_NONNULL((1))</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the context of <code>filename</code> This function calls <a class="el" href="group__syscalls.html#ga7cf4aa692997e33e4eb2c89685c16f69" title="Returns information about attributes and assigned context of a file.This function...">vc_get_iattr()</a> with appropriate arguments to determine the context of <code>filename</code>. In error-case or when no context is assigned, <code>VC_NOCTX</code> will be returned. To differ between both cases, <code>errno</code> must be examined.  <a href="#gad0a70ac732d841b8204462997d575a9b"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Functions which are calling the vserver syscall directly. </p>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga9166a915923f984ce708e8a45a3331eb"></a><!-- doxytag: member="vserver.h::vc_ctx_create" ref="ga9166a915923f984ce708e8a45a3331eb" args="(xid_t xid, struct vc_ctx_flags *flags)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a> vc_ctx_create </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a>&nbsp;</td>
          <td class="paramname"> <em>xid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structvc__ctx__flags.html">vc_ctx_flags</a> *&nbsp;</td>
          <td class="paramname"> <em>flags</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Creates a context without starting it.This functions initializes a new context. When already in a freshly created context, this old context will be discarded. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>xid</em>&nbsp;</td><td>The new context; special values are:</p>
<ul>
<li>VC_DYNAMIC_XID which means to create a dynamic context</li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the xid of the created context, or VC_NOCTX on errors. <code>errno</code> will be set appropriately. </dd></dl>

</div>
</div>
<a class="anchor" id="gaab913ae205a5a2e9c2c4e5d77eb79789"></a><!-- doxytag: member="vserver.h::vc_ctx_migrate" ref="gaab913ae205a5a2e9c2c4e5d77eb79789" args="(xid_t xid, uint_least64_t flags)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int vc_ctx_migrate </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a>&nbsp;</td>
          <td class="paramname"> <em>xid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint_least64_t&nbsp;</td>
          <td class="paramname"> <em>flags</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Moves the current process into the specified context. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>xid</em>&nbsp;</td><td>The new context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>The flags, see VC_VXM_* </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success, -1 on errors </dd></dl>

</div>
</div>
<a class="anchor" id="gad43bf1cc6583921a02c03015ed9bb348"></a><!-- doxytag: member="vserver.h::vc_ctx_stat" ref="gad43bf1cc6583921a02c03015ed9bb348" args="(xid_t xid, struct vc_ctx_stat *stat) VC_ATTR_NONNULL((2))" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="structvc__ctx__stat.html">vc_ctx_stat</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a>&nbsp;</td>
          <td class="paramname"> <em>xid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structvc__ctx__stat.html">vc_ctx_stat</a> *&nbsp;</td>
          <td class="paramname"> <em>stat</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get some statistics about a context. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>xid</em>&nbsp;</td><td>The context to get stats about </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>stat</em>&nbsp;</td><td>Where to store the result</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success, -1 on errors. </dd></dl>

</div>
</div>
<a class="anchor" id="ga7cf4aa692997e33e4eb2c89685c16f69"></a><!-- doxytag: member="vserver.h::vc_get_iattr" ref="ga7cf4aa692997e33e4eb2c89685c16f69" args="(char const *filename, xid_t *xid, uint_least32_t *flags, uint_least32_t *mask) VC_ATTR_NONNULL((1))" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int vc_get_iattr </td>
          <td>(</td>
          <td class="paramtype">char const *&nbsp;</td>
          <td class="paramname"> <em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a> *&nbsp;</td>
          <td class="paramname"> <em>xid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint_least32_t *&nbsp;</td>
          <td class="paramname"> <em>flags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint_least32_t *&nbsp;</td>
          <td class="paramname"> <em>mask</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns information about attributes and assigned context of a file.This function returns the VC_IATTR_XXX flags and about the assigned context of a file. To request an information, the appropriate bit in <code>mask</code> must be set and the corresponding parameter (<em>xid</em> or <em>flags</em>) must not be NULL. </p>
<p>E.g. to receive the assigned context, the <code>VC_IATTR_XID</code> bit must be set in <em>mask</em>, and <em>xid</em> must point to valid memory.</p>
<p>Possible flags are <code>VC_IATTR_ADMIN</code>, <code>VC_IATTR_WATCH</code> , <code>VC_IATTR_HIDE</code>, <code>VC_IATTR_BARRIER</code>, <code>VC_IATTR_IUNLINK</code> and <code>VC_IATTR_IMMUTABLE</code>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td>The name of the file whose attributes shall be determined.</td></tr>
    <tr><td valign="top"></td><td valign="top"><em>xid</em>&nbsp;</td><td>When non-zero and the VC_IATTR_XID bit is set in <em>mask</em>, the assigned context of <em>filename</em> will be stored there. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>When non-zero, a bitmask of current attributes will be stored there. These attributes must be requested explicitly by setting the appropriate bit in <em>mask</em> </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>mask</em>&nbsp;</td><td>Points to a bitmask which tells which attributes shall be determined. On return, it will masquerade the attributes which were determined.</td></tr>
  </table>
  </dd>
</dl>
<dl class="pre"><dt><b>Precondition:</b></dt><dd>mask!=0 &amp;&amp; !((*mask&amp;VC_IATTR_XID) &amp;&amp; xid==0) &amp;&amp; !((*mask&amp;~VC_IATTR_XID) &amp;&amp; flags==0) </dd></dl>

</div>
</div>
<a class="anchor" id="gaebc11477d165e8f4b4183aff7019721b"></a><!-- doxytag: member="vserver.h::vc_get_rlimit" ref="gaebc11477d165e8f4b4183aff7019721b" args="(xid_t xid, int resource, struct vc_rlimit *lim) VC_ATTR_NONNULL((3))" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int vc_get_rlimit </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a>&nbsp;</td>
          <td class="paramname"> <em>xid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>resource</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structvc__rlimit.html">vc_rlimit</a> *&nbsp;</td>
          <td class="paramname"> <em>lim</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the limits of <em>resource</em>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>xid</em>&nbsp;</td><td>The id of the context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>resource</em>&nbsp;</td><td>The resource which will be queried </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>lim</em>&nbsp;</td><td>The result which will be filled with the limits</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success, and -1 on errors. </dd></dl>

</div>
</div>
<a class="anchor" id="ga2c9c68b714c4864287c9f6986573ae59"></a><!-- doxytag: member="vserver.h::vc_get_task_xid" ref="ga2c9c68b714c4864287c9f6986573ae59" args="(pid_t pid)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a> vc_get_task_xid </td>
          <td>(</td>
          <td class="paramtype">pid_t&nbsp;</td>
          <td class="paramname"> <em>pid</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the context of the given process. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pid</em>&nbsp;</td><td>the process-id whose xid shall be determined; pid==0 means the current process. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the xid of process <code>pid</code> or -1 on errors </dd></dl>

</div>
</div>
<a class="anchor" id="ga17d8ea85db471ef45d5a47ac8bc3b1aa"></a><!-- doxytag: member="vserver.h::vc_get_vci" ref="ga17d8ea85db471ef45d5a47ac8bc3b1aa" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">vc_vci_t vc_get_vci </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the kernel configuration bits. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>The kernel configuration bits </dd></dl>

</div>
</div>
<a class="anchor" id="ga1dedd9c37a14feda4eb3f04f0d29bc60"></a><!-- doxytag: member="vserver.h::vc_get_version" ref="ga1dedd9c37a14feda4eb3f04f0d29bc60" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int vc_get_version </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the version of the current kernel API. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>The versionnumber of the kernel API </dd></dl>

</div>
</div>
<a class="anchor" id="gad0a70ac732d841b8204462997d575a9b"></a><!-- doxytag: member="vserver.h::vc_getfilecontext" ref="gad0a70ac732d841b8204462997d575a9b" args="(char const *filename) VC_ATTR_NONNULL((1))" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a> vc_getfilecontext </td>
          <td>(</td>
          <td class="paramtype">char const *&nbsp;</td>
          <td class="paramname"> <em>filename</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the context of <code>filename</code> This function calls <a class="el" href="group__syscalls.html#ga7cf4aa692997e33e4eb2c89685c16f69" title="Returns information about attributes and assigned context of a file.This function...">vc_get_iattr()</a> with appropriate arguments to determine the context of <code>filename</code>. In error-case or when no context is assigned, <code>VC_NOCTX</code> will be returned. To differ between both cases, <code>errno</code> must be examined. </p>
<p><b>WARNING:</b> this function can modify <code>errno</code> although no error happened.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td>The file to check </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The assigned context, or VC_NOCTX when an error occured or no such assignment exists. <code>errno</code> will be 0 in the latter case </dd></dl>

</div>
</div>
<a class="anchor" id="ga933197ab561356f2b6dbbee785feff8d"></a><!-- doxytag: member="vserver.h::vc_new_s_context" ref="ga933197ab561356f2b6dbbee785feff8d" args="(xid_t ctx, unsigned int remove_cap, unsigned int flags)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a> vc_new_s_context </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a>&nbsp;</td>
          <td class="paramname"> <em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>remove_cap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>flags</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Moves current process into a contextPuts current process into context <em>ctx</em>, removes the capabilities given in <em>remove_cap</em> and sets <em>flags</em>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>The new context; special values for are</p>
<ul>
<li>VC_SAMECTX which means the current context (just for changing caps and flags)</li>
<li>VC_DYNAMIC_XID which means the next free context; this value can be used by ordinary users also </li>
</ul>
</td></tr>
    <tr><td valign="top"></td><td valign="top"><em>remove_cap</em>&nbsp;</td><td>The linux capabilities which will be <b>removed</b>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>Special flags which will be set.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The new context-id, or VC_NOCTX on errors; <code>errno</code> will be set appropriately</dd></dl>
<p>See <a href="http://vserver.13thfloor.at/Stuff/Logic.txt">http://vserver.13thfloor.at/Stuff/Logic.txt</a> for details </p>

</div>
</div>
<a class="anchor" id="gaa7d81b266eda87b5b4260289b3959e29"></a><!-- doxytag: member="vserver.h::vc_reset_minmax" ref="gaa7d81b266eda87b5b4260289b3959e29" args="(xid_t xid)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int vc_reset_minmax </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a>&nbsp;</td>
          <td class="paramname"> <em>xid</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Resets the minimum and maximum observed values of all resources. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>xid</em>&nbsp;</td><td>The id of the context</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success, and -1 on errors. </dd></dl>

</div>
</div>
<a class="anchor" id="gabec23f855f1b2feff9c69d88458ad1e4"></a><!-- doxytag: member="vserver.h::vc_rlimit_stat" ref="gabec23f855f1b2feff9c69d88458ad1e4" args="(xid_t xid, int resource, struct vc_rlimit_stat *stat) VC_ATTR_NONNULL((3))" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="structvc__rlimit__stat.html">vc_rlimit_stat</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a>&nbsp;</td>
          <td class="paramname"> <em>xid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>resource</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structvc__rlimit__stat.html">vc_rlimit_stat</a> *&nbsp;</td>
          <td class="paramname"> <em>stat</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the current stats of <em>resource</em>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>xid</em>&nbsp;</td><td>The id of the context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>resource</em>&nbsp;</td><td>The resource which will be queried </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>stat</em>&nbsp;</td><td>The result which will be filled with the stats</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success, and -1 on errors. </dd></dl>

</div>
</div>
<a class="anchor" id="gad95cdca3b7f9e7a25f023ec1e2da1805"></a><!-- doxytag: member="vserver.h::vc_set_ipv4root" ref="gad95cdca3b7f9e7a25f023ec1e2da1805" args="(uint32_t bcast, size_t nb, struct vc_ip_mask_pair const *ips) VC_ATTR_NONNULL((3))" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int vc_set_ipv4root </td>
          <td>(</td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>bcast</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>nb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structvc__ip__mask__pair.html">vc_ip_mask_pair</a> const *&nbsp;</td>
          <td class="paramname"> <em>ips</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the ipv4root information. </p>
<dl class="pre"><dt><b>Precondition:</b></dt><dd><em>nb</em> &lt; NB_IPV4ROOT &amp;&amp; <em>ips</em> != 0 </dd></dl>

</div>
</div>
<a class="anchor" id="ga156a4d7f47464de28e0344577361bf46"></a><!-- doxytag: member="vserver.h::vc_set_rlimit" ref="ga156a4d7f47464de28e0344577361bf46" args="(xid_t xid, int resource, struct vc_rlimit const *lim) VC_ATTR_NONNULL((3))" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int vc_set_rlimit </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a>&nbsp;</td>
          <td class="paramname"> <em>xid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>resource</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structvc__rlimit.html">vc_rlimit</a> const *&nbsp;</td>
          <td class="paramname"> <em>lim</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the limits of <em>resource</em>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>xid</em>&nbsp;</td><td>The id of the context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>resource</em>&nbsp;</td><td>The resource which will be queried </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>lim</em>&nbsp;</td><td>The new limits</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success, and -1 on errors. </dd></dl>

</div>
</div>
<a class="anchor" id="ga363272d33d716c4bea57127c9b6f4d35"></a><!-- doxytag: member="vserver.h::vc_syscall" ref="ga363272d33d716c4bea57127c9b6f4d35" args="(uint32_t cmd, xid_t xid, void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int vc_syscall </td>
          <td>(</td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>cmd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a>&nbsp;</td>
          <td class="paramname"> <em>xid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The generic vserver syscallThis function executes the generic vserver syscall. It uses the correct syscallnumber (which may differ between the different architectures). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cmd</em>&nbsp;</td><td>the command to be executed </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>xid</em>&nbsp;</td><td>the xid on which the cmd shall be applied </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>additional arguments; depends on <code>cmd</code> </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>depends on <code>cmd</code>; usually, -1 stands for an error </dd></dl>

</div>
</div>
<a class="anchor" id="gaeef76baa362192d4e103aeaac148e735"></a><!-- doxytag: member="vserver.h::vc_virt_stat" ref="gaeef76baa362192d4e103aeaac148e735" args="(xid_t xid, struct vc_virt_stat *stat) VC_ATTR_NONNULL((2))" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="structvc__virt__stat.html">vc_virt_stat</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="vserver_8h.html#ad5610de6ff910d4ac79675e956e89717">xid_t</a>&nbsp;</td>
          <td class="paramname"> <em>xid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structvc__virt__stat.html">vc_virt_stat</a> *&nbsp;</td>
          <td class="paramname"> <em>stat</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get more statistics about a context. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>xid</em>&nbsp;</td><td>The context to get stats about </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>stat</em>&nbsp;</td><td>Where to store the result</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success, -1 on errors. </dd></dl>

</div>
</div>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on Sun Aug 23 09:52:10 2009 for util-vserver (libvserver) by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.0 </small></address>
</body>
</html>