Module Name: src Committed By: christos Date: Sun Mar 9 16:24:38 UTC 2025
Modified Files: src/lib/libc/posix1e: Makefile.inc Added Files: src/lib/libc/posix1e: extattr.3 Log Message: PR/59159: Taylor R Campbell: getextattr(1) cites nonexistent extattr(3) To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/lib/libc/posix1e/Makefile.inc cvs rdiff -u -r0 -r1.5 src/lib/libc/posix1e/extattr.3 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/lib/libc/posix1e/Makefile.inc diff -u src/lib/libc/posix1e/Makefile.inc:1.3 src/lib/libc/posix1e/Makefile.inc:1.4 --- src/lib/libc/posix1e/Makefile.inc:1.3 Sun Jul 26 14:10:00 2020 +++ src/lib/libc/posix1e/Makefile.inc Sun Mar 9 12:24:38 2025 @@ -63,6 +63,7 @@ MAN+= acl.3 \ acl_strip_np.3 \ acl_to_text.3 \ acl_valid.3 \ + extattr.3 \ posix1e.3 MLINKS+=acl_create_entry.3 acl_create_entry_np.3 \ @@ -81,7 +82,5 @@ MLINKS+=acl_create_entry.3 acl_create_en acl_to_text.3 acl_to_text_np.3 \ acl_valid.3 acl_valid_file_np.3 \ acl_valid.3 acl_valid_fd_np.3 \ - - -# extattr.3 extattr_namespace_to_string.3 \ -# extattr.3 extattr_string_to_namespace.3 + extattr.3 extattr_namespace_to_string.3 \ + extattr.3 extattr_string_to_namespace.3 Added files: Index: src/lib/libc/posix1e/extattr.3 diff -u /dev/null src/lib/libc/posix1e/extattr.3:1.5 --- /dev/null Sun Mar 9 12:24:38 2025 +++ src/lib/libc/posix1e/extattr.3 Sun Mar 9 12:24:38 2025 @@ -0,0 +1,101 @@ +.\" $NetBSD: extattr.3,v 1.5 2025/03/09 16:24:38 christos Exp $ +.\" +.\" Copyright (c) 2001 Dima Dorfman <d...@freebsd.org> +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.Dd March 9, 2025 +.Dt EXTATTR 3 +.Os +.Sh NAME +.Nm extattr_namespace_to_string , +.Nm extattr_string_to_namespace +.Nd convert an extended attribute namespace identifier to a string and +vice versa +.Sh LIBRARY +.Lb libutil +.Sh SYNOPSIS +.In sys/extattr.h +.In libutil.h +.Ft int +.Fn extattr_namespace_to_string "int attrnamespace" "char **string" +.Ft int +.Fn extattr_string_to_namespace "const char *string" "int *attrnamespace" +.Sh DESCRIPTION +The +.Fn extattr_namespace_to_string +function converts a VFS extended attribute identifier to a human-readable +string; +the +.Fn extattr_string_to_namespace +function undoes the aforementioned operation, +and converts a human-readable string representing a namespace to a +namespace identifier. +Although a file system may implement arbitrary namespaces, +these functions only support the +.Dv EXTATTR_NAMESPACE_USER +.Pq Dq user +and +.Dv EXTATTR_NAMESPACE_SYSTEM +.Pq Dq system +namespaces, +which are defined in +.Xr extattr 9 . +.Pp +These functions are meant to be used in error reporting and other +interactive tasks. +For example, +instead of printing the integer identifying an extended attribute in +an error message, +a program might use +.Fn extattr_namespace_to_string +to obtain a human-readable representation. +Likewise, +instead of requiring a user to enter the integer representing a namespace, +an interactive program might ask for a name and use +.Fn extattr_string_to_namespace +to get the desired identifier. +.Sh RETURN VALUES +If any of the calls are unsuccessful, the value \-1 is returned +and the global variable +.Va errno +is set to indicate the error. +.Sh ERRORS +.Bl -tag -width Er +.It Bq Er EINVAL +The requested namespace could not be identified. +.El +.Sh SEE ALSO +.Xr extattr 2 , +.Xr getextattr 8 , +.Xr setextattr 8 , +.Xr extattr 9 +.Sh HISTORY +Extended attribute support was developed as part of the +.Tn TrustedBSD +Project, and introduced in +.Fx 5.0 . +It was developed to support security extensions requiring additional labels +to be associated with each file or directory. +This manual page was added to +.Nx 11.0 .