<html>
<head>
<meta name="Content-Style" content="text/css">
</head>
<body>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="##include <sys/acl.h>">#include <sys/acl.h></a><br>
<a href="#ssize_t acl_copy_ext(void *bufp, struct acl *aclp, ssize_t size);">ssize_t acl_copy_ext(void *bufp, struct acl *aclp, ssize_t size);</a><br>
<a href="#struct acl *acl_copy_int(void *bufp);">struct acl *acl_copy_int(void *bufp);</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#ERRORS">ERRORS</a><br>
<!-- Creator : groff version 1.16.1 -->
<!-- CreationDate: Wed Jan 24 01:42:48 2001
-->
<!-- Total number of pages: 1 -->
<!-- Page: 1 -->
<!-- left margin: 220 -->
<!-- right margin: 750 -->
<a name="NAME"></a><h2>NAME</h2><p style="margin-left: 18%"><font size=3>acl_copy_ext, acl_copy_int - copy ACL from system to user space or from user to system space</font></p>
<a name="SYNOPSIS"></a><h2>SYNOPSIS</h2><a name="#include <sys/acl.h>"></a><h2>#include <sys/acl.h></h2><a name="ssize_t acl_copy_ext(void *bufp, struct acl *aclp, ssize_t size);"></a><h2>ssize_t acl_copy_ext(void *bufp, struct acl *aclp, ssize_t size);</h2><a name="struct acl *acl_copy_int(void *bufp);"></a><h2>struct acl *acl_copy_int(void *bufp);</h2><a name="DESCRIPTION"></a><h2>DESCRIPTION</h2><p style="margin-left: 18%"><font size=3><I>acl_copy_ext</I></font> <font size=3>sets</font> <font size=3><I>*bufp</I></font> <font size=3>to</font> <font size=3><I>*aclp</I></font> <font size=3>if the arguments are valid.</font> <font size=3><I>acl_copy_int</I></font> <font size=3>allocates a</font> <font size=3><I>struct acl</I></font> <font size=3>and copies the</font> <font size=3><I>struct acl</I></font> <font size=3>pointed to by</font> <font size=3><I>*bufp</I></font> <font size=3>into it, if the arguments are valid. The storage should be freed by calling</font> <font size=3><I>acl_free</I></font><font size=3>(3) when no longer needed.</font></p>
<p style="margin-left: 18%"><font size=3>In the POSIX specifications, the internal form of an ACL may be different from the external form, hence the need for these functions. In IRIX, both forms are the same.</font></p>
<a name="RETURN VALUES"></a><h2>RETURN VALUES</h2><p style="margin-left: 18%"><font size=3><I>acl_copy_ext</I></font> <font size=3>returns</font> <font size=3><I>sizeof(struct acl)</I></font> <font size=3>in the normal case, or ­1 if</font> <font size=3><I>aclp</I></font> <font size=3>is null.</font></p>
<p style="margin-left: 18%"><font size=3><I>acl_copy_int</I></font> <font size=3>returns</font> <font size=3><I>aclp</I></font> <font size=3>in the normal case or</font> <font size=3><I>(struct acl *)0</I></font> <font size=3>if the arguments are invalid.</font></p>
<a name="ERRORS"></a><h2>ERRORS</h2>
<table width="97%" rules="none" frame="none" cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td valign="top" align="left" width="18%">
</td>
<td valign="top" align="left" width="12%">
<p><font size=3><I>acl_copy_ext:</I></font></p>
</td>
<td valign="top" align="left" width="2%">
</td>
<td valign="top" align="left" width="41%">
</td>
<td valign="top" align="left" width="24%">
</td>
</tr>
<tr valign="top" align="left">
<td valign="top" align="left" width="18%">
</td>
<td valign="top" align="left" width="12%">
<p><font size=3>EINVAL</font></p>
<p><font size=3>ERANGE</font></p>
<p><font size=3><I>acl_copy_int:</I></font></p>
</td>
<td valign="top" align="left" width="2%">
</td>
<td valign="top" align="left" width="41%">
<p><font size=3><I>aclp</I></font> <font size=3>is null or</font> <font size=3><I>bufp</I></font> <font size=3>is null or</font> <font size=3><I>size</I></font> <font size=3>is 0 or negative.</font></p>
<p><font size=3><I>size</I></font> <font size=3>is less than</font> <font size=3><I>sizeof(struct acl)</I></font></p>
</td>
<td valign="top" align="left" width="24%">
</td>
</tr>
<tr valign="top" align="left">
<td valign="top" align="left" width="18%">
</td>
<td valign="top" align="left" width="12%">
<p><font size=3>EINVAL</font></p>
<p><font size=3>ENOMEM</font></p>
</td>
<td valign="top" align="left" width="2%">
</td>
<td valign="top" align="left" width="41%">
<p><font size=3><I>bufp</I></font> <font size=3>is null</font></p>
<p><font size=3>memory allocation failure</font></p>
</td>
<td valign="top" align="left" width="24%">
</td>
</tr>
</table>
</body>
</html>