<Type Name="Syscall" FullName="Mono.Unix.Native.Syscall">
  <TypeSignature Language="C#" Value="public sealed class Syscall : Mono.Unix.Native.Stdlib" />
  <AssemblyInfo>
    <AssemblyName>Mono.Posix</AssemblyName>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <ThreadingSafetyStatement>Public static members of this type <i>may</i> be
  thread safe; check your operating system documentation.
  No instance members are guaranteed to be thread safe.</ThreadingSafetyStatement>
  <ThreadingSafetyStatement>All public static members of this type are
  probably safe for multithreaded operations within managed code.  (Methods
	which are obviously unsafe are synchronized, such as 
	<see cref="M:Mono.Unix.Native.Syscall.ttyname" />, but any hidden dependencies 
	between e.g.
  <see cref="M:Mono.Unix.Native.Syscall.ttyname" /> and 
  <see cref="M:Mono.Unix.Native.Syscall.read" /> are not protected.)
  No multithreading guarantee is made between managed and unmanaged code.  
  Check your operating system documentation for more information.
	</ThreadingSafetyStatement>
  <Base>
    <BaseTypeName>Mono.Unix.Native.Stdlib</BaseTypeName>
  </Base>
  <Interfaces />
  <Members>
    <Member MemberName="L_ctermid">
      <MemberSignature Language="C#" Value="public static readonly int L_ctermid = 9;" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <MemberValue>9</MemberValue>
      <Docs>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="L_cuserid">
      <MemberSignature Language="C#" Value="public static readonly int L_cuserid = 9;" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <MemberValue>9</MemberValue>
      <Docs>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="opendir">
      <MemberSignature Language="C#" Value="public static IntPtr opendir (string name);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.IntPtr</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="name" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="name">To be added.</param>
        <summary>Opens a directory at 'path'.</summary>
        <returns>To be added.</returns>
        <remarks>
          <example>
            <code lang="C#">
	
class OpendirDemo {
  public static void Main(string[] argv)
	{
		IntPtr dir = Syscall.opendir("/tmp");
		Dirent nextentry;
		
		while ((nextentry = Syscall.readdir (dir)) != null) {
			Console.WriteLine(nextentry.d_name);
		}

		Syscall.closedir (dir);
	}
}</code>
          </example>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="closedir">
      <MemberSignature Language="C#" Value="public static int closedir (IntPtr dir);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="dir" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <param name="dir">The directory to close.  This must be a value returned by <see cref="M:Mono.Unix.Native.Syscall.opendir" />.</param>
        <summary>Closes the directory.</summary>
        <returns>To be added.</returns>
        <remarks>
          <para>
            The
            <c>opendir</c>()
            function
            opens the directory named by
            <paramref name="filename" /> ,
            associates a
            <i>directory stream</i>
            with it
            and
            returns a pointer to be used to identify the
            <i>directory stream</i>
            in subsequent operations.
            The pointer
             <see cref="F:Mono.Unix.Native.TODO.NULL" /> 
            is returned if
            <paramref name="filename" /> 
            cannot be accessed, or if it cannot
            <see cref="M:Mono.Unix.Native.Syscall.malloc" />(3)
            enough memory to hold the whole thing.
          </para>
          <para>
            The
            <c>readdir</c>()
            function
            returns a pointer to the next directory entry.
            It returns
             <see cref="F:Mono.Unix.Native.TODO.NULL" /> 
            upon reaching the end of the directory or detecting an invalid
            <c>seekdir</c>()
            operation.
          </para>
          <para>
            The
            <c>readdir_r</c>()
            function
            provides the same functionality as
            <c>readdir</c>(),
            but the caller must provide a directory
            <paramref name="entry" /> 
            buffer to store the results in.
            If the read succeeds,
            <paramref name="result" /> 
            is pointed at the
            <paramref name="entry" /> ;
            upon reaching the end of the directory
            <paramref name="result" /> 
            is set to
             <see cref="F:Mono.Unix.Native.TODO.NULL" />  .
            The
            <c>readdir_r</c>()
            function
            returns 0 on success or an error number to indicate failure.
          </para>
          <para>
            The
            <c>telldir</c>()
            function
            returns the current location associated with the named
            <i>directory stream .</i>
            Values returned by
            <c>telldir</c>()
            are good only for the lifetime of the
             <see cref="F:Mono.Unix.Native.TODO.DIR" /> 
            pointer,
            <paramref name="dirp" /> ,
            from which they are derived.
            If the directory is closed and then
            reopened, prior values returned by
            <c>telldir</c>()
            will no longer be valid.
          </para>
          <para>
            The
            <c>seekdir</c>()
            function
            sets the position of the next
            <c>readdir</c>()
            operation on the
            <i>directory stream .</i>
            The new position reverts to the one associated with the
            <i>directory stream</i>
            when the
            <c>telldir</c>()
            operation was performed.
          </para>
          <para>
            The
            <c>rewinddir</c>()
            function
            resets the position of the named
            <i>directory stream</i>
            to the beginning of the directory.
          </para>
          <para>
            The
            <c>closedir</c>()
            function
            closes the named
            <i>directory stream</i>
            and frees the structure associated with the
            <paramref name="dirp" /> 
            pointer,
            returning 0 on success.
            On failure, -1 is returned and the global variable
            <see cref="M:Mono.Unix.Native.Stdlib.GetLastError" />
            is set to indicate the error.
          </para>
          <para>
            The
            <c>dirfd</c>()
            function
            returns the integer file descriptor associated with the named
            <i>directory stream ,</i>
            see
            <see cref="M:Mono.Unix.Native.Syscall.open" />(2) .
          </para>
          <para>
            Sample code which searches a directory for entry ``name'' is:
          </para>
          <block subset="none" type="usage">
            <para>len = strlen(name);</para>
            <para>dirp = opendir(".");</para>
            <para>while ((dp = readdir(dirp)) != NULL)</para>
            <para>
            </para>
            <para>
            </para>
            <para>
            </para>
            <para>
            </para>
            <para>(void)closedir(dirp);</para>
            <para>return NOT_FOUND;</para>
          </block>
          <para>
          </para>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.close" />
        <altmember cref="M:Mono.Unix.Native.Syscall.lseek" />
        <altmember cref="M:Mono.Unix.Native.Syscall.open" />
        <altmember cref="M:Mono.Unix.Native.Syscall.read" />
      </Docs>
    </Member>
    <Member MemberName="seekdir">
      <MemberSignature Language="C#" Value="public static int seekdir (IntPtr dir, long offset);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="dir" Type="System.IntPtr" />
        <Parameter Name="offset" Type="System.Int64" />
      </Parameters>
      <Docs>
        <param name="dir">To be added.</param>
        <param name="offset">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="telldir">
      <MemberSignature Language="C#" Value="public static long telldir (IntPtr dir);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="dir" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <param name="dir">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="readdir">
      <MemberSignature Language="C#" Value="public static Mono.Unix.Native.Dirent readdir (IntPtr dir);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.Native.Dirent</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="dir" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <param name="dir">To be added.</param>
        <summary>Read directory entry.</summary>
        <returns>To be added.</returns>
        <remarks>
          <example>
            <code lang="C#">
	
class ReaddirDemo {
	public static void Main(string[] argv)
	{
		IntPtr dir = Syscall.opendir("/tmp");
		Dirent nextentry;
		
		while ((nextentry = Syscall.readdir (dir)) != null) {
			Console.WriteLine(nextentry.d_name);
		}

		Syscall.closedir (dir);
	}
}</code>
          </example>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="readdir_r">
      <MemberSignature Language="C#" Value="public static int readdir_r (IntPtr dirp, Mono.Unix.Native.Dirent entry, out IntPtr result);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="dirp" Type="System.IntPtr" />
        <Parameter Name="entry" Type="Mono.Unix.Native.Dirent" />
        <Parameter Name="result" Type="System.IntPtr&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="dirp">To be added.</param>
        <param name="entry">To be added.</param>
        <param name="result">To be added.</param>
        <summary>Thread-safe version of <see cref="M:Mono.Unix.Native.Syscall.readdir" /></summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="dirfd">
      <MemberSignature Language="C#" Value="public static int dirfd (IntPtr dir);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="dir" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <param name="dir">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="fcntl">
      <MemberSignature Language="C#" Value="public static int fcntl (int fd, Mono.Unix.Native.FcntlCommand cmd);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="cmd" Type="Mono.Unix.Native.FcntlCommand" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="cmd">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="fcntl">
      <MemberSignature Language="C#" Value="public static int fcntl (int fd, Mono.Unix.Native.FcntlCommand cmd, long arg);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="cmd" Type="Mono.Unix.Native.FcntlCommand" />
        <Parameter Name="arg" Type="System.Int64" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="cmd">To be added.</param>
        <param name="arg">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="fcntl">
      <MemberSignature Language="C#" Value="public static int fcntl (int fd, Mono.Unix.Native.FcntlCommand cmd, ref Mono.Unix.Native.Flock lock);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="cmd" Type="Mono.Unix.Native.FcntlCommand" />
        <Parameter Name="lock" Type="Mono.Unix.Native.Flock&amp;" RefType="ref" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="cmd">To be added.</param>
        <param name="lock">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="open">
      <MemberSignature Language="C#" Value="public static int open (string pathname, Mono.Unix.Native.OpenFlags flags);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="pathname" Type="System.String" />
        <Parameter Name="flags" Type="Mono.Unix.Native.OpenFlags" />
      </Parameters>
      <Docs>
        <param name="pathname">To be added.</param>
        <param name="flags">To be added.</param>
        <summary>Creates/opens a file 'pathname' using the given file open flags.</summary>
        <returns>
          <para>
            If successful,
            <c>open</c>()
            returns a non-negative integer, termed a file descriptor.
            It returns -1 on failure, and sets
            <see cref="M:Mono.Unix.Native.Stdlib.GetLastError" />
            to indicate the error.
          </para>
          <block subset="none" type="usage">
            <para>
              The named file is opened unless:
            </para>
            <list type="table">
              <listheader>
                <term>
                  Error
                </term>
                <description>
                  Details
                </description>
              </listheader>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />
                </term>
                <description>
                  <para>
                    A component of the path prefix is not a directory.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />
                </term>
                <description>
                  <para>
                    A component of a pathname exceeded 255 characters,
                    or an entire path name exceeded 1023 characters.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOENT" />
                </term>
                <description>
                  <para>
                    <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> 
                    is not set and the named file does not exist.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOENT" />
                </term>
                <description>
                  <para>
                    A component of the path name that must exist does not exist.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EACCES" />
                </term>
                <description>
                  <para>
                    Search permission is denied for a component of the path prefix.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EACCES" />
                </term>
                <description>
                  <para>
                    The required permissions (for reading and/or writing)
                    are denied for the given flags.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EACCES" />
                </term>
                <description>
                  <para>
                    <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> 
                    is specified,
                    the file does not exist,
                    and the directory in which it is to be created
                    does not permit writing.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ELOOP" />
                </term>
                <description>
                  <para>
                    Too many symbolic links were encountered in translating the pathname.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EISDIR" />
                </term>
                <description>
                  <para>
                    The named file is a directory, and the arguments specify
                    it is to be opened for writing.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EROFS" />
                </term>
                <description>
                  <para>
                    The named file resides on a read-only file system,
                    and the file is to be modified.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EMFILE" />
                </term>
                <description>
                  <para>
                    The process has already reached its limit for open file descriptors.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENFILE" />
                </term>
                <description>
                  <para>
                    The system file table is full.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EMLINK" />
                </term>
                <description>
                  <para>
                    <see cref="F:Mono.Unix.Native.OpenFlags.O_NOFOLLOW" /> 
                    was specified and the target is a symbolic link.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENXIO" />
                </term>
                <description>
                  <para>
                    The named file is a character special or block
                    special file, and the device associated with this special file
                    does not exist.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENXIO" />
                </term>
                <description>
                  <para>
                    The named file is a fifo, no process has
                    it open for reading, and the arguments specify it is
                    to be opened for writing.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EINTR" />
                </term>
                <description>
                  <para>
                    The
                    <c>open</c>()
                    operation was interrupted by a signal.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />
                </term>
                <description>
                  <para>
                    <see cref="F:Mono.Unix.Native.OpenFlags.O_SHLOCK" /> 
                    or
                     <see cref="F:Mono.Unix.Native.OpenFlags.O_EXLOCK" /> 
                    is specified but the underlying file system does not support locking.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />
                </term>
                <description>
                  <para>
                    The named file is a special file mounted through a file system that
                    does not support access to it (e.g. NFS).
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EWOULDBLOCK" />
                </term>
                <description>
                  <para>
                    <see cref="F:Mono.Unix.Native.OpenFlags.O_NONBLOCK" /> 
                    and one of
                     <see cref="F:Mono.Unix.Native.OpenFlags.O_SHLOCK" /> 
                    or
                     <see cref="F:Mono.Unix.Native.OpenFlags.O_EXLOCK" /> 
                    is specified and the file is locked.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOSPC" />
                </term>
                <description>
                  <para>
                    <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> 
                    is specified,
                    the file does not exist,
                    and the directory in which the entry for the new file is being placed
                    cannot be extended because there is no space left on the file
                    system containing the directory.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOSPC" />
                </term>
                <description>
                  <para>
                    <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> 
                    is specified,
                    the file does not exist,
                    and there are no free inodes on the file system on which the
                    file is being created.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EDQUOT" />
                </term>
                <description>
                  <para>
                    <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> 
                    is specified,
                    the file does not exist,
                    and the directory in which the entry for the new file
                    is being placed cannot be extended because the
                    user's quota of disk blocks on the file system
                    containing the directory has been exhausted.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EDQUOT" />
                </term>
                <description>
                  <para>
                    <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> 
                    is specified,
                    the file does not exist,
                    and the user's quota of inodes on the file system on
                    which the file is being created has been exhausted.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EIO" />
                </term>
                <description>
                  <para>
                    An I/O error occurred while making the directory entry or
                    allocating the inode for
                     <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" />  .
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ETXTBSY" />
                </term>
                <description>
                  <para>
                    The file is a pure procedure (shared text) file that is being
                    executed and the
                    <c>open</c>()
                    system call requests write access.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EFAULT" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="path" /> 
                    argument
                    points outside the process's allocated address space.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EEXIST" />
                </term>
                <description>
                  <para>
                    <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> 
                    and
                     <see cref="F:Mono.Unix.Native.OpenFlags.O_EXCL" /> 
                    were specified and the file exists.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />
                </term>
                <description>
                  <para>
                    An attempt was made to open a socket (not currently implemented).
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EINVAL" />
                </term>
                <description>
                  <para>
                    An attempt was made to open a descriptor with an illegal combination
                    of
                     <see cref="F:Mono.Unix.Native.OpenFlags.O_RDONLY" />  ,
                     <see cref="F:Mono.Unix.Native.OpenFlags.O_WRONLY" />  ,
                    and
                     <see cref="F:Mono.Unix.Native.OpenFlags.O_RDWR" />  .
                  </para>
                </description>
              </item>
            </list>
            <para>
            </para>
          </block>
        </returns>
        <remarks>
          <para>
            The file name specified by
            <paramref name="path" /> 
            is opened
            for reading and/or writing as specified by the
            argument
            <paramref name="flags" /> 
            and the file descriptor returned to the calling process.
            The
            <paramref name="flags" /> 
            argument may indicate the file is to be
            created if it does not exist (by specifying the
             <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> 
            flag).
            In this case
            <c>open</c>()
            requires a third argument
            <paramref name="mode_t mode" /> ,
            and the file is created with mode
            <paramref name="mode" /> 
            as described in
            <see cref="M:Mono.Unix.Native.Syscall.chmod" />(2)
            and modified by the process' umask value (see
            <see cref="M:Mono.Unix.Native.Syscall.umask" />(2) ) .
          </para>
          <para>
            The flags specified are formed by
            <i>or Ns 'ing</i>
            the following values
          </para>
          <para>
          </para>
          <list type="table">
            <listheader>
              <term>Value</term>
              <description>Details</description>
            </listheader>
            <item>
              <term>O_RDONLY</term>
              <description>open for reading only</description>
            </item>
            <item>
              <term>O_WRONLY</term>
              <description>open for writing only</description>
            </item>
            <item>
              <term>O_RDWR</term>
              <description>open for reading and writing</description>
            </item>
            <item>
              <term>O_NONBLOCK</term>
              <description>do not block on open</description>
            </item>
            <item>
              <term>O_APPEND</term>
              <description>append on each write</description>
            </item>
            <item>
              <term>O_CREAT</term>
              <description>create file if it does not exist</description>
            </item>
            <item>
              <term>O_TRUNC</term>
              <description>truncate size to 0</description>
            </item>
            <item>
              <term>O_EXCL</term>
              <description>error if create and file exists</description>
            </item>
            <item>
              <term>O_SHLOCK</term>
              <description>atomically obtain a shared lock</description>
            </item>
            <item>
              <term>O_EXLOCK</term>
              <description>atomically obtain an exclusive lock</description>
            </item>
            <item>
              <term>O_DIRECT</term>
              <description>eliminate or reduce cache effects</description>
            </item>
            <item>
              <term>O_FSYNC</term>
              <description>synchronous writes</description>
            </item>
            <item>
              <term>O_NOFOLLOW</term>
              <description>do not follow symlinks</description>
            </item>
          </list>
          <para>
          </para>
          <para>
            Opening a file with
             <see cref="F:Mono.Unix.Native.OpenFlags.O_APPEND" /> 
            set causes each write on the file
            to be appended to the end.
            If
             <see cref="F:Mono.Unix.Native.OpenFlags.O_TRUNC" /> 
            is specified and the
            file exists, the file is truncated to zero length.
            If
             <see cref="F:Mono.Unix.Native.OpenFlags.O_EXCL" /> 
            is set with
             <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> 
            and the file already
            exists,
            <c>open</c>()
            returns an error.
            This may be used to
            implement a simple exclusive access locking mechanism.
            If
             <see cref="F:Mono.Unix.Native.OpenFlags.O_EXCL" /> 
            is set and the last component of the pathname is
            a symbolic link,
            <c>open</c>()
            will fail even if the symbolic
            link points to a non-existent name.
            If the
             <see cref="F:Mono.Unix.Native.OpenFlags.O_NONBLOCK" /> 
            flag is specified and the
            <c>open</c>()
            system call would result
            in the process being blocked for some reason (e.g., waiting for
            carrier on a dialup line),
            <c>open</c>()
            returns immediately.
            The descriptor remains in non-blocking mode for subsequent operations.
          </para>
          <para>
            If
             <see cref="F:Mono.Unix.Native.OpenFlags.O_FSYNC" /> 
            is used in the mask, all writes will
            immediately be written to disk,
            the kernel will not cache written data
            and all writes on the descriptor will not return until
            the data to be written completes.
          </para>
          <para>
            If
             <see cref="F:Mono.Unix.Native.OpenFlags.O_NOFOLLOW" /> 
            is used in the mask and the target file passed to
            <c>open</c>()
            is a symbolic link then the
            <c>open</c>()
            will fail.
          </para>
          <para>
            When opening a file, a lock with
            <see cref="M:Mono.Unix.Native.Syscall.flock" />(2)
            semantics can be obtained by setting
             <see cref="F:Mono.Unix.Native.OpenFlags.O_SHLOCK" /> 
            for a shared lock, or
             <see cref="F:Mono.Unix.Native.OpenFlags.O_EXLOCK" /> 
            for an exclusive lock.
            If creating a file with
             <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" />  ,
            the request for the lock will never fail
            (provided that the underlying file system supports locking).
          </para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_DIRECT" /> 
            may be used to minimize or eliminate the cache effects of reading and writing.
            The system will attempt to avoid caching the data you read or write.
            If it cannot avoid caching the data,
            it will minimize the impact the data has on the cache.
            Use of this flag can drastically reduce performance if not used with care.
          </para>
          <para>
            If successful,
            <c>open</c>()
            returns a non-negative integer, termed a file descriptor.
            It returns -1 on failure.
            The file pointer used to mark the current position within the
            file is set to the beginning of the file.
          </para>
          <para>
            When a new file is created it is given the group of the directory
            which contains it.
          </para>
          <para>
            The new descriptor is set to remain open across
            <see cref="M:Mono.Unix.Native.Syscall.execve" />(2)
            system calls; see
            <see cref="M:Mono.Unix.Native.Syscall.close" />(2)
            and
            <see cref="M:Mono.Unix.Native.Syscall.fcntl" />(2) .
          </para>
          <para>
            The system imposes a limit on the number of file descriptors
            open simultaneously by one process.
            The
            <see cref="M:Mono.Unix.Native.Syscall.getdtablesize" />(2)
            system call returns the current system limit.
          </para>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.chmod" />
        <altmember cref="M:Mono.Unix.Native.Syscall.close" />
        <altmember cref="M:Mono.Unix.Native.Syscall.dup" />
        <altmember cref="M:Mono.Unix.Native.Syscall.getdtablesize" />
        <altmember cref="M:Mono.Unix.Native.Syscall.lseek" />
        <altmember cref="M:Mono.Unix.Native.Syscall.read" />
        <altmember cref="M:Mono.Unix.Native.Syscall.umask" />
        <altmember cref="M:Mono.Unix.Native.Syscall.write" />
        <altmember cref="M:Mono.Unix.Native.Syscall.fopen" />
      </Docs>
    </Member>
    <Member MemberName="open">
      <MemberSignature Language="C#" Value="public static int open (string pathname, Mono.Unix.Native.OpenFlags flags, Mono.Unix.Native.FilePermissions mode);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="pathname" Type="System.String" />
        <Parameter Name="flags" Type="Mono.Unix.Native.OpenFlags" />
        <Parameter Name="mode" Type="Mono.Unix.Native.FilePermissions" />
      </Parameters>
      <Docs>
        <param name="pathname">To be added.</param>
        <param name="flags">To be added.</param>
        <param name="mode">To be added.</param>
        <summary>Creates/opens a file 'pathname' using the given open and file permission flags.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="creat">
      <MemberSignature Language="C#" Value="public static int creat (string pathname, Mono.Unix.Native.FilePermissions mode);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="pathname" Type="System.String" />
        <Parameter Name="mode" Type="Mono.Unix.Native.FilePermissions" />
      </Parameters>
      <Docs>
        <param name="pathname">To be added.</param>
        <param name="mode">To be added.</param>
        <summary>Creates a file 'pathname' using the given file mode flags.</summary>
        <returns>To be added.</returns>
        <remarks>
          <para>
            This interface is made obsolete by:
            <see cref="M:Mono.Unix.Native.Syscall.open" />(2) .
          </para>
          <para>
            The
            <c>creat</c>()
            function
            is the same as:
          </para>
          <block subset="none" type="usage">
            <para>open(path, O_CREAT | O_TRUNC | O_WRONLY, mode);</para>
          </block>
          <para>
          </para>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.open" />
      </Docs>
    </Member>
    <Member MemberName="posix_fadvise">
      <MemberSignature Language="C#" Value="public static int posix_fadvise (int fd, long offset, long len, Mono.Unix.Native.PosixFadviseAdvice advice);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="offset" Type="System.Int64" />
        <Parameter Name="len" Type="System.Int64" />
        <Parameter Name="advice" Type="Mono.Unix.Native.PosixFadviseAdvice" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="offset">To be added.</param>
        <param name="len">To be added.</param>
        <param name="advice">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getfsent">
      <MemberSignature Language="C#" Value="public static Mono.Unix.Native.Fstab getfsent ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.Native.Fstab</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getfsfile">
      <MemberSignature Language="C#" Value="public static Mono.Unix.Native.Fstab getfsfile (string mount_point);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.Native.Fstab</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="mount_point" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="mount_point">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getfsspec">
      <MemberSignature Language="C#" Value="public static Mono.Unix.Native.Fstab getfsspec (string special_file);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.Native.Fstab</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="special_file" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="special_file">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="setfsent">
      <MemberSignature Language="C#" Value="public static int setfsent ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="setgroups">
      <MemberSignature Language="C#" Value="public static int setgroups (ulong size, uint[] list);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="size" Type="System.UInt64" />
        <Parameter Name="list" Type="System.UInt32[]" />
      </Parameters>
      <Docs>
        <param name="size">To be added.</param>
        <param name="list">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="setgroups">
      <MemberSignature Language="C#" Value="public static int setgroups (uint[] list);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="list" Type="System.UInt32[]" />
      </Parameters>
      <Docs>
        <param name="list">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getgrnam">
      <MemberSignature Language="C#" Value="public static Mono.Unix.Native.Group getgrnam (string name);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.Native.Group</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="name" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="name">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getgrgid">
      <MemberSignature Language="C#" Value="public static Mono.Unix.Native.Group getgrgid (uint uid);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.Native.Group</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="uid" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <param name="uid">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getgrnam_r">
      <MemberSignature Language="C#" Value="public static int getgrnam_r (string name, Mono.Unix.Native.Group grbuf, out Mono.Unix.Native.Group grbufp);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="name" Type="System.String" />
        <Parameter Name="grbuf" Type="Mono.Unix.Native.Group" />
        <Parameter Name="grbufp" Type="Mono.Unix.Native.Group&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="name">To be added.</param>
        <param name="grbuf">To be added.</param>
        <param name="grbufp">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getgrgid_r">
      <MemberSignature Language="C#" Value="public static int getgrgid_r (uint uid, Mono.Unix.Native.Group grbuf, out Mono.Unix.Native.Group grbufp);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="uid" Type="System.UInt32" />
        <Parameter Name="grbuf" Type="Mono.Unix.Native.Group" />
        <Parameter Name="grbufp" Type="Mono.Unix.Native.Group&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="uid">To be added.</param>
        <param name="grbuf">To be added.</param>
        <param name="grbufp">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getgrent">
      <MemberSignature Language="C#" Value="public static Mono.Unix.Native.Group getgrent ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.Native.Group</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="fgetgrent">
      <MemberSignature Language="C#" Value="public static Mono.Unix.Native.Group fgetgrent (IntPtr stream);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.Native.Group</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="stream" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <param name="stream">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getpwnam">
      <MemberSignature Language="C#" Value="public static Mono.Unix.Native.Passwd getpwnam (string name);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.Native.Passwd</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="name" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="name">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getpwuid">
      <MemberSignature Language="C#" Value="public static Mono.Unix.Native.Passwd getpwuid (uint uid);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.Native.Passwd</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="uid" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <param name="uid">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getpwnam_r">
      <MemberSignature Language="C#" Value="public static int getpwnam_r (string name, Mono.Unix.Native.Passwd pwbuf, out Mono.Unix.Native.Passwd pwbufp);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="name" Type="System.String" />
        <Parameter Name="pwbuf" Type="Mono.Unix.Native.Passwd" />
        <Parameter Name="pwbufp" Type="Mono.Unix.Native.Passwd&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="name">To be added.</param>
        <param name="pwbuf">To be added.</param>
        <param name="pwbufp">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getpwuid_r">
      <MemberSignature Language="C#" Value="public static int getpwuid_r (uint uid, Mono.Unix.Native.Passwd pwbuf, out Mono.Unix.Native.Passwd pwbufp);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="uid" Type="System.UInt32" />
        <Parameter Name="pwbuf" Type="Mono.Unix.Native.Passwd" />
        <Parameter Name="pwbufp" Type="Mono.Unix.Native.Passwd&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="uid">To be added.</param>
        <param name="pwbuf">To be added.</param>
        <param name="pwbufp">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getpwent">
      <MemberSignature Language="C#" Value="public static Mono.Unix.Native.Passwd getpwent ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.Native.Passwd</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="fgetpwent">
      <MemberSignature Language="C#" Value="public static Mono.Unix.Native.Passwd fgetpwent (IntPtr stream);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.Native.Passwd</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="stream" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <param name="stream">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="kill">
      <MemberSignature Language="C#" Value="public static int kill (int pid, Mono.Unix.Native.Signum sig);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="pid" Type="System.Int32" />
        <Parameter Name="sig" Type="Mono.Unix.Native.Signum" />
      </Parameters>
      <Docs>
        <param name="pid">The process to signal.</param>
        <param name="sig">The signal to send.</param>
        <summary>Send a signal to the specified process.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="strsignal">
      <MemberSignature Language="C#" Value="public static string strsignal (Mono.Unix.Native.Signum sig);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="sig" Type="Mono.Unix.Native.Signum" />
      </Parameters>
      <Docs>
        <param name="sig">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="cuserid">
      <MemberSignature Language="C#" Value="public static string cuserid (System.Text.StringBuilder string);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="string" Type="System.Text.StringBuilder" />
      </Parameters>
      <Docs>
        <param name="string">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="ttyslot">
      <MemberSignature Language="C#" Value="public static int ttyslot ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="posix_madvise">
      <MemberSignature Language="C#" Value="public static int posix_madvise (IntPtr addr, ulong len, Mono.Unix.Native.PosixMadviseAdvice advice);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="addr" Type="System.IntPtr" />
        <Parameter Name="len" Type="System.UInt64" />
        <Parameter Name="advice" Type="Mono.Unix.Native.PosixMadviseAdvice" />
      </Parameters>
      <Docs>
        <param name="addr">To be added.</param>
        <param name="len">To be added.</param>
        <param name="advice">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="poll">
      <MemberSignature Language="C#" Value="public static int poll (Mono.Unix.Native.Pollfd[] fds, uint nfds, int timeout);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fds" Type="Mono.Unix.Native.Pollfd[]" />
        <Parameter Name="nfds" Type="System.UInt32" />
        <Parameter Name="timeout" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="fds">To be added.</param>
        <param name="nfds">To be added.</param>
        <param name="timeout">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="poll">
      <MemberSignature Language="C#" Value="public static int poll (Mono.Unix.Native.Pollfd[] fds, int timeout);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fds" Type="Mono.Unix.Native.Pollfd[]" />
        <Parameter Name="timeout" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="fds">To be added.</param>
        <param name="timeout">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="sendfile">
      <MemberSignature Language="C#" Value="public static long sendfile (int out_fd, int in_fd, ref long offset, ulong count);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="out_fd" Type="System.Int32" />
        <Parameter Name="in_fd" Type="System.Int32" />
        <Parameter Name="offset" Type="System.Int64&amp;" RefType="ref" />
        <Parameter Name="count" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="out_fd">To be added.</param>
        <param name="in_fd">To be added.</param>
        <param name="offset">To be added.</param>
        <param name="count">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="stat">
      <MemberSignature Language="C#" Value="public static int stat (string file_name, out Mono.Unix.Native.Stat buf);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="file_name" Type="System.String" />
        <Parameter Name="buf" Type="Mono.Unix.Native.Stat&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="file_name">To be added.</param>
        <param name="buf">To be added.</param>
        <summary>Get file status.</summary>
        <returns>
          <para>
            On success, <c>0</c> is returned.
            On error, <c>-1</c> is returned and
            <see cref="M:Mono.Unix.Native.Stdlib.GetLastError" />
            returns the translated error.
          </para>
          <block subset="none" type="usage">
            <para>
              The
              <c>stat</c>()
              and
              <c>lstat</c>()
              system calls will fail if:
            </para>
            <list type="table">
              <listheader>
                <term>
                  Error
                </term>
                <description>
                  Details
                </description>
              </listheader>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EACCES" />
                </term>
                <description>
                  <para>
                    Search permission is denied for a component of the path prefix.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EFAULT" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="sb" />
                    or
                    <paramref name="path" />
                    argument
                    points to an invalid address.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EIO" />
                </term>
                <description>
                  <para>
                    An I/O error occurred while reading from or writing to the file system.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ELOOP" />
                </term>
                <description>
                  <para>
                    Too many symbolic links were encountered in translating the
pathname.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />
                </term>
                <description>
                  <para>
                    A component of a pathname exceeded 255 characters,
                    or an entire path name exceeded 1023 characters.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOENT" />
                </term>
                <description>
                  <para>
                    The named file does not exist.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />
                </term>
                <description>
                  <para>
                    A component of the path prefix is not a directory.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EOVERFLOW" />
                </term>
                <description>
                  <para>
                    The file size in bytes cannot be
                    represented correctly in the structure pointed to by
                    <paramref name="sb" /> .
                  </para>
                </description>
              </item>
            </list>
          </block>
        </returns>
        <remarks>
          <para>
            The
            <c>stat</c>()
            system call obtains information about the file pointed to by
            <paramref name="path" /> .
            Read, write or execute
            permission of the named file is not required, but all directories
            listed in the path name leading to the file must be searchable.
          </para>
          <para>
            The
            <paramref name="sb" />
            argument is a pointer to a
            Vt stat            structure
            as defined by
            <c>sys/stat.h</c>
            and into which information is placed concerning the file.
          </para>
          <para>
            The fields of
            Vt "struct stat"            related to the file system are as follows:
          </para>
          <list type="table">
            <item>
              <term>
                <c>st_dev</c>
              </term>
              <description>
                <para>
                  The numeric ID of the device containing the file.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>st_ino</c>
              </term>
              <description>
                <para>
                  The file's inode number.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>st_nlink</c>
              </term>
              <description>
                <para>
                  The number of hard links to the file.
                </para>
              </description>
            </item>
          </list>
          <para>
          </para>
          <para>
            The
            <c>st_dev</c>
            and
            <c>st_ino</c>
            fields together identify the file uniquely within the system.
          </para>
          <para>
            The time-related fields of
            Vt "struct stat"            are as follows:
          </para>
          <list type="table">
            <item>
              <term>
                <c>st_atime</c>
              </term>
              <description>
                <para>
                  Time when file data last accessed.
                  Changed by the
                  <see cref="M:Mono.Unix.Native.Syscall.mknod" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.utimes" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.read" />(2)
                  and
                  <see cref="M:Mono.Unix.Native.Syscall.readv" />(2)
                  system calls.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>st_mtime</c>
              </term>
              <description>
                <para>
                  Time when file data last modified.
                  Changed by the
                  <see cref="M:Mono.Unix.Native.Syscall.mkdir" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.mkfifo" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.mknod" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.utimes" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.write" />(2)
                  and
                  <see cref="M:Mono.Unix.Native.Syscall.writev" />(2)
                  system calls.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>st_ctime</c>
              </term>
              <description>
                <para>
                  Time when file status was last changed (inode data modification).
                  Changed by the
                  <see cref="M:Mono.Unix.Native.Syscall.chflags" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.chmod" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.chown" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.creat" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.link" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.mkdir" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.mkfifo" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.mknod" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.rename" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.rmdir" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.symlink" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.truncate" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.unlink" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.utimes" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.write" />(2)
                  and
                  <see cref="M:Mono.Unix.Native.Syscall.writev" />(2)
                  system calls.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>st_birthtime</c>
              </term>
              <description>
                <para>
                  Time when the inode was created.
                </para>
              </description>
            </item>
          </list>
          <para>
          </para>
          <para>
            If <c>_POSIX_SOURCE</c>
            is not defined, the time-related fields are defined as:
          </para>
          <block subset="none" type="usage">
            <para>#ifndef _POSIX_SOURCE</para>
            <para>#define st_atime st_atimespec.tv_sec</para>
            <para>#define st_mtime st_mtimespec.tv_sec</para>
            <para>#define st_ctime st_ctimespec.tv_sec</para>
            <para>#endif</para>
          </block>
          <para>
          </para>
          <para>
            The size-related fields of the
            Vt "struct stat"            are as follows:
          </para>
          <list type="table">
            <item>
              <term>
                <c>st_size</c>
              </term>
              <description>
                <para>
                  The file size in bytes.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>st_blksize</c>
              </term>
              <description>
                <para>
                  The optimal I/O block size for the file.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>st_blocks</c>
              </term>
              <description>
                <para>
                  The actual number of blocks allocated for the file in 512-byte units.
                  As short symbolic links are stored in the inode, this number may
                  be zero.
                </para>
              </description>
            </item>
          </list>
          <para>
          </para>
          <para>
            The access-related fields of
            Vt "struct stat"            are as follows:
          </para>
          <list type="table">
            <item>
              <term>
                <c>st_uid</c>
              </term>
              <description>
                <para>
                  The user ID of the file's owner.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>st_gid</c>
              </term>
              <description>
                <para>
                  The group ID of the file.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>st_mode</c>
              </term>
              <description>
                <para>
                  Status of the file (see below).
                </para>
              </description>
            </item>
          </list>
          <para>
          </para>
          <para>
            The status information word
            <paramref name="st_mode" />
            has the following bits:
          </para>
          <block subset="none" type="usage">
            <para>#define S_IFMT   0170000  /* type of file */</para>
            <para>#define S_IFIFO  0010000  /* named pipe (fifo) */</para>
            <para>#define S_IFCHR  0020000  /* character special */</para>
            <para>#define S_IFDIR  0040000  /* directory */</para>
            <para>#define S_IFBLK  0060000  /* block special */</para>
            <para>#define S_IFREG  0100000  /* regular */</para>
            <para>#define S_IFLNK  0120000  /* symbolic link */</para>
            <para>#define S_IFSOCK 0140000  /* socket */</para>
            <para>#define S_IFWHT  0160000  /* whiteout */</para>
            <para>#define S_ISUID  0004000  /* set user id on execution */</para>
            <para>#define S_ISGID  0002000  /* set group id on execution */</para>
            <para>#define S_ISVTX  0001000  /* save swapped text even after use
*/</para>
            <para>#define S_IRUSR  0000400  /* read permission, owner */</para>
            <para>#define S_IWUSR  0000200  /* write permission, owner */</para>
            <para>#define S_IXUSR  0000100  /* execute/search permission, owner
*/</para>
          </block>
          <para>
          </para>
          <para>
            For a list of access modes, see
            <c>sys/stat.h</c> ,
            <see cref="M:Mono.Unix.Native.Syscall.access" />(2)
            and
            <see cref="M:Mono.Unix.Native.Syscall.chmod" />(2) .
            The following macros are available to test whether a
            <c>st_mode</c>
            value passed in the
            <paramref name="m" />
            argument corresponds to a file of the specified type:
          </para>
          <list type="table">
            <item>
              <term>
                <c>S_ISBLK</c>()m
              </term>
              <description>
                <para>
                  Test for a block special file.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>S_ISCHR</c>()m
              </term>
              <description>
                <para>
                  Test for a character special file.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>S_ISDIR</c>()m
              </term>
              <description>
                <para>
                  Test for a directory.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>S_ISFIFO</c>()m
              </term>
              <description>
                <para>
                  Test for a pipe or FIFO special file.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>S_ISLNK</c>()m
              </term>
              <description>
                <para>
                  Test for a symbolic link.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>S_ISREG</c>()m
              </term>
              <description>
                <para>
                  Test for a regular file.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>S_ISSOCK</c>()m
              </term>
              <description>
                <para>
                  Test for a socket.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>S_ISWHT</c>()m
              </term>
              <description>
                <para>
                  Test for a whiteout.
                </para>
              </description>
            </item>
          </list>
          <para>
          </para>
          <para>
            The macros evaluate to a non-zero value if the test is true
            or to the value 0 if the test is false.
          </para>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.access" />
        <altmember cref="M:Mono.Unix.Native.Syscall.chmod" />
        <altmember cref="M:Mono.Unix.Native.Syscall.chown" />
        <altmember cref="M:Mono.Unix.Native.Syscall.utimes" />
      </Docs>
    </Member>
    <Member MemberName="fstat">
      <MemberSignature Language="C#" Value="public static int fstat (int filedes, out Mono.Unix.Native.Stat buf);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="filedes" Type="System.Int32" />
        <Parameter Name="buf" Type="Mono.Unix.Native.Stat&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="filedes">To be added.</param>
        <param name="buf">To be added.</param>
        <summary>get file status</summary>
        <returns>
          <para>
            On success, zero is returned.
            On error, -1 is returned and 
            <see cref="M:Mono.Unix.Native.Stdlib.GetLastError" />
            returns the translated error.
          </para>
          <block subset="none" type="usage">
            <para>
              The
              <c>stat</c>()
              and
              <c>lstat</c>()
              system calls will fail if:
            </para>
            <list type="table">
              <listheader>
                <term>
                  Error
                </term>
                <description>
                  Details
                </description>
              </listheader>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EACCES" />
                </term>
                <description>
                  <para>
                    Search permission is denied for a component of the path prefix.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EFAULT" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="sb" /> 
                    or
                    <paramref name="path" /> 
                    argument
                    points to an invalid address.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EIO" />
                </term>
                <description>
                  <para>
                    An I/O error occurred while reading from or writing to the file system.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ELOOP" />
                </term>
                <description>
                  <para>
                    Too many symbolic links were encountered in translating the pathname.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />
                </term>
                <description>
                  <para>
                    A component of a pathname exceeded 255 characters,
                    or an entire path name exceeded 1023 characters.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOENT" />
                </term>
                <description>
                  <para>
                    The named file does not exist.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />
                </term>
                <description>
                  <para>
                    A component of the path prefix is not a directory.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EOVERFLOW" />
                </term>
                <description>
                  <para>
                    The file size in bytes cannot be
                    represented correctly in the structure pointed to by
                    <paramref name="sb" /> .
                  </para>
                </description>
              </item>
            </list>
            <para>
            </para>
            <para>
            </para>
            <list type="table">
              The
              <c>fstat</c>()
              system call will fail if:
              <listheader>
                <term>
                  Error
                </term>
                <description>
                  Details
                </description>
              </listheader><item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EBADF" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="fd" /> 
                    argument
                    is not a valid open file descriptor.
                  </para>
                </description>
              </item><item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EFAULT" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="sb" /> 
                    argument
                    points to an invalid address.
                  </para>
                </description>
              </item><item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EIO" />
                </term>
                <description>
                  <para>
                    An I/O error occurred while reading from or writing to the file system.
                  </para>
                </description>
              </item><item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EOVERFLOW" />
                </term>
                <description>
                  <para>
                    The file size in bytes cannot be
                    represented correctly in the structure pointed to by
                    <paramref name="sb" /> .
                  </para>
                </description>
              </item></list>
            <para>
            </para>
          </block>
        </returns>
        <remarks>
          <para>
            The
            <c>stat</c>()
            system call obtains information about the file pointed to by
            <paramref name="path" /> .
            Read, write or execute
            permission of the named file is not required, but all directories
            listed in the path name leading to the file must be searchable.
          </para>
          <para>
            The
            <c>lstat</c>()
            system call is like
            <c>stat</c>()
            except in the case where the named file is a symbolic link,
            in which case
            <c>lstat</c>()
            returns information about the link,
            while
            <c>stat</c>()
            returns information about the file the link references.
          </para>
          <para>
            The
            <c>fstat</c>()
            system call obtains the same information about an open file
            known by the file descriptor
            <paramref name="fd" /> .
          </para>
          <para>
            The
            <paramref name="sb" /> 
            argument is a pointer to a
            Vt stat            structure
            as defined by
            <c>sys/stat.h</c>
            and into which information is placed concerning the file.
          </para>
          <para>
            The fields of
            Vt "struct stat"            related to the file system are as follows:
          </para>
          <list type="table">
            <item>
              <term>
                <c>st_dev</c>
              </term>
              <description>
                <para>
                  The numeric ID of the device containing the file.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>st_ino</c>
              </term>
              <description>
                <para>
                  The file's inode number.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>st_nlink</c>
              </term>
              <description>
                <para>
                  The number of hard links to the file.
                </para>
              </description>
            </item>
          </list>
          <para>
          </para>
          <para>
            The
            <c>st_dev</c>
            and
            <c>st_ino</c>
            fields together identify the file uniquely within the system.
          </para>
          <para>
            The time-related fields of
            Vt "struct stat"            are as follows:
          </para>
          <list type="table">
            <item>
              <term>
                <c>st_atime</c>
              </term>
              <description>
                <para>
                  Time when file data last accessed.
                  Changed by the
                  <see cref="M:Mono.Unix.Native.Syscall.mknod" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.utimes" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.read" />(2)
                  and
                  <see cref="M:Mono.Unix.Native.Syscall.readv" />(2)
                  system calls.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>st_mtime</c>
              </term>
              <description>
                <para>
                  Time when file data last modified.
                  Changed by the
                  <see cref="M:Mono.Unix.Native.Syscall.mkdir" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.mkfifo" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.mknod" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.utimes" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.write" />(2)
                  and
                  <see cref="M:Mono.Unix.Native.Syscall.writev" />(2)
                  system calls.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>st_ctime</c>
              </term>
              <description>
                <para>
                  Time when file status was last changed (inode data modification).
                  Changed by the
                  <see cref="M:Mono.Unix.Native.Syscall.chflags" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.chmod" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.chown" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.creat" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.link" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.mkdir" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.mkfifo" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.mknod" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.rename" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.rmdir" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.symlink" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.truncate" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.unlink" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.utimes" />(2) ,
                  <see cref="M:Mono.Unix.Native.Syscall.write" />(2)
                  and
                  <see cref="M:Mono.Unix.Native.Syscall.writev" />(2)
                  system calls.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>st_birthtime</c>
              </term>
              <description>
                <para>
                  Time when the inode was created.
                </para>
              </description>
            </item>
          </list>
          <para>
          </para>
          <para>
            If
             <see cref="F:Mono.Unix.Native.TODO._POSIX_SOURCE" /> 
            is not defined, the time-related fields are defined as:
          </para>
          <block subset="none" type="usage">
            <para>#ifndef _POSIX_SOURCE</para>
            <para>#define st_atime st_atimespec.tv_sec</para>
            <para>#define st_mtime st_mtimespec.tv_sec</para>
            <para>#define st_ctime st_ctimespec.tv_sec</para>
            <para>#endif</para>
          </block>
          <para>
          </para>
          <para>
            The size-related fields of the
            Vt "struct stat"            are as follows:
          </para>
          <list type="table">
            <item>
              <term>
                <c>st_size</c>
              </term>
              <description>
                <para>
                  The file size in bytes.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>st_blksize</c>
              </term>
              <description>
                <para>
                  The optimal I/O block size for the file.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>st_blocks</c>
              </term>
              <description>
                <para>
                  The actual number of blocks allocated for the file in 512-byte units.
                  As short symbolic links are stored in the inode, this number may
                  be zero.
                </para>
              </description>
            </item>
          </list>
          <para>
          </para>
          <para>
            The access-related fields of
            Vt "struct stat"            are as follows:
          </para>
          <list type="table">
            <item>
              <term>
                <c>st_uid</c>
              </term>
              <description>
                <para>
                  The user ID of the file's owner.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>st_gid</c>
              </term>
              <description>
                <para>
                  The group ID of the file.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>st_mode</c>
              </term>
              <description>
                <para>
                  Status of the file (see below).
                </para>
              </description>
            </item>
          </list>
          <para>
          </para>
          <para>
            The status information word
            <paramref name="st_mode" /> 
            has the following bits:
          </para>
          <block subset="none" type="usage">
            <para>#define S_IFMT   0170000  /* type of file */</para>
            <para>#define S_IFIFO  0010000  /* named pipe (fifo) */</para>
            <para>#define S_IFCHR  0020000  /* character special */</para>
            <para>#define S_IFDIR  0040000  /* directory */</para>
            <para>#define S_IFBLK  0060000  /* block special */</para>
            <para>#define S_IFREG  0100000  /* regular */</para>
            <para>#define S_IFLNK  0120000  /* symbolic link */</para>
            <para>#define S_IFSOCK 0140000  /* socket */</para>
            <para>#define S_IFWHT  0160000  /* whiteout */</para>
            <para>#define S_ISUID  0004000  /* set user id on execution */</para>
            <para>#define S_ISGID  0002000  /* set group id on execution */</para>
            <para>#define S_ISVTX  0001000  /* save swapped text even after use */</para>
            <para>#define S_IRUSR  0000400  /* read permission, owner */</para>
            <para>#define S_IWUSR  0000200  /* write permission, owner */</para>
            <para>#define S_IXUSR  0000100  /* execute/search permission, owner */</para>
          </block>
          <para>
          </para>
          <para>
            For a list of access modes, see
            <c>sys/stat.h</c> ,
            <see cref="M:Mono.Unix.Native.Syscall.access" />(2)
            and
            <see cref="M:Mono.Unix.Native.Syscall.chmod" />(2) .
            The following macros are available to test whether a
            <c>st_mode</c>
            value passed in the
            <paramref name="m" /> 
            argument corresponds to a file of the specified type:
          </para>
          <list type="table">
            <item>
              <term>
                <c>S_ISBLK</c>()m
              </term>
              <description>
                <para>
                  Test for a block special file.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>S_ISCHR</c>()m
              </term>
              <description>
                <para>
                  Test for a character special file.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>S_ISDIR</c>()m
              </term>
              <description>
                <para>
                  Test for a directory.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>S_ISFIFO</c>()m
              </term>
              <description>
                <para>
                  Test for a pipe or FIFO special file.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>S_ISLNK</c>()m
              </term>
              <description>
                <para>
                  Test for a symbolic link.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>S_ISREG</c>()m
              </term>
              <description>
                <para>
                  Test for a regular file.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>S_ISSOCK</c>()m
              </term>
              <description>
                <para>
                  Test for a socket.
                </para>
              </description>
            </item>
            <item>
              <term>
                <c>S_ISWHT</c>()m
              </term>
              <description>
                <para>
                  Test for a whiteout.
                </para>
              </description>
            </item>
          </list>
          <para>
          </para>
          <para>
            The macros evaluate to a non-zero value if the test is true
            or to the value 0 if the test is false.
          </para>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.access" />
        <altmember cref="M:Mono.Unix.Native.Syscall.chmod" />
        <altmember cref="M:Mono.Unix.Native.Syscall.chown" />
        <altmember cref="M:Mono.Unix.Native.Syscall.utimes" />
      </Docs>
    </Member>
    <Member MemberName="lstat">
      <MemberSignature Language="C#" Value="public static int lstat (string file_name, out Mono.Unix.Native.Stat buf);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="file_name" Type="System.String" />
        <Parameter Name="buf" Type="Mono.Unix.Native.Stat&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="file_name">To be added.</param>
        <param name="buf">To be added.</param>
        <summary>Retrieves via output paramter the file status struct for a file. </summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="chmod">
      <MemberSignature Language="C#" Value="public static int chmod (string path, Mono.Unix.Native.FilePermissions mode);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="mode" Type="Mono.Unix.Native.FilePermissions" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="mode">To be added.</param>
        <summary>Change permissions for a file or folder.</summary>
        <returns>
          <para>
            On success, zero is returned.
            On error, -1 is returned and 
            <see cref="M:Mono.Unix.Native.Stdlib.GetLastError" />
            returns the translated error.
          </para>
          <block subset="none" type="usage">
            <para>
              The
              <c>chmod</c>()
              system call
              will fail and the file mode will be unchanged if:
            </para>
            <list type="table">
              <listheader>
                <term>
                  Error
                </term>
                <description>
                  Details
                </description>
              </listheader>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />
                </term>
                <description>
                  <para>
                    A component of the path prefix is not a directory.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />
                </term>
                <description>
                  <para>
                    A component of a pathname exceeded 255 characters,
                    or an entire path name exceeded 1023 characters.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOENT" />
                </term>
                <description>
                  <para>
                    The named file does not exist.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EACCES" />
                </term>
                <description>
                  <para>
                    Search permission is denied for a component of the path prefix.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ELOOP" />
                </term>
                <description>
                  <para>
                    Too many symbolic links were encountered in translating the pathname.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EPERM" />
                </term>
                <description>
                  <para>
                    The effective user ID does not match the owner of the file and
                    the effective user ID is not the super-user.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EROFS" />
                </term>
                <description>
                  <para>
                    The named file resides on a read-only file system.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EFAULT" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="path" /> 
                    argument
                    points outside the process's allocated address space.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EIO" />
                </term>
                <description>
                  <para>
                    An I/O error occurred while reading from or writing to the file system.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EFTYPE" />
                </term>
                <description>
                  <para>
                    An attempt was made to set the sticky bit upon an executable.
                  </para>
                </description>
              </item>
            </list>
            <para>
            </para>
            <para>
              The
              <c>fchmod</c>()
              system call will fail if:
            </para>
            <list type="table">
              <listheader>
                <term>
                  Error
                </term>
                <description>
                  Details
                </description>
              </listheader>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EBADF" />
                </term>
                <description>
                  <para>
                    The descriptor is not valid.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EINVAL" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="fd" /> 
                    argument
                    refers to a socket, not to a file.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EROFS" />
                </term>
                <description>
                  <para>
                    The file resides on a read-only file system.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EIO" />
                </term>
                <description>
                  <para>
                    An I/O error occurred while reading from or writing to the file system.
                  </para>
                </description>
              </item>
            </list>
            <para>
            </para>
          </block>
        </returns>
        <remarks>
          <para>
            The file permission bits of the file named specified by
            <paramref name="path" /> 
            or referenced by the file descriptor
            <paramref name="fd" /> 
            are changed to
            <paramref name="mode" /> .
            The
            <c>chmod</c>()
            system call verifies that the process owner (user) either owns
            the file specified by
            <paramref name="path" /> 
            (or
            <paramref name="fd" /> ) ,
            or
            is the super-user.
            The
            <c>chmod</c>()
            system call follows symbolic links to operate on the target of the link
            rather than the link itself.
          </para>
          <para>
            The
            <c>lchmod</c>()
            system call is similar to
            <c>chmod</c>()
            but does not follow symbolic links.
          </para>
          <para>
            A mode is created from
            <i>or'd</i>
            permission bit masks
            defined in
            <c>sys/stat.h</c> :
          </para>
          <para>
          </para>
          <block subset="none" type="usage">
            <para>#define S_IRWXU 0000700    /* RWX mask for owner */</para>
            <para>#define S_IRUSR 0000400    /* R for owner */</para>
            <para>#define S_IWUSR 0000200    /* W for owner */</para>
            <para>#define S_IXUSR 0000100    /* X for owner */</para>
            <para>
            </para>
            <para>#define S_IRWXG 0000070    /* RWX mask for group */</para>
            <para>#define S_IRGRP 0000040    /* R for group */</para>
            <para>#define S_IWGRP 0000020    /* W for group */</para>
            <para>#define S_IXGRP 0000010    /* X for group */</para>
            <para>
            </para>
            <para>#define S_IRWXO 0000007    /* RWX mask for other */</para>
            <para>#define S_IROTH 0000004    /* R for other */</para>
            <para>#define S_IWOTH 0000002    /* W for other */</para>
            <para>#define S_IXOTH 0000001    /* X for other */</para>
            <para>
            </para>
            <para>#define S_ISUID 0004000    /* set user id on execution */</para>
            <para>#define S_ISGID 0002000    /* set group id on execution */</para>
            <para>#ifndef __BSD_VISIBLE</para>
            <para>#define S_ISTXT 0001000    /* sticky bit */</para>
            <para>#endif</para>
          </block>
          <para>
          </para>
          <para>
            The
            Fx            VM system totally ignores the sticky bit
             <see cref="F:Mono.Unix.Native.TODO.ISTXT" /> 
            for executables.
            On UFS-based file systems (FFS, LFS) the sticky
            bit may only be set upon directories.
          </para>
          <para>
            If mode
             <see cref="F:Mono.Unix.Native.TODO.ISTXT" /> 
            (the `sticky bit') is set on a directory,
            an unprivileged user may not delete or rename
            files of other users in that directory.
            The sticky bit may be
            set by any user on a directory which the user owns or has appropriate
            permissions.
            For more details of the properties of the sticky bit, see
            <c>sticky</c>(8) .
          </para>
          <para>
            If mode ISUID (set UID) is set on a directory,
            and the MNT_SUIDDIR option was used in the mount of the file system,
            then the owner of any new files and sub-directories
            created within this directory are set
            to be the same as the owner of that directory.
            If this function is enabled, new directories will inherit
            the bit from their parents.
            Execute bits are removed from
            the file, and it will not be given to root.
            This behavior does not change the
            requirements for the user to be allowed to write the file, but only the eventual
            owner after it has been created.
            Group inheritance is not affected.
          </para>
          <para>
            This feature is designed for use on fileservers serving PC users via
            ftp, SAMBA, or netatalk.
            It provides security holes for shell users and as
            such should not be used on shell machines, especially on home directories.
            This option requires the SUIDDIR
            option in the kernel to work.
            Only UFS file systems support this option.
            For more details of the suiddir mount option, see
            <c>mount</c>(8) .
          </para>
          <para>
            Writing or changing the owner of a file
            turns off the set-user-id and set-group-id bits
            unless the user is the super-user.
            This makes the system somewhat more secure
            by protecting set-user-id (set-group-id) files
            from remaining set-user-id (set-group-id) if they are modified,
            at the expense of a degree of compatibility.
          </para>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.chown" />
        <altmember cref="M:Mono.Unix.Native.Syscall.open" />
        <altmember cref="M:Mono.Unix.Native.Syscall.stat" />
      </Docs>
    </Member>
    <Member MemberName="fchmod">
      <MemberSignature Language="C#" Value="public static int fchmod (int filedes, Mono.Unix.Native.FilePermissions mode);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="filedes" Type="System.Int32" />
        <Parameter Name="mode" Type="Mono.Unix.Native.FilePermissions" />
      </Parameters>
      <Docs>
        <param name="filedes">To be added.</param>
        <param name="mode">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="umask">
      <MemberSignature Language="C#" Value="public static Mono.Unix.Native.FilePermissions umask (Mono.Unix.Native.FilePermissions mask);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.Native.FilePermissions</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="mask" Type="Mono.Unix.Native.FilePermissions" />
      </Parameters>
      <Docs>
        <param name="mask">To be added.</param>
        <summary>Sets new umask.</summary>
        <returns>Returns previous umask value.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="mkdir">
      <MemberSignature Language="C#" Value="public static int mkdir (string oldpath, Mono.Unix.Native.FilePermissions mode);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="oldpath" Type="System.String" />
        <Parameter Name="mode" Type="Mono.Unix.Native.FilePermissions" />
      </Parameters>
      <Docs>
        <param name="oldpath">To be added.</param>
        <param name="mode">To be added.</param>
        <summary>Create a directory at 'path' with the given FilePermissions.</summary>
        <returns>
          <para>
            On success, zero is returned.
            On error, -1 is returned and 
            <see cref="M:Mono.Unix.Native.Stdlib.GetLastError" />
            returns the translated error.
          </para>
          <block subset="none" type="usage">
            <para>
              The
              <c>mkdir</c>()
              system call
              will fail and no directory will be created if:
            </para>
            <list type="table">
              <listheader>
                <term>
                  Error
                </term>
                <description>
                  Details
                </description>
              </listheader>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />
                </term>
                <description>
                  <para>
                    A component of the path prefix is not a directory.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />
                </term>
                <description>
                  <para>
                    A component of a pathname exceeded 255 characters,
                    or an entire path name exceeded 1023 characters.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOENT" />
                </term>
                <description>
                  <para>
                    A component of the path prefix does not exist.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EACCES" />
                </term>
                <description>
                  <para>
                    Search permission is denied for a component of the path prefix,
                    or write permission is denied
                    on the parent directory of the directory to be created.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ELOOP" />
                </term>
                <description>
                  <para>
                    Too many symbolic links were encountered in translating the pathname.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EROFS" />
                </term>
                <description>
                  <para>
                    The named file resides on a read-only file system.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EEXIST" />
                </term>
                <description>
                  <para>
                    The named file exists.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOSPC" />
                </term>
                <description>
                  <para>
                    The new directory cannot be created because there is no space left
                    on the file system that will contain the directory.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOSPC" />
                </term>
                <description>
                  <para>
                    There are no free inodes on the file system on which the
                    directory is being created.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EDQUOT" />
                </term>
                <description>
                  <para>
                    The new directory cannot be created because the user's
                    quota of disk blocks on the file system that will
                    contain the directory has been exhausted.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EDQUOT" />
                </term>
                <description>
                  <para>
                    The user's quota of inodes on the file system on
                    which the directory is being created has been exhausted.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EIO" />
                </term>
                <description>
                  <para>
                    An I/O error occurred while making the directory entry or allocating the inode.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EIO" />
                </term>
                <description>
                  <para>
                    An I/O error occurred while reading from or writing to the file system.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EFAULT" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="path" /> 
                    argument
                    points outside the process's allocated address space.
                  </para>
                </description>
              </item>
            </list>
            <para>
            </para>
          </block>
        </returns>
        <remarks>
          <para>
            The directory
            <paramref name="path" /> 
            is created with the access permissions specified by
            <paramref name="mode" /> 
            and restricted by the
            <see cref="M:Mono.Unix.Native.Syscall.umask" />(2)
            of the calling process.
          </para>
          <para>
            The directory's owner ID is set to the process's effective user ID.
            The directory's group ID is set to that of the parent directory in
            which it is created.
          </para>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.chmod" />
        <altmember cref="M:Mono.Unix.Native.Syscall.stat" />
        <altmember cref="M:Mono.Unix.Native.Syscall.umask" />
      </Docs>
    </Member>
    <Member MemberName="mknod">
      <MemberSignature Language="C#" Value="public static int mknod (string pathname, Mono.Unix.Native.FilePermissions mode, ulong dev);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="pathname" Type="System.String" />
        <Parameter Name="mode" Type="Mono.Unix.Native.FilePermissions" />
        <Parameter Name="dev" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="pathname">To be added.</param>
        <param name="mode">To be added.</param>
        <param name="dev">To be added.</param>
        <summary>Create a special file node.</summary>
        <returns>
          <para>
            On success, zero is returned.
            On error, -1 is returned and 
            <see cref="M:Mono.Unix.Native.Stdlib.GetLastError" />
            returns the translated error.
          </para>
          <block subset="none" type="usage">
            <para>
              The
              <c>mknod</c>()
              system call
              will fail and the file will be not created if:
            </para>
            <list type="table">
              <listheader>
                <term>
                  Error
                </term>
                <description>
                  Details
                </description>
              </listheader>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />
                </term>
                <description>
                  <para>
                    A component of the path prefix is not a directory.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />
                </term>
                <description>
                  <para>
                    A component of a pathname exceeded 255 characters,
                    or an entire path name exceeded 1023 characters.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOENT" />
                </term>
                <description>
                  <para>
                    A component of the path prefix does not exist.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EACCES" />
                </term>
                <description>
                  <para>
                    Search permission is denied for a component of the path prefix.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ELOOP" />
                </term>
                <description>
                  <para>
                    Too many symbolic links were encountered in translating the pathname.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EPERM" />
                </term>
                <description>
                  <para>
                    The process's effective user ID is not super-user.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EIO" />
                </term>
                <description>
                  <para>
                    An I/O error occurred while making the directory entry or allocating the inode.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOSPC" />
                </term>
                <description>
                  <para>
                    The directory in which the entry for the new node is being placed
                    cannot be extended because there is no space left on the file
                    system containing the directory.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOSPC" />
                </term>
                <description>
                  <para>
                    There are no free inodes on the file system on which the
                    node is being created.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EDQUOT" />
                </term>
                <description>
                  <para>
                    The directory in which the entry for the new node
                    is being placed cannot be extended because the
                    user's quota of disk blocks on the file system
                    containing the directory has been exhausted.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EDQUOT" />
                </term>
                <description>
                  <para>
                    The user's quota of inodes on the file system on
                    which the node is being created has been exhausted.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EROFS" />
                </term>
                <description>
                  <para>
                    The named file resides on a read-only file system.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EEXIST" />
                </term>
                <description>
                  <para>
                    The named file exists.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EFAULT" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="path" /> 
                    argument
                    points outside the process's allocated address space.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EINVAL" />
                </term>
                <description>
                  <para>
                    Creating anything else than a block or character special
                    file (or a
                    <i>whiteout )</i>
                    is not supported.
                  </para>
                </description>
              </item>
            </list>
            <para>
            </para>
          </block>
        </returns>
        <remarks>
          <para>
            The file system node
            <paramref name="path" /> 
            is created with the file type and access permissions specified in
            <paramref name="mode" /> .
            The access permissions are modified by the process's umask value.
          </para>
          <para>
            If
            <paramref name="mode" /> 
            indicates a block or character special file,
            <paramref name="dev" /> 
            is a configuration dependent specification denoting a particular device
            on the system.
            Otherwise,
            <paramref name="dev" /> 
            is ignored.
          </para>
          <para>
            The
            <c>mknod</c>()
            system call
            requires super-user privileges.
          </para>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.chmod" />
        <altmember cref="M:Mono.Unix.Native.Syscall.mkfifo" />
        <altmember cref="M:Mono.Unix.Native.Syscall.stat" />
        <altmember cref="M:Mono.Unix.Native.Syscall.umask" />
      </Docs>
    </Member>
    <Member MemberName="mkfifo">
      <MemberSignature Language="C#" Value="public static int mkfifo (string pathname, Mono.Unix.Native.FilePermissions mode);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="pathname" Type="System.String" />
        <Parameter Name="mode" Type="Mono.Unix.Native.FilePermissions" />
      </Parameters>
      <Docs>
        <param name="pathname">To be added.</param>
        <param name="mode">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="statvfs">
      <MemberSignature Language="C#" Value="public static int statvfs (string path, out Mono.Unix.Native.Statvfs buf);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="buf" Type="Mono.Unix.Native.Statvfs&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="buf">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="fstatvfs">
      <MemberSignature Language="C#" Value="public static int fstatvfs (int fd, out Mono.Unix.Native.Statvfs buf);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="buf" Type="Mono.Unix.Native.Statvfs&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="buf">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="gettimeofday">
      <MemberSignature Language="C#" Value="public static int gettimeofday (out Mono.Unix.Native.Timeval tv, out Mono.Unix.Native.Timezone tz);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="tv" Type="Mono.Unix.Native.Timeval&amp;" RefType="out" />
        <Parameter Name="tz" Type="Mono.Unix.Native.Timezone&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="tv">To be added.</param>
        <param name="tz">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="gettimeofday">
      <MemberSignature Language="C#" Value="public static int gettimeofday (out Mono.Unix.Native.Timeval tv);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="tv" Type="Mono.Unix.Native.Timeval&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="tv">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="gettimeofday">
      <MemberSignature Language="C#" Value="public static int gettimeofday (out Mono.Unix.Native.Timezone tz);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="tz" Type="Mono.Unix.Native.Timezone&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="tz">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="settimeofday">
      <MemberSignature Language="C#" Value="public static int settimeofday (ref Mono.Unix.Native.Timeval tv, ref Mono.Unix.Native.Timezone tz);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="tv" Type="Mono.Unix.Native.Timeval&amp;" RefType="ref" />
        <Parameter Name="tz" Type="Mono.Unix.Native.Timezone&amp;" RefType="ref" />
      </Parameters>
      <Docs>
        <param name="tv">To be added.</param>
        <param name="tz">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="settimeofday">
      <MemberSignature Language="C#" Value="public static int settimeofday (ref Mono.Unix.Native.Timeval tv);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="tv" Type="Mono.Unix.Native.Timeval&amp;" RefType="ref" />
      </Parameters>
      <Docs>
        <param name="tv">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="wait">
      <MemberSignature Language="C#" Value="public static int wait (out int status);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="status" Type="System.Int32&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="status">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="waitpid">
      <MemberSignature Language="C#" Value="public static int waitpid (int pid, out int status, Mono.Unix.Native.WaitOptions options);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="pid" Type="System.Int32" />
        <Parameter Name="status" Type="System.Int32&amp;" RefType="out" />
        <Parameter Name="options" Type="Mono.Unix.Native.WaitOptions" />
      </Parameters>
      <Docs>
        <param name="pid">To be added.</param>
        <param name="status">To be added.</param>
        <param name="options">To be added.</param>
        <summary>Wait for a child process to stop or terminate.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="WIFEXITED">
      <MemberSignature Language="C#" Value="public static bool WIFEXITED (int status);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="status" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="status">To be added.</param>
        <summary />
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="WEXITSTATUS">
      <MemberSignature Language="C#" Value="public static int WEXITSTATUS (int status);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="status" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="status">The process status, as obtained through <see cref="M:Mono.Unix.Native.Syscall.wait" /> or <see cref="M:Mono.Unix.Native.Syscall.waitpid" />.</param>
        <summary>Returns the exit status of the process.</summary>
        <returns>The exit status of a process.</returns>
        <remarks>This can only be called if <see cref="M:Mono.Unix.Native.Syscall.WIFEXITED" /> has returned <see langword="true" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="WIFSIGNALED">
      <MemberSignature Language="C#" Value="public static bool WIFSIGNALED (int status);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="status" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="status">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="WTERMSIG">
      <MemberSignature Language="C#" Value="public static Mono.Unix.Native.Signum WTERMSIG (int status);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.Native.Signum</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="status" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="status">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="WIFSTOPPED">
      <MemberSignature Language="C#" Value="public static bool WIFSTOPPED (int status);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="status" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="status">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="WSTOPSIG">
      <MemberSignature Language="C#" Value="public static Mono.Unix.Native.Signum WSTOPSIG (int status);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.Native.Signum</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="status" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="status">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="setlogmask">
      <MemberSignature Language="C#" Value="public static int setlogmask (Mono.Unix.Native.SyslogLevel mask);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="mask" Type="Mono.Unix.Native.SyslogLevel" />
      </Parameters>
      <Docs>
        <param name="mask">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="stime">
      <MemberSignature Language="C#" Value="public static int stime (ref long t);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="t" Type="System.Int64&amp;" RefType="ref" />
      </Parameters>
      <Docs>
        <param name="t">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="time">
      <MemberSignature Language="C#" Value="public static long time (out long t);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="t" Type="System.Int64&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="t">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="lseek">
      <MemberSignature Language="C#" Value="public static long lseek (int fd, long offset, Mono.Unix.Native.SeekFlags whence);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="offset" Type="System.Int64" />
        <Parameter Name="whence" Type="Mono.Unix.Native.SeekFlags" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="offset">To be added.</param>
        <param name="whence">To be added.</param>
        <summary>Changes the read/write file offset of a file descriptor.</summary>
        <returns>To be added.</returns>
        <remarks>The offset parameter is interpreted according to the possible following values of whence: 
<list type="table">
            <listheader>
              <term>Value</term>
              <description>Description</description>
            </listheader>
            <item>
              <term>SEEK_SET</term>
              <description>the new file offset will be the current offset plus offset.</description>
            </item>
            <item>
              <term>SEEK_CUR</term>
              <description>the new file offset will be offset.</description>
            </item>
            <item>
              <term>SEEK_END</term>
              <description>the new file offset will be the end of the file plus offset. </description>
            </item>
          </list>
If we seek past the end of a file, the new file region contains 0. </remarks>
      </Docs>
    </Member>
    <Member MemberName="close">
      <MemberSignature Language="C#" Value="public static int close (int fd);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <summary>Closes the file descriptor.</summary>
        <returns>
          <para>
            On success, zero is returned.
            On error, -1 is returned and 
            <see cref="M:Mono.Unix.Native.Stdlib.GetLastError" />
            returns the translated error.
          </para>
          <block subset="none" type="usage">
            <para>
              The
              <c>close</c>()
              system call will fail if:
            </para>
            <list type="table">
              <listheader>
                <term>
                  Error
                </term>
                <description>
                  Details
                </description>
              </listheader>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EBADF" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="d" /> 
                    argument
                    is not an active descriptor.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EINTR" />
                </term>
                <description>
                  <para>
                    An interrupt was received.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOSPC" />
                </term>
                <description>
                  <para>
                    The underlying object did not fit, cached data was lost.
                  </para>
                </description>
              </item>
            </list>
            <para>
            </para>
          </block>
        </returns>
        <remarks>
          <para>
            The
            <c>close</c>()
            system call deletes a descriptor from the per-process object
            reference table.
            If this is the last reference to the underlying object, the
            object will be deactivated.
            For example, on the last close of a file
            the current
            <i>seek</i>
            pointer associated with the file is lost;
            on the last close of a
            <see cref="M:Mono.Unix.Native.Syscall.socket" />(2)
            associated naming information and queued data are discarded;
            on the last close of a file holding an advisory lock
            the lock is released (see further
            <see cref="M:Mono.Unix.Native.Syscall.flock" />(2) ) .
            However, the semantics of System V and
            St -p1003.1-88            dictate that all
            <see cref="M:Mono.Unix.Native.Syscall.fcntl" />(2)
            advisory record locks associated with a file for a given process
            are removed when
            <i>any</i>
            file descriptor for that file is closed by that process.
          </para>
          <para>
            When a process exits,
            all associated file descriptors are freed, but since there is
            a limit on active descriptors per processes, the
            <c>close</c>()
            system call
            is useful when a large quantity of file descriptors are being handled.
          </para>
          <para>
            When a process forks (see
            <see cref="M:Mono.Unix.Native.Syscall.fork" />(2) ) ,
            all descriptors for the new child process reference the same
            objects as they did in the parent before the fork.
            If a new process is then to be run using
            <see cref="M:Mono.Unix.Native.Syscall.execve" />(2) ,
            the process would normally inherit these descriptors.
            Most
            of the descriptors can be rearranged with
            <see cref="M:Mono.Unix.Native.Syscall.dup2" />(2)
            or deleted with
            <c>close</c>()
            before the
            <see cref="M:Mono.Unix.Native.Syscall.execve" />(2)
            is attempted, but if some of these descriptors will still
            be needed if the execve fails, it is necessary to arrange for them
            to be closed if the execve succeeds.
            For this reason, the call
            <c>Li fcntl(d, F_SETFD, FD_CLOEXEC)</c>
            is provided,
            which arranges that a descriptor will be closed after a successful
            execve; the call
            <c>Li fcntl(d, F_SETFD, 0)</c>
            restores the default,
            which is to not close the descriptor.
          </para>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.accept" />
        <altmember cref="M:Mono.Unix.Native.Syscall.execve" />
        <altmember cref="M:Mono.Unix.Native.Syscall.fcntl" />
        <altmember cref="M:Mono.Unix.Native.Syscall.flock" />
        <altmember cref="M:Mono.Unix.Native.Syscall.open" />
        <altmember cref="M:Mono.Unix.Native.Syscall.pipe" />
        <altmember cref="M:Mono.Unix.Native.Syscall.socket" />
        <altmember cref="M:Mono.Unix.Native.Syscall.socketpair" />
      </Docs>
    </Member>
    <Member MemberName="read">
      <MemberSignature Language="C#" Value="public static long read (int fd, IntPtr buf, ulong count);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="buf" Type="System.IntPtr" />
        <Parameter Name="count" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="buf">To be added.</param>
        <param name="count">To be added.</param>
        <summary>Reads up to count bytes into buf from fd.</summary>
        <returns>
          <para>
            If successful, the
            number of bytes actually read is returned.
            Upon reading end-of-file,
            zero is returned.
            Otherwise, a -1 is returned and the global variable
            <see cref="M:Mono.Unix.Native.Stdlib.GetLastError" />
            is set to indicate the error.
          </para>
          <block subset="none" type="usage">
            <para>
              The
              <c>read</c>(),
              <c>readv</c>(),
              and
              <c>pread</c>()
              system calls
              will succeed unless:
            </para>
            <list type="table">
              <listheader>
                <term>
                  Error
                </term>
                <description>
                  Details
                </description>
              </listheader>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EBADF" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="d" /> 
                    argument
                    is not a valid file or socket descriptor open for reading.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EFAULT" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="buf" /> 
                    argument
                    points outside the allocated address space.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EIO" />
                </term>
                <description>
                  <para>
                    An I/O error occurred while reading from the file system.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EINTR" />
                </term>
                <description>
                  <para>
                    A read from a slow device was interrupted before
                    any data arrived by the delivery of a signal.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EINVAL" />
                </term>
                <description>
                  <para>
                    The pointer associated with
                    <paramref name="d" /> 
                    was negative.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EAGAIN" />
                </term>
                <description>
                  <para>
                    The file was marked for non-blocking I/O,
                    and no data were ready to be read.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EISDIR" />
                </term>
                <description>
                  <para>
                    The file descriptor is associated with a directory residing
                    on a file system that does not allow regular read operations on
                    directories (e.g. NFS).
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />
                </term>
                <description>
                  <para>
                    The file descriptor is associated with a file system and file type that
                    do not allow regular read operations on it.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EOVERFLOW" />
                </term>
                <description>
                  <para>
                    The file descriptor is associated with a regular file,
                    <paramref name="nbytes" /> 
                    is greater than 0,
                    <paramref name="offset" /> 
                    is before the end-of-file, and
                    <paramref name="offset" /> 
                    is greater than or equal to the offset maximum established
                    for this file system.
                  </para>
                </description>
              </item>
            </list>
            <para>
            </para>
            <para>
              In addition,
              <c>readv</c>()
              may return one of the following errors:
            </para>
            <list type="table">
              <listheader>
                <term>
                  Error
                </term>
                <description>
                  Details
                </description>
              </listheader>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EINVAL" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="iovcnt" /> 
                    argument
                    was less than or equal to 0, or greater than
                     <see cref="F:Mono.Unix.Native.TODO.IOV_MAX" />  .
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EINVAL" />
                </term>
                <description>
                  <para>
                    One of the
                    <paramref name="iov_len" /> 
                    values in the
                    <paramref name="iov" /> 
                    array was negative.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EINVAL" />
                </term>
                <description>
                  <para>
                    The sum of the
                    <paramref name="iov_len" /> 
                    values in the
                    <paramref name="iov" /> 
                    array overflowed a 32-bit integer.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EFAULT" />
                </term>
                <description>
                  <para>
                    Part of the
                    <paramref name="iov" /> 
                    points outside the process's allocated address space.
                  </para>
                </description>
              </item>
            </list>
            <para>
            </para>
            <para>
              The
              <c>pread</c>()
              system call may also return the following errors:
            </para>
            <list type="table">
              <listheader>
                <term>
                  Error
                </term>
                <description>
                  Details
                </description>
              </listheader>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EINVAL" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="offset" /> 
                    value was negative.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ESPIPE" />
                </term>
                <description>
                  <para>
                    The file descriptor is associated with a pipe, socket, or FIFO.
                  </para>
                </description>
              </item>
            </list>
            <para>
            </para>
          </block>
        </returns>
        <remarks>
          <para>
            The
            <c>read</c>()
            system call
            attempts to read
            <paramref name="nbytes" /> 
            of data from the object referenced by the descriptor
            <paramref name="d" /> 
            into the buffer pointed to by
            <paramref name="buf" /> .
            The
            <c>readv</c>()
            system call
            performs the same action, but scatters the input data
            into the
            <paramref name="iovcnt" /> 
            buffers specified by the members of the
            <paramref name="iov" /> 
            array: iov[0], iov[1], ..., iov[iovcnt|-|1].
            The
            <c>pread</c>()
            system call
            performs the same function, but reads from the specified position in
            the file without modifying the file pointer.
          </para>
          <para>
            For
            <c>readv</c>(),
            the
            <paramref name="iovec" /> 
            structure is defined as:
          </para>
          <para>
          </para>
          <block subset="none" type="usage">
            <para>struct iovec {</para>
            <para>
            </para>
            <para>
            </para>
            <para>};</para>
          </block>
          <para>
          </para>
          <para>
            Each
            <paramref name="iovec" /> 
            entry specifies the base address and length of an area
            in memory where data should be placed.
            The
            <c>readv</c>()
            system call
            will always fill an area completely before proceeding
            to the next.
          </para>
          <para>
            On objects capable of seeking, the
            <c>read</c>()
            starts at a position
            given by the pointer associated with
            <paramref name="d" /> 
            (see
            <see cref="M:Mono.Unix.Native.Syscall.lseek" />(2) ) .
            Upon return from
            <c>read</c>(),
            the pointer is incremented by the number of bytes actually read.
          </para>
          <para>
            Objects that are not capable of seeking always read from the current
            position.
            The value of the pointer associated with such an
            object is undefined.
          </para>
          <para>
            Upon successful completion,
            <c>read</c>(),
            <c>readv</c>(),
            and
            <c>pread</c>()
            return the number of bytes actually read and placed in the buffer.
            The system guarantees to read the number of bytes requested if
            the descriptor references a normal file that has that many bytes left
            before the end-of-file, but in no other case.
          </para>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.dup" />
        <altmember cref="M:Mono.Unix.Native.Syscall.fcntl" />
        <altmember cref="M:Mono.Unix.Native.Syscall.getdirentries" />
        <altmember cref="M:Mono.Unix.Native.Syscall.open" />
        <altmember cref="M:Mono.Unix.Native.Syscall.pipe" />
        <altmember cref="M:Mono.Unix.Native.Syscall.select" />
        <altmember cref="M:Mono.Unix.Native.Syscall.socket" />
        <altmember cref="M:Mono.Unix.Native.Syscall.socketpair" />
        <altmember cref="M:Mono.Unix.Native.Syscall.fread" />
        <altmember cref="M:Mono.Unix.Native.Syscall.readdir" />
      </Docs>
    </Member>
    <Member MemberName="read">
      <MemberSignature Language="C#" Value="public static long read (int fd, void* buf, ulong count);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="buf" Type="System.Void*" />
        <Parameter Name="count" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="buf">To be added.</param>
        <param name="count">To be added.</param>
        <summary>Reads up to count bytes into buf from fd.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="write">
      <MemberSignature Language="C#" Value="public static long write (int fd, IntPtr buf, ulong count);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="buf" Type="System.IntPtr" />
        <Parameter Name="count" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="buf">To be added.</param>
        <param name="count">To be added.</param>
        <summary>write writes up to 'count' bytes to the file referenced by the file descriptor 'fileDescriptor' from the buffer starting at 'buf'.</summary>
        <returns>
          <para>
            Upon successful completion the number of bytes which were written
            is returned.
            Otherwise a -1 is returned and the global variable
            <see cref="M:Mono.Unix.Native.Stdlib.GetLastError" />
            is set to indicate the error.
          </para>
          <block subset="none" type="usage">
            <para>
              The
              <c>write</c>(),
              <c>writev</c>(),
              and
              <c>pwrite</c>()
              system calls
              will fail and the file pointer will remain unchanged if:
            </para>
            <list type="table">
              <listheader>
                <term>
                  Error
                </term>
                <description>
                  Details
                </description>
              </listheader>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EBADF" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="d" /> 
                    argument
                    is not a valid descriptor open for writing.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EPIPE" />
                </term>
                <description>
                  <para>
                    An attempt is made to write to a pipe that is not open
                    for reading by any process.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EPIPE" />
                </term>
                <description>
                  <para>
                    An attempt is made to write to a socket of type
                     <see cref="F:Mono.Unix.Native.Errno.SOCK_STREAM" /> 
                    that is not connected to a peer socket.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EFBIG" />
                </term>
                <description>
                  <para>
                    An attempt was made to write a file that exceeds the process's
                    file size limit or the maximum file size.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EFAULT" />
                </term>
                <description>
                  <para>
                    Part of
                    <paramref name="iov" /> 
                    or data to be written to the file
                    points outside the process's allocated address space.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EINVAL" />
                </term>
                <description>
                  <para>
                    The pointer associated with
                    <paramref name="d" /> 
                    was negative.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOSPC" />
                </term>
                <description>
                  <para>
                    There is no free space remaining on the file system
                    containing the file.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EDQUOT" />
                </term>
                <description>
                  <para>
                    The user's quota of disk blocks on the file system
                    containing the file has been exhausted.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EIO" />
                </term>
                <description>
                  <para>
                    An I/O error occurred while reading from or writing to the file system.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EINTR" />
                </term>
                <description>
                  <para>
                    A signal interrupted the write before it could be completed.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EAGAIN" />
                </term>
                <description>
                  <para>
                    The file was marked for non-blocking I/O,
                    and no data could be written immediately.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EROFS" />
                </term>
                <description>
                  <para>
                    An attempt was made to write over a disk label area at the beginning
                    of a slice.
                    Use
                    <c>disklabel</c>(8)
                    Fl W                    to enable writing on the disk label area.
                  </para>
                </description>
              </item>
            </list>
            <para>
            </para>
            <para>
              In addition,
              <c>writev</c>()
              may return one of the following errors:
            </para>
            <list type="table">
              <listheader>
                <term>
                  Error
                </term>
                <description>
                  Details
                </description>
              </listheader>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EDESTADDRREQ" />
                </term>
                <description>
                  <para>
                    The destination is no longer available when writing to a
                    Ux                    domain datagram socket on which
                    <see cref="M:Mono.Unix.Native.Syscall.connect" />(2)
                    had been used to set a destination address.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EINVAL" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="iovcnt" /> 
                    argument
                    was less than or equal to 0, or greater than
                     <see cref="F:Mono.Unix.Native.TODO.IOV_MAX" />  .
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EINVAL" />
                </term>
                <description>
                  <para>
                    One of the
                    <paramref name="iov_len" /> 
                    values in the
                    <paramref name="iov" /> 
                    array was negative.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EINVAL" />
                </term>
                <description>
                  <para>
                    The sum of the
                    <paramref name="iov_len" /> 
                    values in the
                    <paramref name="iov" /> 
                    array overflowed a 32-bit integer.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOBUFS" />
                </term>
                <description>
                  <para>
                    The mbuf pool has been completely exhausted when writing to a socket.
                  </para>
                </description>
              </item>
            </list>
            <para>
            </para>
            <para>
              The
              <c>pwrite</c>()
              system call may also return the following errors:
            </para>
            <list type="table">
              <listheader>
                <term>
                  Error
                </term>
                <description>
                  Details
                </description>
              </listheader>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EINVAL" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="offset" /> 
                    value was negative.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ESPIPE" />
                </term>
                <description>
                  <para>
                    The file descriptor is associated with a pipe, socket, or FIFO.
                  </para>
                </description>
              </item>
            </list>
            <para>
            </para>
          </block>
        </returns>
        <remarks>
          <para>
            The
            <c>write</c>()
            system call
            attempts to write
            <paramref name="nbytes" /> 
            of data to the object referenced by the descriptor
            <paramref name="d" /> 
            from the buffer pointed to by
            <paramref name="buf" /> .
            The
            <c>writev</c>()
            system call
            performs the same action, but gathers the output data
            from the
            <paramref name="iovcnt" /> 
            buffers specified by the members of the
            <paramref name="iov" /> 
            array: iov[0], iov[1], ..., iov[iovcnt|-|1].
            The
            <c>pwrite</c>()
            system call
            performs the same function, but writes to the specified position in
            the file without modifying the file pointer.
          </para>
          <para>
            For
            <c>writev</c>(),
            the
            <paramref name="iovec" /> 
            structure is defined as:
          </para>
          <para>
          </para>
          <block subset="none" type="usage">
            <para>struct iovec {</para>
            <para>
            </para>
            <para>
            </para>
            <para>};</para>
          </block>
          <para>
          </para>
          <para>
            Each
            <paramref name="iovec" /> 
            entry specifies the base address and length of an area
            in memory from which data should be written.
            The
            <c>writev</c>()
            system call
            will always write a complete area before proceeding
            to the next.
          </para>
          <para>
            On objects capable of seeking, the
            <c>write</c>()
            starts at a position
            given by the pointer associated with
            <paramref name="d" /> ,
            see
            <see cref="M:Mono.Unix.Native.Syscall.lseek" />(2) .
            Upon return from
            <c>write</c>(),
            the pointer is incremented by the number of bytes which were written.
          </para>
          <para>
            Objects that are not capable of seeking always write from the current
            position.
            The value of the pointer associated with such an object
            is undefined.
          </para>
          <para>
            If the real user is not the super-user, then
            <c>write</c>()
            clears the set-user-id bit on a file.
            This prevents penetration of system security
            by a user who
            <c>captures</c>
            a writable set-user-id file
            owned by the super-user.
          </para>
          <para>
            When using non-blocking I/O on objects such as sockets that are subject
            to flow control,
            <c>write</c>()
            and
            <c>writev</c>()
            may write fewer bytes than requested;
            the return value must be noted,
            and the remainder of the operation should be retried when possible.
          </para>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.fcntl" />
        <altmember cref="M:Mono.Unix.Native.Syscall.lseek" />
        <altmember cref="M:Mono.Unix.Native.Syscall.open" />
        <altmember cref="M:Mono.Unix.Native.Syscall.pipe" />
        <altmember cref="M:Mono.Unix.Native.Syscall.select" />
      </Docs>
    </Member>
    <Member MemberName="write">
      <MemberSignature Language="C#" Value="public static long write (int fd, void* buf, ulong count);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="buf" Type="System.Void*" />
        <Parameter Name="count" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="buf">To be added.</param>
        <param name="count">To be added.</param>
        <summary>write writes up to 'count' bytes to the file referenced by the file descriptor 'fileDescriptor' from the buffer starting at 'buf'.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="pread">
      <MemberSignature Language="C#" Value="public static long pread (int fd, IntPtr buf, ulong count, long offset);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="buf" Type="System.IntPtr" />
        <Parameter Name="count" Type="System.UInt64" />
        <Parameter Name="offset" Type="System.Int64" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="buf">To be added.</param>
        <param name="count">To be added.</param>
        <param name="offset">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="pread">
      <MemberSignature Language="C#" Value="public static long pread (int fd, void* buf, ulong count, long offset);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="buf" Type="System.Void*" />
        <Parameter Name="count" Type="System.UInt64" />
        <Parameter Name="offset" Type="System.Int64" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="buf">To be added.</param>
        <param name="count">To be added.</param>
        <param name="offset">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="pwrite">
      <MemberSignature Language="C#" Value="public static long pwrite (int fd, IntPtr buf, ulong count, long offset);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="buf" Type="System.IntPtr" />
        <Parameter Name="count" Type="System.UInt64" />
        <Parameter Name="offset" Type="System.Int64" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="buf">To be added.</param>
        <param name="count">To be added.</param>
        <param name="offset">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="pwrite">
      <MemberSignature Language="C#" Value="public static long pwrite (int fd, void* buf, ulong count, long offset);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="buf" Type="System.Void*" />
        <Parameter Name="count" Type="System.UInt64" />
        <Parameter Name="offset" Type="System.Int64" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="buf">To be added.</param>
        <param name="count">To be added.</param>
        <param name="offset">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="pipe">
      <MemberSignature Language="C#" Value="public static int pipe (out int reading, out int writing);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="reading" Type="System.Int32&amp;" RefType="out" />
        <Parameter Name="writing" Type="System.Int32&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="reading">To be added.</param>
        <param name="writing">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="pipe">
      <MemberSignature Language="C#" Value="public static int pipe (int[] filedes);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="filedes" Type="System.Int32[]" />
      </Parameters>
      <Docs>
        <param name="filedes">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="alarm">
      <MemberSignature Language="C#" Value="public static uint alarm (uint seconds);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="seconds" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <param name="seconds">To be added.</param>
        <summary>If the call completes successfully, the taks will receive a SIGALARM signal after a delay of seconds seconds. A delay of zero seconds simply cancel the alarm. If an previous alarm was activated when the call is made then the previous alarm is cancelled.</summary>
        <returns>If a previous alarm was activated, the call returns the time delay before the expiration of that previous alarm (now canceled). Otherwise, it returns zero.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="sleep">
      <MemberSignature Language="C#" Value="public static uint sleep (uint seconds);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="seconds" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <param name="seconds">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="ualarm">
      <MemberSignature Language="C#" Value="public static uint ualarm (uint usecs, uint interval);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="usecs" Type="System.UInt32" />
        <Parameter Name="interval" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <param name="usecs">To be added.</param>
        <param name="interval">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="pause">
      <MemberSignature Language="C#" Value="public static int pause ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Pause the current process. The task sleeps until a signal is received.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="chown">
      <MemberSignature Language="C#" Value="public static int chown (string path, uint owner, uint group);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="owner" Type="System.UInt32" />
        <Parameter Name="group" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="owner">To be added.</param>
        <param name="group">To be added.</param>
        <summary>Change owner for a file or folder.</summary>
        <returns>
          <para>
            On success, zero is returned.
            On error, -1 is returned and 
            <see cref="M:Mono.Unix.Native.Stdlib.GetLastError" />
            returns the translated error.
          </para>
          <block subset="none" type="usage">
            <para>
              The
              <c>chown</c>()
              and
              <c>lchown</c>()
              will fail and the file will be unchanged if:
            </para>
            <list type="table">
              <listheader>
                <term>
                  Error
                </term>
                <description>
                  Details
                </description>
              </listheader>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />
                </term>
                <description>
                  <para>
                    A component of the path prefix is not a directory.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />
                </term>
                <description>
                  <para>
                    A component of a pathname exceeded 255 characters,
                    or an entire path name exceeded 1023 characters.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOENT" />
                </term>
                <description>
                  <para>
                    The named file does not exist.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EACCES" />
                </term>
                <description>
                  <para>
                    Search permission is denied for a component of the path prefix.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ELOOP" />
                </term>
                <description>
                  <para>
                    Too many symbolic links were encountered in translating the pathname.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EPERM" />
                </term>
                <description>
                  <para>
                    The effective user ID is not the super-user.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EROFS" />
                </term>
                <description>
                  <para>
                    The named file resides on a read-only file system.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EFAULT" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="path" /> 
                    argument
                    points outside the process's allocated address space.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EIO" />
                </term>
                <description>
                  <para>
                    An I/O error occurred while reading from or writing to the file system.
                  </para>
                </description>
              </item>
            </list>
            <para>
            </para>
            <para>
              The
              <c>fchown</c>()
              system call will fail if:
            </para>
            <list type="table">
              <listheader>
                <term>
                  Error
                </term>
                <description>
                  Details
                </description>
              </listheader>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EBADF" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="fd" /> 
                    argument
                    does not refer to a valid descriptor.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EINVAL" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="fd" /> 
                    argument
                    refers to a socket, not a file.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EPERM" />
                </term>
                <description>
                  <para>
                    The effective user ID is not the super-user.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EROFS" />
                </term>
                <description>
                  <para>
                    The named file resides on a read-only file system.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EIO" />
                </term>
                <description>
                  <para>
                    An I/O error occurred while reading from or writing to the file system.
                  </para>
                </description>
              </item>
            </list>
            <para>
            </para>
          </block>
        </returns>
        <remarks>
          <para>
            The owner ID and group ID of the file
            named by
            <paramref name="path" /> 
            or referenced by
            <paramref name="fd" /> 
            is changed as specified by the arguments
            <paramref name="owner" /> 
            and
            <paramref name="group" /> .
            The owner of a file may change the
            <paramref name="group" /> 
            to a group of which
            he or she is a member,
            but the change
            <paramref name="owner" /> 
            capability is restricted to the super-user.
          </para>
          <para>
            The
            <c>chown</c>()
            system call
            clears the set-user-id and set-group-id bits
            on the file
            to prevent accidental or mischievous creation of
            set-user-id and set-group-id programs if not executed
            by the super-user.
            The
            <c>chown</c>()
            system call
            follows symbolic links to operate on the target of the link
            rather than the link itself.
          </para>
          <para>
            The
            <c>fchown</c>()
            system call
            is particularly useful when used in conjunction
            with the file locking primitives (see
            <see cref="M:Mono.Unix.Native.Syscall.flock" />(2) ) .
          </para>
          <para>
            The
            <c>lchown</c>()
            system call is similar to
            <c>chown</c>()
            but does not follow symbolic links.
          </para>
          <para>
            One of the owner or group id's
            may be left unchanged by specifying it as -1.
          </para>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.chmod" />
        <altmember cref="M:Mono.Unix.Native.Syscall.flock" />
      </Docs>
    </Member>
    <Member MemberName="fchown">
      <MemberSignature Language="C#" Value="public static int fchown (int fd, uint owner, uint group);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="owner" Type="System.UInt32" />
        <Parameter Name="group" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="owner">To be added.</param>
        <param name="group">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="lchown">
      <MemberSignature Language="C#" Value="public static int lchown (string path, uint owner, uint group);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="owner" Type="System.UInt32" />
        <Parameter Name="group" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="owner">To be added.</param>
        <param name="group">To be added.</param>
        <summary>Change the ownership for 'path'.</summary>
        <returns>To be added.</returns>
        <remarks>The owner of the file specified by path is changed. Only the super-user may change the owner of a file. The owner of a file may change the group of the file to any group of which that owner is a member. The super-user may change the group arbitrarily. See <c>chown</c>(2) for more information and error codes.</remarks>
      </Docs>
    </Member>
    <Member MemberName="chdir">
      <MemberSignature Language="C#" Value="public static int chdir (string path);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <summary>Changes the current directory to 'path'.</summary>
        <returns>On success, zero is returned. On error, -1 is returned and <see cref="M:Mono.Unix.Native.Stdlib.GetLastError" /> can be used to retreive the translated error.</returns>
        <remarks>See <c>chrdir</c>(2) for more information and error codes.</remarks>
      </Docs>
    </Member>
    <Member MemberName="fchdir">
      <MemberSignature Language="C#" Value="public static int fchdir (int fd);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getcwd">
      <MemberSignature Language="C#" Value="public static IntPtr getcwd (System.Text.StringBuilder buf, ulong size);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.IntPtr</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="buf" Type="System.Text.StringBuilder" />
        <Parameter Name="size" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="buf">To be added.</param>
        <param name="size">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getcwd">
      <MemberSignature Language="C#" Value="public static System.Text.StringBuilder getcwd (System.Text.StringBuilder buf);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Text.StringBuilder</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="buf" Type="System.Text.StringBuilder" />
      </Parameters>
      <Docs>
        <param name="buf">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="dup">
      <MemberSignature Language="C#" Value="public static int dup (int fd);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <summary>dup duplicates a file descriptor to the lowest unused file descriptor available.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="dup2">
      <MemberSignature Language="C#" Value="public static int dup2 (int fd, int fd2);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="fd2" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="fd2">To be added.</param>
        <summary>dup2 duplicates a file descriptor to another specified file descriptor. If the destination file descriptor is already used, it is closed. The two descriptors share all (ie. file locks, position, etc.) but the close-on-exec flag.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="nice">
      <MemberSignature Language="C#" Value="public static int nice (int inc);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="inc" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="inc">To be added.</param>
        <summary>Change the priority of the current process by given increment.</summary>
        <returns>To be added.</returns>
        <remarks>Adds 'increment' to the priority of the calling task. Only a task with superuser privileges may specify a negative increment.</remarks>
      </Docs>
    </Member>
    <Member MemberName="_exit">
      <MemberSignature Language="C#" Value="public static int _exit (int status);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="status" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="status">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getpid">
      <MemberSignature Language="C#" Value="public static int getpid ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Returns the unique identifier for the current process.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getppid">
      <MemberSignature Language="C#" Value="public static int getppid ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Returns the unique identifier for the parent process.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="setpgid">
      <MemberSignature Language="C#" Value="public static int setpgid (int pid, int pgid);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="pid" Type="System.Int32" />
        <Parameter Name="pgid" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="pid">To be added.</param>
        <param name="pgid">To be added.</param>
        <summary>Sets the process group ID for the current process to 'pgid'.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getpgid">
      <MemberSignature Language="C#" Value="public static int getpgid (int pid);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="pid" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="pid">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="setpgrp">
      <MemberSignature Language="C#" Value="public static int setpgrp ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getpgrp">
      <MemberSignature Language="C#" Value="public static int getpgrp ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Get the process group.</summary>
        <returns>To be added.</returns>
        <remarks>getpgrp always returns the current process group. See <c>getpgrp</c>(2) for more information.</remarks>
      </Docs>
    </Member>
    <Member MemberName="setsid">
      <MemberSignature Language="C#" Value="public static int setsid ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Creates a session and sets the process group ID.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getsid">
      <MemberSignature Language="C#" Value="public static int getsid (int pid);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="pid" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="pid">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getuid">
      <MemberSignature Language="C#" Value="public static uint getuid ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Get the user ID for the current process.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="geteuid">
      <MemberSignature Language="C#" Value="public static uint geteuid ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Get the effective user ID for the current process.</summary>
        <returns>Returns the effective user ID for the current process.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="getgid">
      <MemberSignature Language="C#" Value="public static uint getgid ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Get the group ID for the current process.</summary>
        <returns>Returns the group ID for the current process.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="getegid">
      <MemberSignature Language="C#" Value="public static uint getegid ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Get the effective group ID for the current process.</summary>
        <returns>Returns the effective group ID for the current process.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="getgroups">
      <MemberSignature Language="C#" Value="public static int getgroups (int size, uint[] list);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="size" Type="System.Int32" />
        <Parameter Name="list" Type="System.UInt32[]" />
      </Parameters>
      <Docs>
        <param name="size">To be added.</param>
        <param name="list">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getgroups">
      <MemberSignature Language="C#" Value="public static int getgroups (uint[] list);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="list" Type="System.UInt32[]" />
      </Parameters>
      <Docs>
        <param name="list">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="setuid">
      <MemberSignature Language="C#" Value="public static int setuid (uint uid);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="uid" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <param name="uid">To be added.</param>
        <summary>Sets the user ID for the current process to 'uid'.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="setreuid">
      <MemberSignature Language="C#" Value="public static int setreuid (uint ruid, uint euid);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="ruid" Type="System.UInt32" />
        <Parameter Name="euid" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <param name="ruid">To be added.</param>
        <param name="euid">To be added.</param>
        <summary>Sets the real and effective user ID for the current process to 'ruid' and 'euid' respectively.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="setregid">
      <MemberSignature Language="C#" Value="public static int setregid (uint rgid, uint egid);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="rgid" Type="System.UInt32" />
        <Parameter Name="egid" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <param name="rgid">To be added.</param>
        <param name="egid">To be added.</param>
        <summary>Sets the real and effective group ID for the current process to 'rgid' and 'egid' respectively.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="seteuid">
      <MemberSignature Language="C#" Value="public static int seteuid (uint euid);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="euid" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <param name="euid">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="setegid">
      <MemberSignature Language="C#" Value="public static int setegid (uint uid);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="uid" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <param name="uid">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="setgid">
      <MemberSignature Language="C#" Value="public static int setgid (uint gid);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="gid" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <param name="gid">To be added.</param>
        <summary>Sets the group ID for the current process to 'gid'.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getresuid">
      <MemberSignature Language="C#" Value="public static int getresuid (out uint ruid, out uint euid, out uint suid);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="ruid" Type="System.UInt32&amp;" RefType="out" />
        <Parameter Name="euid" Type="System.UInt32&amp;" RefType="out" />
        <Parameter Name="suid" Type="System.UInt32&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="ruid">To be added.</param>
        <param name="euid">To be added.</param>
        <param name="suid">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getresgid">
      <MemberSignature Language="C#" Value="public static int getresgid (out uint rgid, out uint egid, out uint sgid);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="rgid" Type="System.UInt32&amp;" RefType="out" />
        <Parameter Name="egid" Type="System.UInt32&amp;" RefType="out" />
        <Parameter Name="sgid" Type="System.UInt32&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="rgid">To be added.</param>
        <param name="egid">To be added.</param>
        <param name="sgid">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="setresuid">
      <MemberSignature Language="C#" Value="public static int setresuid (uint ruid, uint euid, uint suid);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="ruid" Type="System.UInt32" />
        <Parameter Name="euid" Type="System.UInt32" />
        <Parameter Name="suid" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <param name="ruid">To be added.</param>
        <param name="euid">To be added.</param>
        <param name="suid">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="setresgid">
      <MemberSignature Language="C#" Value="public static int setresgid (uint rgid, uint egid, uint sgid);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="rgid" Type="System.UInt32" />
        <Parameter Name="egid" Type="System.UInt32" />
        <Parameter Name="sgid" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <param name="rgid">To be added.</param>
        <param name="egid">To be added.</param>
        <param name="sgid">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="ttyname">
      <MemberSignature Language="C#" Value="public static string ttyname (int fd);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="ttyname_r">
      <MemberSignature Language="C#" Value="public static int ttyname_r (int fd, System.Text.StringBuilder buf, ulong buflen);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="buf" Type="System.Text.StringBuilder" />
        <Parameter Name="buflen" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="buf">To be added.</param>
        <param name="buflen">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="ttyname_r">
      <MemberSignature Language="C#" Value="public static int ttyname_r (int fd, System.Text.StringBuilder buf);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="buf" Type="System.Text.StringBuilder" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="buf">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="isatty">
      <MemberSignature Language="C#" Value="public static bool isatty (int fd);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <summary>Is the file descriptor a TTY?</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="link">
      <MemberSignature Language="C#" Value="public static int link (string oldpath, string newpath);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="oldpath" Type="System.String" />
        <Parameter Name="newpath" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="oldpath">To be added.</param>
        <param name="newpath">To be added.</param>
        <summary>Create a hard link from oldpath to newpath.</summary>
        <returns>
          <para>
            On success, zero is returned.
            On error, -1 is returned and 
            <see cref="M:Mono.Unix.Native.Stdlib.GetLastError" />
            returns the translated error.
          </para>
          <block subset="none" type="usage">
            <para>
              The
              <c>link</c>()
              system call
              will fail and no link will be created if:
            </para>
            <list type="table">
              <listheader>
                <term>
                  Error
                </term>
                <description>
                  Details
                </description>
              </listheader>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />
                </term>
                <description>
                  <para>
                    A component of either path prefix is not a directory.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />
                </term>
                <description>
                  <para>
                    A component of either pathname exceeded 255 characters,
                    or entire length of either path name exceeded 1023 characters.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOENT" />
                </term>
                <description>
                  <para>
                    A component of either path prefix does not exist.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />
                </term>
                <description>
                  <para>
                    The file system containing the file named by
                    <paramref name="name1" /> 
                    does not support links.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EMLINK" />
                </term>
                <description>
                  <para>
                    The link count of the file named by
                    <paramref name="name1" /> 
                    would exceed 32767.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EACCES" />
                </term>
                <description>
                  <para>
                    A component of either path prefix denies search permission.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EACCES" />
                </term>
                <description>
                  <para>
                    The requested link requires writing in a directory with a mode
                    that denies write permission.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ELOOP" />
                </term>
                <description>
                  <para>
                    Too many symbolic links were encountered in translating one of the pathnames.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOENT" />
                </term>
                <description>
                  <para>
                    The file named by
                    <paramref name="name1" /> 
                    does not exist.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EEXIST" />
                </term>
                <description>
                  <para>
                    The link named by
                    <paramref name="name2" /> 
                    does exist.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EPERM" />
                </term>
                <description>
                  <para>
                    The file named by
                    <paramref name="name1" /> 
                    is a directory or is flagged immutable or append-only
                    (see
                    <see cref="M:Mono.Unix.Native.Syscall.chflags" />(2) ) .
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EXDEV" />
                </term>
                <description>
                  <para>
                    The link named by
                    <paramref name="name2" /> 
                    and the file named by
                    <paramref name="name1" /> 
                    are on different file systems.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOSPC" />
                </term>
                <description>
                  <para>
                    The directory in which the entry for the new link is being placed
                    cannot be extended because there is no space left on the file
                    system containing the directory.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EDQUOT" />
                </term>
                <description>
                  <para>
                    The directory in which the entry for the new link
                    is being placed cannot be extended because the
                    user's quota of disk blocks on the file system
                    containing the directory has been exhausted.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EIO" />
                </term>
                <description>
                  <para>
                    An I/O error occurred while reading from or writing to
                    the file system to make the directory entry.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EROFS" />
                </term>
                <description>
                  <para>
                    The requested link requires writing in a directory on a read-only file
                    system.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EFAULT" />
                </term>
                <description>
                  <para>
                    One of the pathnames specified
                    is outside the process's allocated address space.
                  </para>
                </description>
              </item>
            </list>
            <para>
            </para>
          </block>
        </returns>
        <remarks>
          <para>
            The
            <c>link</c>()
            system call
            atomically creates the specified directory entry (hard link)
            <paramref name="name2" /> 
            with the attributes of the underlying object pointed at by
            <paramref name="name1" /> .
            If the link is successful: the link count of the underlying object
            is incremented;
            <paramref name="name1" /> 
            and
            <paramref name="name2" /> 
            share equal access and rights
            to the
            underlying object.
          </para>
          <para>
            If
            <paramref name="name1" /> 
            is removed, the file
            <paramref name="name2" /> 
            is not deleted and the link count of the
            underlying object is
            decremented.
          </para>
          <para>
            The object pointed at by the
            <paramref name="name1" /> 
            argument
            must exist for the hard link to
            succeed and
            both
            <paramref name="name1" /> 
            and
            <paramref name="name2" /> 
            must be in the same file system.
            The
            <paramref name="name1" /> 
            argument
            may not be a directory.
          </para>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.readlink" />
        <altmember cref="M:Mono.Unix.Native.Syscall.symlink" />
        <altmember cref="M:Mono.Unix.Native.Syscall.unlink" />
      </Docs>
    </Member>
    <Member MemberName="symlink">
      <MemberSignature Language="C#" Value="public static int symlink (string oldpath, string newpath);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="oldpath" Type="System.String" />
        <Parameter Name="newpath" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="oldpath">To be added.</param>
        <param name="newpath">To be added.</param>
        <summary>Create a symbolic link from oldpath to newpath.</summary>
        <returns>
          <para>
            On success, zero is returned.
            On error, -1 is returned and 
            <see cref="M:Mono.Unix.Native.Stdlib.GetLastError" />
            returns the translated error.
          </para>
          <block subset="none" type="usage">
            <para>
              The symbolic link succeeds unless:
            </para>
            <list type="table">
              <listheader>
                <term>
                  Error
                </term>
                <description>
                  Details
                </description>
              </listheader>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />
                </term>
                <description>
                  <para>
                    A component of the
                    <paramref name="name2" /> 
                    prefix is not a directory.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />
                </term>
                <description>
                  <para>
                    A component of either pathname exceeded 255 characters,
                    or the entire length of either path name exceeded 1023 characters.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOENT" />
                </term>
                <description>
                  <para>
                    The named file does not exist.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EACCES" />
                </term>
                <description>
                  <para>
                    A component of the
                    <paramref name="name2" /> 
                    path prefix denies search permission.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ELOOP" />
                </term>
                <description>
                  <para>
                    Too many symbolic links were encountered in translating the pathname.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EEXIST" />
                </term>
                <description>
                  <para>
                    The path name pointed at by the
                    <paramref name="name2" /> 
                    argument
                    already exists.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EIO" />
                </term>
                <description>
                  <para>
                    An I/O error occurred while making the directory entry for
                    <paramref name="name2" /> ,
                    or allocating the inode for
                    <paramref name="name2" /> ,
                    or writing out the link contents of
                    <paramref name="name2" /> .
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EROFS" />
                </term>
                <description>
                  <para>
                    The file
                    <paramref name="name2" /> 
                    would reside on a read-only file system.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOSPC" />
                </term>
                <description>
                  <para>
                    The directory in which the entry for the new symbolic link is being placed
                    cannot be extended because there is no space left on the file
                    system containing the directory.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOSPC" />
                </term>
                <description>
                  <para>
                    The new symbolic link cannot be created because
                    there is no space left on the file
                    system that will contain the symbolic link.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOSPC" />
                </term>
                <description>
                  <para>
                    There are no free inodes on the file system on which the
                    symbolic link is being created.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EDQUOT" />
                </term>
                <description>
                  <para>
                    The directory in which the entry for the new symbolic link
                    is being placed cannot be extended because the
                    user's quota of disk blocks on the file system
                    containing the directory has been exhausted.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EDQUOT" />
                </term>
                <description>
                  <para>
                    The new symbolic link cannot be created because the user's
                    quota of disk blocks on the file system that will
                    contain the symbolic link has been exhausted.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EDQUOT" />
                </term>
                <description>
                  <para>
                    The user's quota of inodes on the file system on
                    which the symbolic link is being created has been exhausted.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EIO" />
                </term>
                <description>
                  <para>
                    An I/O error occurred while making the directory entry or allocating the inode.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EFAULT" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="name1" /> 
                    or
                    <paramref name="name2" /> 
                    argument
                    points outside the process's allocated address space.
                  </para>
                </description>
              </item>
            </list>
            <para>
            </para>
          </block>
        </returns>
        <remarks>
          <para>
            A symbolic link
            <paramref name="newpath" /> 
            is created to
            <paramref name="oldpath" /> .
            <paramref name="newpath" /> 
            is the name of the
            file created,
            <paramref name="oldpath" /> 
            is the string
            used in creating the symbolic link).
            Either name may be an arbitrary path name; the files need not
            be on the same file system.
          </para>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.lstat" />
        <altmember cref="M:Mono.Unix.Native.Syscall.stat" />
        <altmember cref="M:Mono.Unix.Native.Syscall.symlink" />
      </Docs>
    </Member>
    <Member MemberName="readlink">
      <MemberSignature Language="C#" Value="public static int readlink (string path, System.Text.StringBuilder buf, ulong bufsiz);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="buf" Type="System.Text.StringBuilder" />
        <Parameter Name="bufsiz" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="buf">To be added.</param>
        <param name="bufsiz">To be added.</param>
        <summary>Gets the destination of a symlink as a string.</summary>
        <returns>
          <para>
            The call returns the count of characters placed in the buffer
            if it succeeds, or a -1 if an error occurs, placing the error
            code in the global variable
            <see cref="M:Mono.Unix.Native.Stdlib.GetLastError" /> .
          </para>
          <block subset="none" type="usage">
            <para>
              The
              <c>readlink</c>()
              system call
              will fail if:
            </para>
            <list type="table">
              <listheader>
                <term>
                  Error
                </term>
                <description>
                  Details
                </description>
              </listheader>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />
                </term>
                <description>
                  <para>
                    A component of the path prefix is not a directory.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />
                </term>
                <description>
                  <para>
                    A component of a pathname exceeded 255 characters,
                    or an entire path name exceeded 1023 characters.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOENT" />
                </term>
                <description>
                  <para>
                    The named file does not exist.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EACCES" />
                </term>
                <description>
                  <para>
                    Search permission is denied for a component of the path prefix.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ELOOP" />
                </term>
                <description>
                  <para>
                    Too many symbolic links were encountered in translating the pathname.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EINVAL" />
                </term>
                <description>
                  <para>
                    The named file is not a symbolic link.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EIO" />
                </term>
                <description>
                  <para>
                    An I/O error occurred while reading from the file system.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EFAULT" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="buf" /> 
                    argument
                    extends outside the process's allocated address space.
                  </para>
                </description>
              </item>
            </list>
            <para>
            </para>
          </block>
        </returns>
        <remarks>
          <para>
            The
            <c>readlink</c>()
            system call
            places the contents of the symbolic link
            <paramref name="path" /> 
            in the buffer
            <paramref name="buf" /> ,
            which has size
            <paramref name="bufsiz" /> .
            The
            <c>readlink</c>()
            system call does not append a null
            character to
            <paramref name="buf" /> .
          </para>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.lstat" />
        <altmember cref="M:Mono.Unix.Native.Syscall.stat" />
        <altmember cref="M:Mono.Unix.Native.Syscall.symlink" />
      </Docs>
    </Member>
    <Member MemberName="readlink">
      <MemberSignature Language="C#" Value="public static int readlink (string path, System.Text.StringBuilder buf);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="buf" Type="System.Text.StringBuilder" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="buf">To be added.</param>
        <summary>Gets the destination of a symlink as a string.</summary>
        <returns>
          <para>
            The call returns the count of characters placed in the buffer
            if it succeeds, or a -1 if an error occurs, placing the error
            code in the global variable
            <see cref="M:Mono.Unix.Native.Stdlib.GetLastError" /> .
          </para>
          <block subset="none" type="usage">
            <para>
              The
              <c>readlink</c>()
              system call
              will fail if:
            </para>
            <list type="table">
              <listheader>
                <term>
                  Error
                </term>
                <description>
                  Details
                </description>
              </listheader>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />
                </term>
                <description>
                  <para>
                    A component of the path prefix is not a directory.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />
                </term>
                <description>
                  <para>
                    A component of a pathname exceeded 255 characters,
                    or an entire path name exceeded 1023 characters.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOENT" />
                </term>
                <description>
                  <para>
                    The named file does not exist.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EACCES" />
                </term>
                <description>
                  <para>
                    Search permission is denied for a component of the path prefix.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ELOOP" />
                </term>
                <description>
                  <para>
                    Too many symbolic links were encountered in translating the pathname.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EINVAL" />
                </term>
                <description>
                  <para>
                    The named file is not a symbolic link.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EIO" />
                </term>
                <description>
                  <para>
                    An I/O error occurred while reading from the file system.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EFAULT" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="buf" /> 
                    argument
                    extends outside the process's allocated address space.
                  </para>
                </description>
              </item>
            </list>
            <para>
            </para>
          </block>
        </returns>
        <remarks>
          <para>
            The
            <c>readlink</c>()
            system call
            places the contents of the symbolic link
            <paramref name="path" /> 
            in the buffer
            <paramref name="buf" /> ,
            which has size
            <paramref name="bufsiz" /> .
            The
            <c>readlink</c>()
            system call does not append a null
            character to
            <paramref name="buf" /> .
          </para>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.lstat" />
        <altmember cref="M:Mono.Unix.Native.Syscall.stat" />
        <altmember cref="M:Mono.Unix.Native.Syscall.symlink" />
      </Docs>
    </Member>
    <Member MemberName="unlink">
      <MemberSignature Language="C#" Value="public static int unlink (string pathname);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="pathname" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="pathname">
          A <see cref="T:System.String" /> containing the directory entry to
          delete.
        </param>
        <summary>Deletes a link to a file.</summary>
        <returns>
          <para>
            On success, zero is returned.
            On error, -1 is returned and 
            <see cref="M:Mono.Unix.Native.Stdlib.GetLastError" />
            returns the translated error.
          </para>
          <block subset="none" type="usage">
            <para>
              The
              <c>unlink</c>()
              succeeds unless:
            </para>
            <list type="table">
              <listheader>
                <term>
                  Error
                </term>
                <description>
                  Details
                </description>
              </listheader>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />
                </term>
                <description>
                  <para>
                    A component of the path prefix is not a directory.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />
                </term>
                <description>
                  <para>
                    A component of a pathname exceeded 255 characters,
                    or an entire path name exceeded 1023 characters.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOENT" />
                </term>
                <description>
                  <para>
                    The named file does not exist.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EACCES" />
                </term>
                <description>
                  <para>
                    Search permission is denied for a component of the path prefix.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EACCES" />
                </term>
                <description>
                  <para>
                    Write permission is denied on the directory containing the link
                    to be removed.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ELOOP" />
                </term>
                <description>
                  <para>
                    Too many symbolic links were encountered in translating the pathname.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EPERM" />
                </term>
                <description>
                  <para>
                    The named file is a directory.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EPERM" />
                </term>
                <description>
                  <para>
                    The named file has its immutable or append-only
                    flag set, see the
                    <see cref="M:Mono.Unix.Native.Syscall.chflags" />(2)
                    manual page for more information.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EPERM" />
                </term>
                <description>
                  <para>
                    The directory containing the file is marked sticky,
                    and neither the containing directory nor the file to be removed
                    are owned by the effective user ID.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EBUSY" />
                </term>
                <description>
                  <para>
                    The entry to be unlinked is the mount point for a
                    mounted file system.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EIO" />
                </term>
                <description>
                  <para>
                    An I/O error occurred while deleting the directory entry
                    or deallocating the inode.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EROFS" />
                </term>
                <description>
                  <para>
                    The named file resides on a read-only file system.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EFAULT" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="path" /> 
                    argument
                    points outside the process's allocated address space.
                  </para>
                </description>
              </item>
            </list>
            <para>
            </para>
          </block>
        </returns>
        <remarks>
          <para>
            If the file is not used and it was the last link, the file is also deleted.
          </para>
          <para>
            The
            <c>unlink</c>()
            system call
            removes the link named by
            <paramref name="pathname" /> 
            from its directory and decrements the link count of the
            file which was referenced by the link.
            If that decrement reduces the link count of the file
            to zero,
            and no process has the file open, then
            all resources associated with the file are reclaimed.
            If one or more process have the file open when the last link is removed,
            the link is removed, but the removal of the file is delayed until
            all references to it have been closed.
            The
            <paramref name="path" /> 
            argument
            may not be a directory.
          </para>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.chflags" />
        <altmember cref="M:Mono.Unix.Native.Syscall.close" />
        <altmember cref="M:Mono.Unix.Native.Syscall.link" />
        <altmember cref="M:Mono.Unix.Native.Syscall.rmdir" />
      </Docs>
    </Member>
    <Member MemberName="rmdir">
      <MemberSignature Language="C#" Value="public static int rmdir (string pathname);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="pathname" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="pathname">
          A <see cref="T:System.String" /> containing the directory to remove.
        </param>
        <summary>Removes the directory at 'path'.</summary>
        <returns>
          <para>
            On success, zero is returned.
            On error, -1 is returned and 
            <see cref="M:Mono.Unix.Native.Stdlib.GetLastError" />
            returns the translated error.
          </para>
          <block subset="none" type="usage">
            <para>
              The named file is removed unless:
            </para>
            <list type="table">
              <listheader>
                <term>
                  Error
                </term>
                <description>
                  Details
                </description>
              </listheader>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />
                </term>
                <description>
                  <para>
                    A component of the path is not a directory.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />
                </term>
                <description>
                  <para>
                    A component of a pathname exceeded 255 characters,
                    or an entire path name exceeded 1023 characters.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOENT" />
                </term>
                <description>
                  <para>
                    The named directory does not exist.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ELOOP" />
                </term>
                <description>
                  <para>
                    Too many symbolic links were encountered in translating the pathname.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOTEMPTY" />
                </term>
                <description>
                  <para>
                    The named directory contains files other than
                    "<c></c>"
                    and
                    "<c></c>"
                    in it.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EACCES" />
                </term>
                <description>
                  <para>
                    Search permission is denied for a component of the path prefix.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EACCES" />
                </term>
                <description>
                  <para>
                    Write permission is denied on the directory containing the link
                    to be removed.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EPERM" />
                </term>
                <description>
                  <para>
                    The directory containing the directory to be removed is marked sticky,
                    and neither the containing directory nor the directory to be removed
                    are owned by the effective user ID.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EBUSY" />
                </term>
                <description>
                  <para>
                    The directory to be removed is the mount point
                    for a mounted file system.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EIO" />
                </term>
                <description>
                  <para>
                    An I/O error occurred while deleting the directory entry
                    or deallocating the inode.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EROFS" />
                </term>
                <description>
                  <para>
                    The directory entry to be removed resides on a read-only file system.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EFAULT" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="path" /> 
                    argument
                    points outside the process's allocated address space.
                  </para>
                </description>
              </item>
            </list>
            <para>
            </para>
          </block>
        </returns>
        <remarks>
          <para>
            The
            <c>rmdir</c>()
            system call
            removes a directory file
            whose name is given by
            <paramref name="path" /> .
            The directory must not have any entries other
            than
            "<c>.</c>"
            and
            "<c>..</c>"
          </para>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.mkdir" />
        <altmember cref="M:Mono.Unix.Native.Syscall.unlink" />
      </Docs>
    </Member>
    <Member MemberName="tcgetpgrp">
      <MemberSignature Language="C#" Value="public static int tcgetpgrp (int fd);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="tcsetpgrp">
      <MemberSignature Language="C#" Value="public static int tcsetpgrp (int fd, int pgrp);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="pgrp" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="pgrp">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getlogin">
      <MemberSignature Language="C#" Value="public static string getlogin ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getlogin_r">
      <MemberSignature Language="C#" Value="public static int getlogin_r (System.Text.StringBuilder name, ulong bufsize);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="name" Type="System.Text.StringBuilder" />
        <Parameter Name="bufsize" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="name">To be added.</param>
        <param name="bufsize">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getlogin_r">
      <MemberSignature Language="C#" Value="public static int getlogin_r (System.Text.StringBuilder name);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="name" Type="System.Text.StringBuilder" />
      </Parameters>
      <Docs>
        <param name="name">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="setlogin">
      <MemberSignature Language="C#" Value="public static int setlogin (string name);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="name" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="name">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="gethostname">
      <MemberSignature Language="C#" Value="public static int gethostname (System.Text.StringBuilder name, ulong len);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="name" Type="System.Text.StringBuilder" />
        <Parameter Name="len" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="name">To be added.</param>
        <param name="len">To be added.</param>
        <summary>Retrieves the hostname.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="gethostname">
      <MemberSignature Language="C#" Value="public static int gethostname (System.Text.StringBuilder name);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="name" Type="System.Text.StringBuilder" />
      </Parameters>
      <Docs>
        <param name="name">To be added.</param>
        <summary>Retrieves the hostname.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="sethostname">
      <MemberSignature Language="C#" Value="public static int sethostname (string name, ulong len);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="name" Type="System.String" />
        <Parameter Name="len" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="name">To be added.</param>
        <param name="len">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="sethostname">
      <MemberSignature Language="C#" Value="public static int sethostname (string name);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="name" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="name">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="gethostid">
      <MemberSignature Language="C#" Value="public static long gethostid ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="sethostid">
      <MemberSignature Language="C#" Value="public static int sethostid (long hostid);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="hostid" Type="System.Int64" />
      </Parameters>
      <Docs>
        <param name="hostid">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getdomainname">
      <MemberSignature Language="C#" Value="public static int getdomainname (System.Text.StringBuilder name, ulong len);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="name" Type="System.Text.StringBuilder" />
        <Parameter Name="len" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="name">To be added.</param>
        <param name="len">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getdomainname">
      <MemberSignature Language="C#" Value="public static int getdomainname (System.Text.StringBuilder name);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="name" Type="System.Text.StringBuilder" />
      </Parameters>
      <Docs>
        <param name="name">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="setdomainname">
      <MemberSignature Language="C#" Value="public static int setdomainname (string name, ulong len);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="name" Type="System.String" />
        <Parameter Name="len" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="name">To be added.</param>
        <param name="len">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="setdomainname">
      <MemberSignature Language="C#" Value="public static int setdomainname (string name);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="name" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="name">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="vhangup">
      <MemberSignature Language="C#" Value="public static int vhangup ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="revoke">
      <MemberSignature Language="C#" Value="public static int revoke (string file);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="file" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="file">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="acct">
      <MemberSignature Language="C#" Value="public static int acct (string filename);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="filename" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="filename">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getusershell">
      <MemberSignature Language="C#" Value="public static string getusershell ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="chroot">
      <MemberSignature Language="C#" Value="public static int chroot (string path);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <summary>Change root directory.</summary>
        <returns>To be added.</returns>
        <remarks>See <c>chroot</c>(2) for more information and error codes.</remarks>
      </Docs>
    </Member>
    <Member MemberName="fsync">
      <MemberSignature Language="C#" Value="public static int fsync (int fd);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="fdatasync">
      <MemberSignature Language="C#" Value="public static int fdatasync (int fd);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <summary>Synchronize changes to a file.</summary>
        <returns>
          <para>
            On success, zero is returned.
            On error, -1 is returned and 
            <see cref="M:Mono.Unix.Native.Stdlib.GetLastError" />
            returns the translated error.
          </para>
          <block subset="none" type="usage">
            <para>
              The
              <c>fsync</c>()
              fails if:
            </para>
            <list type="table">
              <listheader>
                <term>
                  Error
                </term>
                <description>
                  Details
                </description>
              </listheader>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EBADF" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="fd" /> 
                    argument
                    is not a valid descriptor.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EINVAL" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="fd" /> 
                    argument
                    refers to a socket, not to a file.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EIO" />
                </term>
                <description>
                  <para>
                    An I/O error occurred while reading from or writing to the file system.
                  </para>
                </description>
              </item>
            </list>
            <para>
            </para>
          </block>
        </returns>
        <remarks>
          <para>
            The
            <c>fsync</c>()
            system call
            causes all modified data and attributes of
            <paramref name="fd" /> 
            to be moved to a permanent storage device.
            This normally results in all in-core modified copies
            of buffers for the associated file to be written to a disk.
          </para>
          <para>
            The
            <c>fsync</c>()
            system call
            should be used by programs that require a file to be
            in a known state, for example, in building a simple transaction
            facility.
          </para>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.sync" />
      </Docs>
    </Member>
    <Member MemberName="sync">
      <MemberSignature Language="C#" Value="public static int sync ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>sync forces "dirty" (modified) filesystem buffers to be written to disk.</summary>
        <returns>On success, zero is returned. On error, -1 is returned and errno is set.  <see cref="M:Mono.Unix.Native.Stdlib.GetLastError" /> can be called to obtain the translated error.</returns>
        <remarks>The filesystem buffer cache is generally write-behind, for best performance. But since the cache is not persistent, it should be flushed periodically. A sync() call is issued by the update daemon periodically.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getpagesize">
      <MemberSignature Language="C#" Value="public static int getpagesize ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="truncate">
      <MemberSignature Language="C#" Value="public static int truncate (string path, long length);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="length" Type="System.Int64" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="length">To be added.</param>
        <summary>Truncate or extend a file to a specified length.</summary>
        <returns>
          <para>
            On success, zero is returned.
            On error, -1 is returned and 
            <see cref="M:Mono.Unix.Native.Stdlib.GetLastError" />
            returns the translated error.
          </para>
          <block subset="none" type="usage">
            <para>
              The
              <c>truncate</c>()
              system call
              succeeds unless:
            </para>
            <list type="table">
              <listheader>
                <term>
                  Error
                </term>
                <description>
                  Details
                </description>
              </listheader>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />
                </term>
                <description>
                  <para>
                    A component of the path prefix is not a directory.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />
                </term>
                <description>
                  <para>
                    A component of a pathname exceeded 255 characters,
                    or an entire path name exceeded 1023 characters.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOENT" />
                </term>
                <description>
                  <para>
                    The named file does not exist.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EACCES" />
                </term>
                <description>
                  <para>
                    Search permission is denied for a component of the path prefix.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EACCES" />
                </term>
                <description>
                  <para>
                    The named file is not writable by the user.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ELOOP" />
                </term>
                <description>
                  <para>
                    Too many symbolic links were encountered in translating the pathname.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EISDIR" />
                </term>
                <description>
                  <para>
                    The named file is a directory.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EROFS" />
                </term>
                <description>
                  <para>
                    The named file resides on a read-only file system.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ETXTBSY" />
                </term>
                <description>
                  <para>
                    The file is a pure procedure (shared text) file that is being executed.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EIO" />
                </term>
                <description>
                  <para>
                    An I/O error occurred updating the inode.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EFAULT" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="path" /> 
                    argument
                    points outside the process's allocated address space.
                  </para>
                </description>
              </item>
            </list>
            <para>
            </para>
            <para>
              The
              <c>ftruncate</c>()
              system call
              succeeds unless:
            </para>
            <list type="table">
              <listheader>
                <term>
                  Error
                </term>
                <description>
                  Details
                </description>
              </listheader>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EBADF" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="fd" /> 
                    argument
                    is not a valid descriptor.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EINVAL" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="fd" /> 
                    argument
                    references a socket, not a file.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EINVAL" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="fd" /> 
                    descriptor
                    is not open for writing.
                  </para>
                </description>
              </item>
            </list>
            <para>
            </para>
          </block>
        </returns>
        <remarks>
          <para>
            The
            <c>truncate</c>()
            system call
            causes the file named by
            <paramref name="path" /> 
            or referenced by
            <paramref name="fd" /> 
            to be truncated or extended to
            <paramref name="length" /> 
            bytes in size.
            If the file
            was larger than this size, the extra data
            is lost.
            If the file was smaller than this size,
            it will be extended as if by writing bytes
            with the value zero.
            With
            <c>ftruncate</c>(),
            the file must be open for writing.
          </para>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.open" />
      </Docs>
    </Member>
    <Member MemberName="ftruncate">
      <MemberSignature Language="C#" Value="public static int ftruncate (int fd, long length);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="length" Type="System.Int64" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="length">To be added.</param>
        <summary>Truncate or extend a file to length</summary>
        <returns>
          <para>
            On success, zero is returned.
            On error, -1 is returned and 
            <see cref="M:Mono.Unix.Native.Stdlib.GetLastError" />
            returns the translated error.
          </para>
          <block subset="none" type="usage">
            <para>
              The
              <c>ftruncate</c>()
              system call
              succeeds unless:
            </para>
            <list type="table">
              <listheader>
                <term>
                  Error
                </term>
                <description>
                  Details
                </description>
              </listheader>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EBADF" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="fd" /> 
                    argument
                    is not a valid descriptor.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EINVAL" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="fd" /> 
                    argument
                    references a socket, not a file.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EINVAL" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="fd" /> 
                    descriptor
                    is not open for writing.
                  </para>
                </description>
              </item>
            </list>
            <para>
            </para>
          </block>
        </returns>
        <remarks>
          <para>
            The
            <c>truncate</c>()
            system call
            causes the file named by
            <paramref name="path" /> 
            or referenced by
            <paramref name="fd" /> 
            to be truncated or extended to
            <paramref name="length" /> 
            bytes in size.
            If the file
            was larger than this size, the extra data
            is lost.
            If the file was smaller than this size,
            it will be extended as if by writing bytes
            with the value zero.
            With
            <c>ftruncate</c>(),
            the file must be open for writing.
          </para>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.open" />
      </Docs>
    </Member>
    <Member MemberName="getdtablesize">
      <MemberSignature Language="C#" Value="public static int getdtablesize ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="brk">
      <MemberSignature Language="C#" Value="public static int brk (IntPtr end_data_segment);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="end_data_segment" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <param name="end_data_segment">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="sbrk">
      <MemberSignature Language="C#" Value="public static IntPtr sbrk (IntPtr increment);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.IntPtr</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="increment" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <param name="increment">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="crypt">
      <MemberSignature Language="C#" Value="public static string crypt (string key, string salt);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="key" Type="System.String" />
        <Parameter Name="salt" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="key">To be added.</param>
        <param name="salt">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="swab">
      <MemberSignature Language="C#" Value="public static void swab (void* from, void* to, long n);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="from" Type="System.Void*" />
        <Parameter Name="to" Type="System.Void*" />
        <Parameter Name="n" Type="System.Int64" />
      </Parameters>
      <Docs>
        <param name="from">To be added.</param>
        <param name="to">To be added.</param>
        <param name="n">To be added.</param>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="utime">
      <MemberSignature Language="C#" Value="public static int utime (string filename, ref Mono.Unix.Native.Utimbuf buf);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="filename" Type="System.String" />
        <Parameter Name="buf" Type="Mono.Unix.Native.Utimbuf&amp;" RefType="ref" />
      </Parameters>
      <Docs>
        <param name="filename">To be added.</param>
        <param name="buf">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="utime">
      <MemberSignature Language="C#" Value="public static int utime (string filename);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="filename" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="filename">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="setxattr">
      <MemberSignature Language="C#" Value="public static int setxattr (string path, string name, byte[] value, ulong size, Mono.Unix.Native.XattrFlags flags);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="name" Type="System.String" />
        <Parameter Name="value" Type="System.Byte[]" />
        <Parameter Name="size" Type="System.UInt64" />
        <Parameter Name="flags" Type="Mono.Unix.Native.XattrFlags" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="name">To be added.</param>
        <param name="value">To be added.</param>
        <param name="size">To be added.</param>
        <param name="flags">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="setxattr">
      <MemberSignature Language="C#" Value="public static int setxattr (string path, string name, byte[] value, Mono.Unix.Native.XattrFlags flags);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="name" Type="System.String" />
        <Parameter Name="value" Type="System.Byte[]" />
        <Parameter Name="flags" Type="Mono.Unix.Native.XattrFlags" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="name">To be added.</param>
        <param name="value">To be added.</param>
        <param name="flags">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="lsetxattr">
      <MemberSignature Language="C#" Value="public static int lsetxattr (string path, string name, byte[] value, ulong size, Mono.Unix.Native.XattrFlags flags);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="name" Type="System.String" />
        <Parameter Name="value" Type="System.Byte[]" />
        <Parameter Name="size" Type="System.UInt64" />
        <Parameter Name="flags" Type="Mono.Unix.Native.XattrFlags" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="name">To be added.</param>
        <param name="value">To be added.</param>
        <param name="size">To be added.</param>
        <param name="flags">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="lsetxattr">
      <MemberSignature Language="C#" Value="public static int lsetxattr (string path, string name, byte[] value, Mono.Unix.Native.XattrFlags flags);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="name" Type="System.String" />
        <Parameter Name="value" Type="System.Byte[]" />
        <Parameter Name="flags" Type="Mono.Unix.Native.XattrFlags" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="name">To be added.</param>
        <param name="value">To be added.</param>
        <param name="flags">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="fsetxattr">
      <MemberSignature Language="C#" Value="public static int fsetxattr (int fd, string name, byte[] value, ulong size, Mono.Unix.Native.XattrFlags flags);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="name" Type="System.String" />
        <Parameter Name="value" Type="System.Byte[]" />
        <Parameter Name="size" Type="System.UInt64" />
        <Parameter Name="flags" Type="Mono.Unix.Native.XattrFlags" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="name">To be added.</param>
        <param name="value">To be added.</param>
        <param name="size">To be added.</param>
        <param name="flags">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="fsetxattr">
      <MemberSignature Language="C#" Value="public static int fsetxattr (int fd, string name, byte[] value, Mono.Unix.Native.XattrFlags flags);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="name" Type="System.String" />
        <Parameter Name="value" Type="System.Byte[]" />
        <Parameter Name="flags" Type="Mono.Unix.Native.XattrFlags" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="name">To be added.</param>
        <param name="value">To be added.</param>
        <param name="flags">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getxattr">
      <MemberSignature Language="C#" Value="public static long getxattr (string path, string name, byte[] value, ulong size);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="name" Type="System.String" />
        <Parameter Name="value" Type="System.Byte[]" />
        <Parameter Name="size" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="name">To be added.</param>
        <param name="value">To be added.</param>
        <param name="size">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getxattr">
      <MemberSignature Language="C#" Value="public static long getxattr (string path, string name, byte[] value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="name" Type="System.String" />
        <Parameter Name="value" Type="System.Byte[]" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="name">To be added.</param>
        <param name="value">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="getxattr">
      <MemberSignature Language="C#" Value="public static long getxattr (string path, string name, out byte[] value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="name" Type="System.String" />
        <Parameter Name="value" Type="System.Byte[]&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="name">To be added.</param>
        <param name="value">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="lgetxattr">
      <MemberSignature Language="C#" Value="public static long lgetxattr (string path, string name, byte[] value, ulong size);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="name" Type="System.String" />
        <Parameter Name="value" Type="System.Byte[]" />
        <Parameter Name="size" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="name">To be added.</param>
        <param name="value">To be added.</param>
        <param name="size">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="lgetxattr">
      <MemberSignature Language="C#" Value="public static long lgetxattr (string path, string name, byte[] value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="name" Type="System.String" />
        <Parameter Name="value" Type="System.Byte[]" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="name">To be added.</param>
        <param name="value">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="lgetxattr">
      <MemberSignature Language="C#" Value="public static long lgetxattr (string path, string name, out byte[] value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="name" Type="System.String" />
        <Parameter Name="value" Type="System.Byte[]&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="name">To be added.</param>
        <param name="value">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="fgetxattr">
      <MemberSignature Language="C#" Value="public static long fgetxattr (int fd, string name, byte[] value, ulong size);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="name" Type="System.String" />
        <Parameter Name="value" Type="System.Byte[]" />
        <Parameter Name="size" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="name">To be added.</param>
        <param name="value">To be added.</param>
        <param name="size">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="fgetxattr">
      <MemberSignature Language="C#" Value="public static long fgetxattr (int fd, string name, byte[] value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="name" Type="System.String" />
        <Parameter Name="value" Type="System.Byte[]" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="name">To be added.</param>
        <param name="value">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="fgetxattr">
      <MemberSignature Language="C#" Value="public static long fgetxattr (int fd, string name, out byte[] value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="name" Type="System.String" />
        <Parameter Name="value" Type="System.Byte[]&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="name">To be added.</param>
        <param name="value">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="listxattr">
      <MemberSignature Language="C#" Value="public static long listxattr (string path, byte[] list, ulong size);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="list" Type="System.Byte[]" />
        <Parameter Name="size" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="list">To be added.</param>
        <param name="size">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="listxattr">
      <MemberSignature Language="C#" Value="public static long listxattr (string path, System.Text.Encoding encoding, out string[] values);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="encoding" Type="System.Text.Encoding" />
        <Parameter Name="values" Type="System.String[]&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="encoding">To be added.</param>
        <param name="values">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="llistxattr">
      <MemberSignature Language="C#" Value="public static long llistxattr (string path, byte[] list, ulong size);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="list" Type="System.Byte[]" />
        <Parameter Name="size" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="list">To be added.</param>
        <param name="size">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="llistxattr">
      <MemberSignature Language="C#" Value="public static long llistxattr (string path, System.Text.Encoding encoding, out string[] values);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="encoding" Type="System.Text.Encoding" />
        <Parameter Name="values" Type="System.String[]&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="encoding">To be added.</param>
        <param name="values">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="flistxattr">
      <MemberSignature Language="C#" Value="public static long flistxattr (int fd, byte[] list, ulong size);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="list" Type="System.Byte[]" />
        <Parameter Name="size" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="list">To be added.</param>
        <param name="size">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="flistxattr">
      <MemberSignature Language="C#" Value="public static long flistxattr (int fd, System.Text.Encoding encoding, out string[] values);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="encoding" Type="System.Text.Encoding" />
        <Parameter Name="values" Type="System.String[]&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="encoding">To be added.</param>
        <param name="values">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="removexattr">
      <MemberSignature Language="C#" Value="public static int removexattr (string path, string name);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="name" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="name">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="lremovexattr">
      <MemberSignature Language="C#" Value="public static int lremovexattr (string path, string name);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="name" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="name">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="fremovexattr">
      <MemberSignature Language="C#" Value="public static int fremovexattr (int fd, string name);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="name" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="name">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="MAP_FAILED">
      <MemberSignature Language="C#" Value="public static readonly IntPtr MAP_FAILED;" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.IntPtr</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="fcntl">
      <MemberSignature Language="C#" Value="public static int fcntl (int fd, Mono.Unix.Native.FcntlCommand cmd, Mono.Unix.Native.DirectoryNotifyFlags arg);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="cmd" Type="Mono.Unix.Native.FcntlCommand" />
        <Parameter Name="arg" Type="Mono.Unix.Native.DirectoryNotifyFlags" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="cmd">To be added.</param>
        <param name="arg">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="posix_fallocate">
      <MemberSignature Language="C#" Value="public static int posix_fallocate (int fd, long offset, ulong len);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="offset" Type="System.Int64" />
        <Parameter Name="len" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="offset">To be added.</param>
        <param name="len">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="mkstemp">
      <MemberSignature Language="C#" Value="public static int mkstemp (System.Text.StringBuilder template);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="template" Type="System.Text.StringBuilder" />
      </Parameters>
      <Docs>
        <param name="template">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="munmap">
      <MemberSignature Language="C#" Value="public static int munmap (IntPtr start, ulong length);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="start" Type="System.IntPtr" />
        <Parameter Name="length" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="start">To be added.</param>
        <param name="length">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="msync">
      <MemberSignature Language="C#" Value="public static int msync (IntPtr start, ulong len, Mono.Unix.Native.MsyncFlags flags);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="start" Type="System.IntPtr" />
        <Parameter Name="len" Type="System.UInt64" />
        <Parameter Name="flags" Type="Mono.Unix.Native.MsyncFlags" />
      </Parameters>
      <Docs>
        <param name="start">To be added.</param>
        <param name="len">To be added.</param>
        <param name="flags">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="mlock">
      <MemberSignature Language="C#" Value="public static int mlock (IntPtr start, ulong len);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="start" Type="System.IntPtr" />
        <Parameter Name="len" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="start">To be added.</param>
        <param name="len">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="munlock">
      <MemberSignature Language="C#" Value="public static int munlock (IntPtr start, ulong len);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="start" Type="System.IntPtr" />
        <Parameter Name="len" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="start">To be added.</param>
        <param name="len">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="mlockall">
      <MemberSignature Language="C#" Value="public static int mlockall (Mono.Unix.Native.MlockallFlags flags);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="flags" Type="Mono.Unix.Native.MlockallFlags" />
      </Parameters>
      <Docs>
        <param name="flags">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="munlockall">
      <MemberSignature Language="C#" Value="public static int munlockall ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="mremap">
      <MemberSignature Language="C#" Value="public static IntPtr mremap (IntPtr old_address, ulong old_size, ulong new_size, Mono.Unix.Native.MremapFlags flags);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.IntPtr</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="old_address" Type="System.IntPtr" />
        <Parameter Name="old_size" Type="System.UInt64" />
        <Parameter Name="new_size" Type="System.UInt64" />
        <Parameter Name="flags" Type="Mono.Unix.Native.MremapFlags" />
      </Parameters>
      <Docs>
        <param name="old_address">To be added.</param>
        <param name="old_size">To be added.</param>
        <param name="new_size">To be added.</param>
        <param name="flags">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="mincore">
      <MemberSignature Language="C#" Value="public static int mincore (IntPtr start, ulong length, byte[] vec);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="start" Type="System.IntPtr" />
        <Parameter Name="length" Type="System.UInt64" />
        <Parameter Name="vec" Type="System.Byte[]" />
      </Parameters>
      <Docs>
        <param name="start">To be added.</param>
        <param name="length">To be added.</param>
        <param name="vec">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="execve">
      <MemberSignature Language="C#" Value="public static int execve (string path, string[] argv, string[] envp);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="argv" Type="System.String[]" />
        <Parameter Name="envp" Type="System.String[]" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="argv">To be added.</param>
        <param name="envp">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="fexecve">
      <MemberSignature Language="C#" Value="public static int fexecve (int fd, string[] argv, string[] envp);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="argv" Type="System.String[]" />
        <Parameter Name="envp" Type="System.String[]" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="argv">To be added.</param>
        <param name="envp">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="execv">
      <MemberSignature Language="C#" Value="public static int execv (string path, string[] argv);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="argv" Type="System.String[]" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="argv">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="lockf">
      <MemberSignature Language="C#" Value="public static int lockf (int fd, Mono.Unix.Native.LockfCommand cmd, long len);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="cmd" Type="Mono.Unix.Native.LockfCommand" />
        <Parameter Name="len" Type="System.Int64" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="cmd">To be added.</param>
        <param name="len">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="setxattr">
      <MemberSignature Language="C#" Value="public static int setxattr (string path, string name, byte[] value, ulong size);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="name" Type="System.String" />
        <Parameter Name="value" Type="System.Byte[]" />
        <Parameter Name="size" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="name">To be added.</param>
        <param name="value">To be added.</param>
        <param name="size">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="setxattr">
      <MemberSignature Language="C#" Value="public static int setxattr (string path, string name, byte[] value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="name" Type="System.String" />
        <Parameter Name="value" Type="System.Byte[]" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="name">To be added.</param>
        <param name="value">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="lsetxattr">
      <MemberSignature Language="C#" Value="public static int lsetxattr (string path, string name, byte[] value, ulong size);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="name" Type="System.String" />
        <Parameter Name="value" Type="System.Byte[]" />
        <Parameter Name="size" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="name">To be added.</param>
        <param name="value">To be added.</param>
        <param name="size">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="lsetxattr">
      <MemberSignature Language="C#" Value="public static int lsetxattr (string path, string name, byte[] value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="name" Type="System.String" />
        <Parameter Name="value" Type="System.Byte[]" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="name">To be added.</param>
        <param name="value">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="fsetxattr">
      <MemberSignature Language="C#" Value="public static int fsetxattr (int fd, string name, byte[] value, ulong size);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="name" Type="System.String" />
        <Parameter Name="value" Type="System.Byte[]" />
        <Parameter Name="size" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="name">To be added.</param>
        <param name="value">To be added.</param>
        <param name="size">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="fsetxattr">
      <MemberSignature Language="C#" Value="public static int fsetxattr (int fd, string name, byte[] value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="name" Type="System.String" />
        <Parameter Name="value" Type="System.Byte[]" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="name">To be added.</param>
        <param name="value">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="execvp">
      <MemberSignature Language="C#" Value="public static int execvp (string path, string[] argv);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="argv" Type="System.String[]" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="argv">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="strerror_r">
      <MemberSignature Language="C#" Value="public static int strerror_r (Mono.Unix.Native.Errno errnum, System.Text.StringBuilder buf, ulong n);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="errnum" Type="Mono.Unix.Native.Errno" />
        <Parameter Name="buf" Type="System.Text.StringBuilder" />
        <Parameter Name="n" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="errnum">To be added.</param>
        <param name="buf">To be added.</param>
        <param name="n">To be added.</param>
        <summary>Thread-safe version of <see cref="M:Mono.Unix.Native.Stdlib.strerror" />.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="strerror_r">
      <MemberSignature Language="C#" Value="public static int strerror_r (Mono.Unix.Native.Errno errnum, System.Text.StringBuilder buf);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="errnum" Type="Mono.Unix.Native.Errno" />
        <Parameter Name="buf" Type="System.Text.StringBuilder" />
      </Parameters>
      <Docs>
        <param name="errnum">To be added.</param>
        <param name="buf">To be added.</param>
        <summary>Thread-safe version of <see cref="M:Mono.Unix.Native.Stdlib.strerror" />.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="mmap">
      <MemberSignature Language="C#" Value="public static IntPtr mmap (IntPtr start, ulong length, Mono.Unix.Native.MmapProts prot, Mono.Unix.Native.MmapFlags flags, int fd, long offset);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.IntPtr</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="start" Type="System.IntPtr" />
        <Parameter Name="length" Type="System.UInt64" />
        <Parameter Name="prot" Type="Mono.Unix.Native.MmapProts" />
        <Parameter Name="flags" Type="Mono.Unix.Native.MmapFlags" />
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="offset" Type="System.Int64" />
      </Parameters>
      <Docs>
        <param name="start">To be added.</param>
        <param name="length">To be added.</param>
        <param name="prot">To be added.</param>
        <param name="flags">To be added.</param>
        <param name="fd">To be added.</param>
        <param name="offset">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="mprotect">
      <MemberSignature Language="C#" Value="public static int mprotect (IntPtr start, ulong len, Mono.Unix.Native.MmapProts prot);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="start" Type="System.IntPtr" />
        <Parameter Name="len" Type="System.UInt64" />
        <Parameter Name="prot" Type="Mono.Unix.Native.MmapProts" />
      </Parameters>
      <Docs>
        <param name="start">To be added.</param>
        <param name="len">To be added.</param>
        <param name="prot">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="remap_file_pages">
      <MemberSignature Language="C#" Value="public static int remap_file_pages (IntPtr start, ulong size, Mono.Unix.Native.MmapProts prot, long pgoff, Mono.Unix.Native.MmapFlags flags);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="start" Type="System.IntPtr" />
        <Parameter Name="size" Type="System.UInt64" />
        <Parameter Name="prot" Type="Mono.Unix.Native.MmapProts" />
        <Parameter Name="pgoff" Type="System.Int64" />
        <Parameter Name="flags" Type="Mono.Unix.Native.MmapFlags" />
      </Parameters>
      <Docs>
        <param name="start">To be added.</param>
        <param name="size">To be added.</param>
        <param name="prot">To be added.</param>
        <param name="pgoff">To be added.</param>
        <param name="flags">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="access">
      <MemberSignature Language="C#" Value="public static int access (string pathname, Mono.Unix.Native.AccessModes mode);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="pathname" Type="System.String" />
        <Parameter Name="mode" Type="Mono.Unix.Native.AccessModes" />
      </Parameters>
      <Docs>
        <param name="pathname">To be added.</param>
        <param name="mode">To be added.</param>
        <summary>Checks whether the calling task has the necessary access rights to perform operations specified by mode on the file pathname. AccessMode is a mask consisting of one or more of the values R_OK, W_OK, X_OK and F_OK which respectively test if the taks can read, write, execute or test if the file exists.</summary>
        <returns>
          <para>
            On success, zero is returned.
            On error, -1 is returned and 
            <see cref="M:Mono.Unix.Native.Stdlib.GetLastError" />
            returns the translated error.
          </para>
          <block subset="none" type="usage">
            <para>
              Access to the file is denied if:
            </para>
            <list type="table">
              <listheader>
                <term>
                  Error
                </term>
                <description>
                  Details
                </description>
              </listheader>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />
                </term>
                <description>
                  <para>
                    A component of the path prefix is not a directory.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />
                </term>
                <description>
                  <para>
                    A component of a pathname exceeded 255 characters,
                    or an entire path name exceeded 1023 characters.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ENOENT" />
                </term>
                <description>
                  <para>
                    The named file does not exist.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ELOOP" />
                </term>
                <description>
                  <para>
                    Too many symbolic links were encountered in translating the pathname.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EROFS" />
                </term>
                <description>
                  <para>
                    Write access is requested for a file on a read-only file system.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.ETXTBSY" />
                </term>
                <description>
                  <para>
                    Write access is requested for a pure procedure (shared text)
                    file presently being executed.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EACCES" />
                </term>
                <description>
                  <para>
                    Permission bits of the file mode do not permit the requested
                    access, or search permission is denied on a component of the
                    path prefix.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EFAULT" />
                </term>
                <description>
                  <para>
                    The
                    <paramref name="path" /> 
                    argument
                    points outside the process's allocated address space.
                  </para>
                </description>
              </item>
              <item>
                <term>
                  <see cref="F:Mono.Unix.Native.Errno.EIO" />
                </term>
                <description>
                  <para>
                    An I/O error occurred while reading from or writing to the file system.
                  </para>
                </description>
              </item>
            </list>
            <para>
            </para>
          </block>
        </returns>
        <remarks>
          <para>
            The
            <c>access</c>()
            and
            <c>eaccess</c>()
            system calls check the accessibility of the
            file named by
            the
            <paramref name="path" /> 
            argument
            for the access permissions indicated by
            the
            <paramref name="mode" /> 
            argument.
            The value of
            <paramref name="mode" /> 
            is either the bitwise-inclusive OR of the access permissions to be
            checked
            (  <see cref="F:Mono.Unix.Native.AccessModes.R_OK" /> 
            for read permission,
             <see cref="F:Mono.Unix.Native.AccessModes.W_OK" /> 
            for write permission, and
             <see cref="F:Mono.Unix.Native.AccessModes.X_OK" /> 
            for execute/search permission),
            or the existence test
             <see cref="F:Mono.Unix.Native.AccessModes.F_OK" />  .
          </para>
          <para>
            For additional information, see the
            "<c>File Access Permission</c>"
            section of
            <see cref="M:Mono.Unix.Native.Syscall.intro" />(2) .
          </para>
          <para>
            The
            <c>eaccess</c>()
            system call uses
            the effective user ID and the group access list
            to authorize the request;
            the
            <c>access</c>()
            system call uses
            the real user ID in place of the effective user ID,
            the real group ID in place of the effective group ID,
            and the rest of the group access list.
          </para>
          <para>
            Even if a process's real or effective user has appropriate privileges
            and indicates success for
             <see cref="F:Mono.Unix.Native.AccessModes.X_OK" />  ,
            the file may not actually have execute permission bits set.
            Likewise for
             <see cref="F:Mono.Unix.Native.AccessModes.R_OK" /> 
            and
             <see cref="F:Mono.Unix.Native.AccessModes.W_OK" />  .
          </para>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.chmod" />
        <altmember cref="M:Mono.Unix.Native.Syscall.intro" />
        <altmember cref="M:Mono.Unix.Native.Syscall.stat" />
      </Docs>
    </Member>
    <Member MemberName="rewinddir">
      <MemberSignature Language="C#" Value="public static int rewinddir (IntPtr dir);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="dir" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <param name="dir">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="endfsent">
      <MemberSignature Language="C#" Value="public static int endfsent ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="setgrent">
      <MemberSignature Language="C#" Value="public static int setgrent ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="endgrent">
      <MemberSignature Language="C#" Value="public static int endgrent ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="setpwent">
      <MemberSignature Language="C#" Value="public static int setpwent ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="endpwent">
      <MemberSignature Language="C#" Value="public static int endpwent ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="psignal">
      <MemberSignature Language="C#" Value="public static int psignal (Mono.Unix.Native.Signum sig, string s);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="sig" Type="Mono.Unix.Native.Signum" />
        <Parameter Name="s" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="sig">To be added.</param>
        <param name="s">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="setkey">
      <MemberSignature Language="C#" Value="public static int setkey (string key);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="key" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="key">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="openlog">
      <MemberSignature Language="C#" Value="public static int openlog (IntPtr ident, Mono.Unix.Native.SyslogOptions option, Mono.Unix.Native.SyslogFacility defaultFacility);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="ident" Type="System.IntPtr" />
        <Parameter Name="option" Type="Mono.Unix.Native.SyslogOptions" />
        <Parameter Name="defaultFacility" Type="Mono.Unix.Native.SyslogFacility" />
      </Parameters>
      <Docs>
        <param name="ident">To be added.</param>
        <param name="option">To be added.</param>
        <param name="defaultFacility">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="syslog">
      <MemberSignature Language="C#" Value="public static int syslog (Mono.Unix.Native.SyslogFacility facility, Mono.Unix.Native.SyslogLevel level, string message);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="facility" Type="Mono.Unix.Native.SyslogFacility" />
        <Parameter Name="level" Type="Mono.Unix.Native.SyslogLevel" />
        <Parameter Name="message" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="facility">To be added.</param>
        <param name="level">To be added.</param>
        <param name="message">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="syslog">
      <MemberSignature Language="C#" Value="public static int syslog (Mono.Unix.Native.SyslogLevel level, string message);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="level" Type="Mono.Unix.Native.SyslogLevel" />
        <Parameter Name="message" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="level">To be added.</param>
        <param name="message">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="syslog">
      <MemberSignature Language="C#" Value="public static int syslog (Mono.Unix.Native.SyslogFacility facility, Mono.Unix.Native.SyslogLevel level, string format, object[] parameters);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="facility" Type="Mono.Unix.Native.SyslogFacility" />
        <Parameter Name="level" Type="Mono.Unix.Native.SyslogLevel" />
        <Parameter Name="format" Type="System.String" />
        <Parameter Name="parameters" Type="System.Object[]">
          <Attributes>
            <Attribute>
              <AttributeName>System.ParamArray</AttributeName>
            </Attribute>
          </Attributes>
        </Parameter>
      </Parameters>
      <Docs>
        <param name="facility">To be added.</param>
        <param name="level">To be added.</param>
        <param name="format">To be added.</param>
        <param name="parameters">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="syslog">
      <MemberSignature Language="C#" Value="public static int syslog (Mono.Unix.Native.SyslogLevel level, string format, object[] parameters);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="level" Type="Mono.Unix.Native.SyslogLevel" />
        <Parameter Name="format" Type="System.String" />
        <Parameter Name="parameters" Type="System.Object[]">
          <Attributes>
            <Attribute>
              <AttributeName>System.ParamArray</AttributeName>
            </Attribute>
          </Attributes>
        </Parameter>
      </Parameters>
      <Docs>
        <param name="level">To be added.</param>
        <param name="format">To be added.</param>
        <param name="parameters">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="closelog">
      <MemberSignature Language="C#" Value="public static int closelog ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="fpathconf">
      <MemberSignature Language="C#" Value="public static long fpathconf (int filedes, Mono.Unix.Native.PathconfName name, Mono.Unix.Native.Errno defaultError);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="filedes" Type="System.Int32" />
        <Parameter Name="name" Type="Mono.Unix.Native.PathconfName" />
        <Parameter Name="defaultError" Type="Mono.Unix.Native.Errno" />
      </Parameters>
      <Docs>
        <param name="filedes">To be added.</param>
        <param name="name">To be added.</param>
        <param name="defaultError">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="fpathconf">
      <MemberSignature Language="C#" Value="public static long fpathconf (int filedes, Mono.Unix.Native.PathconfName name);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="filedes" Type="System.Int32" />
        <Parameter Name="name" Type="Mono.Unix.Native.PathconfName" />
      </Parameters>
      <Docs>
        <param name="filedes">To be added.</param>
        <param name="name">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="pathconf">
      <MemberSignature Language="C#" Value="public static long pathconf (string path, Mono.Unix.Native.PathconfName name, Mono.Unix.Native.Errno defaultError);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="name" Type="Mono.Unix.Native.PathconfName" />
        <Parameter Name="defaultError" Type="Mono.Unix.Native.Errno" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="name">To be added.</param>
        <param name="defaultError">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="pathconf">
      <MemberSignature Language="C#" Value="public static long pathconf (string path, Mono.Unix.Native.PathconfName name);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="name" Type="Mono.Unix.Native.PathconfName" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="name">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="sysconf">
      <MemberSignature Language="C#" Value="public static long sysconf (Mono.Unix.Native.SysconfName name, Mono.Unix.Native.Errno defaultError);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="name" Type="Mono.Unix.Native.SysconfName" />
        <Parameter Name="defaultError" Type="Mono.Unix.Native.Errno" />
      </Parameters>
      <Docs>
        <param name="name">To be added.</param>
        <param name="defaultError">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="sysconf">
      <MemberSignature Language="C#" Value="public static long sysconf (Mono.Unix.Native.SysconfName name);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="name" Type="Mono.Unix.Native.SysconfName" />
      </Parameters>
      <Docs>
        <param name="name">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="confstr">
      <MemberSignature Language="C#" Value="public static ulong confstr (Mono.Unix.Native.ConfstrName name, System.Text.StringBuilder buf, ulong len);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="name" Type="Mono.Unix.Native.ConfstrName" />
        <Parameter Name="buf" Type="System.Text.StringBuilder" />
        <Parameter Name="len" Type="System.UInt64" />
      </Parameters>
      <Docs>
        <param name="name">To be added.</param>
        <param name="buf">To be added.</param>
        <param name="len">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="setusershell">
      <MemberSignature Language="C#" Value="public static int setusershell ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="endusershell">
      <MemberSignature Language="C#" Value="public static int endusershell ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="encrypt">
      <MemberSignature Language="C#" Value="public static int encrypt (byte[] block, bool decode);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="block" Type="System.Byte[]" />
        <Parameter Name="decode" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <param name="block">To be added.</param>
        <param name="decode">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="swab">
      <MemberSignature Language="C#" Value="public static int swab (IntPtr from, IntPtr to, long n);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="from" Type="System.IntPtr" />
        <Parameter Name="to" Type="System.IntPtr" />
        <Parameter Name="n" Type="System.Int64" />
      </Parameters>
      <Docs>
        <param name="from">To be added.</param>
        <param name="to">To be added.</param>
        <param name="n">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="listxattr">
      <MemberSignature Language="C#" Value="public static long listxattr (string path, out string[] values);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="values" Type="System.String[]&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="values">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="llistxattr">
      <MemberSignature Language="C#" Value="public static long llistxattr (string path, out string[] values);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
        <Parameter Name="values" Type="System.String[]&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="path">To be added.</param>
        <param name="values">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="flistxattr">
      <MemberSignature Language="C#" Value="public static long flistxattr (int fd, out string[] values);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int64</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="values" Type="System.String[]&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="values">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="utimes">
      <MemberSignature Language="C#" Value="public static int utimes (string filename, Mono.Unix.Native.Timeval[] tvp);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="filename" Type="System.String" />
        <Parameter Name="tvp" Type="Mono.Unix.Native.Timeval[]" />
      </Parameters>
      <Docs>
        <param name="filename">To be added.</param>
        <param name="tvp">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="lutimes">
      <MemberSignature Language="C#" Value="public static int lutimes (string filename, Mono.Unix.Native.Timeval[] tvp);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="filename" Type="System.String" />
        <Parameter Name="tvp" Type="Mono.Unix.Native.Timeval[]" />
      </Parameters>
      <Docs>
        <param name="filename">To be added.</param>
        <param name="tvp">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="futimes">
      <MemberSignature Language="C#" Value="public static int futimes (int fd, Mono.Unix.Native.Timeval[] tvp);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fd" Type="System.Int32" />
        <Parameter Name="tvp" Type="Mono.Unix.Native.Timeval[]" />
      </Parameters>
      <Docs>
        <param name="fd">To be added.</param>
        <param name="tvp">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
  </Members>
  <Docs>
    <summary>The Syscall wrapper class makes it possible to execute the defined system calls. For more information on any of these system calls, the linux manual system (man) has exhaustive information on each syscall in section two: 'man 2 chdir' (or often <c>chdir</c>(2)) for example would give information related to chdir, including error codes, which are in general not listed here.</summary>
    <remarks>The syscall wrapper follows the posix standard. This means some functionality or flags which are linux specific may not be available. Below is a list of known posix syscall functions and features that are not yet implemented.
<list type="table">
        <listheader>
          <term>Syscall</term>
          <description>Status</description>
        </listheader>
        <item>
          <term>mount</term>
          <description>Inherently non-portable across the various Unix flavours, and will never be supported.  Instead, use <see cref="System.Diagnostics.Process" /> and invoke the command-line <c>mount</c>(8) program.</description>
        </item>
        <item>
          <term>umount</term>
          <description>Inherently non-portable across the various Unix flavours, and will never be supported.  Instead, use <see cref="System.Diagnostics.Process" /> and invoke the command-line <c>umount</c>(8) program.</description>
        </item>
        <item>
          <term>ptrace</term>
          <description>Not yet implemented.</description>
        </item>
        <item>
          <term>ftime</term>
          <description>Not yet implemented.</description>
        </item>
        <item>
          <term>times</term>
          <description>Not yet implemented.</description>
        </item>
        <item>
          <term>ulimit</term>
          <description>Not yet implemented.</description>
        </item>
        <item>
          <term>sigaction</term>
          <description>Not yet implemented.</description>
        </item>
        <item>
          <term>sigsuspend</term>
          <description>Not yet implemented.</description>
        </item>
        <item>
          <term>sigpending</term>
          <description>Not yet implemented.</description>
        </item>
        <item>
          <term>setrlimit</term>
          <description>Not yet implemented.</description>
        </item>
        <item>
          <term>getrlimit</term>
          <description>Not yet implemented.</description>
        </item>
        <item>
          <term>getrusage</term>
          <description>Not yet implemented.</description>
        </item>
      </list></remarks>
  </Docs>
  <Attributes>
    <Attribute>
      <AttributeName>System.CLSCompliant(false)</AttributeName>
    </Attribute>
  </Attributes>
</Type>
