1*86d7f5d3SJohn Marino.\"- 2*86d7f5d3SJohn Marino.\" Copyright (c) 1999 Robert N. M. Watson 3*86d7f5d3SJohn Marino.\" All rights reserved. 4*86d7f5d3SJohn Marino.\" 5*86d7f5d3SJohn Marino.\" Redistribution and use in source and binary forms, with or without 6*86d7f5d3SJohn Marino.\" modification, are permitted provided that the following conditions 7*86d7f5d3SJohn Marino.\" are met: 8*86d7f5d3SJohn Marino.\" 1. Redistributions of source code must retain the above copyright 9*86d7f5d3SJohn Marino.\" notice, this list of conditions and the following disclaimer. 10*86d7f5d3SJohn Marino.\" 2. Redistributions in binary form must reproduce the above copyright 11*86d7f5d3SJohn Marino.\" notice, this list of conditions and the following disclaimer in the 12*86d7f5d3SJohn Marino.\" documentation and/or other materials provided with the distribution. 13*86d7f5d3SJohn Marino.\" 14*86d7f5d3SJohn Marino.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15*86d7f5d3SJohn Marino.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16*86d7f5d3SJohn Marino.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17*86d7f5d3SJohn Marino.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18*86d7f5d3SJohn Marino.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19*86d7f5d3SJohn Marino.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20*86d7f5d3SJohn Marino.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21*86d7f5d3SJohn Marino.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22*86d7f5d3SJohn Marino.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23*86d7f5d3SJohn Marino.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24*86d7f5d3SJohn Marino.\" SUCH DAMAGE. 25*86d7f5d3SJohn Marino.\" 26*86d7f5d3SJohn Marino.\" $FreeBSD: src/share/man/man9/VOP_GETEXTATTR.9,v 1.1.2.3 2001/12/17 11:30:18 ru Exp $ 27*86d7f5d3SJohn Marino.\" 28*86d7f5d3SJohn Marino.Dd December 23, 1999 29*86d7f5d3SJohn Marino.Dt VOP_GETEXTATTR 9 30*86d7f5d3SJohn Marino.Os 31*86d7f5d3SJohn Marino.Sh NAME 32*86d7f5d3SJohn Marino.Nm VOP_GETEXTATTR 33*86d7f5d3SJohn Marino.Nd retrieve named extended attribute from a vnode 34*86d7f5d3SJohn Marino.Sh SYNOPSIS 35*86d7f5d3SJohn Marino.In sys/param.h 36*86d7f5d3SJohn Marino.In sys/vnode.h 37*86d7f5d3SJohn Marino.In sys/extattr.h 38*86d7f5d3SJohn Marino.Ft int 39*86d7f5d3SJohn Marino.Fn VOP_GETEXTATTR "struct vnode *vp" "char *name" "struct uio *uio" "struct ucred *cred" "struct proc *p" 40*86d7f5d3SJohn Marino.Sh DESCRIPTION 41*86d7f5d3SJohn MarinoThis vnode call may be used to retrieve a specific named extended attribute 42*86d7f5d3SJohn Marinofrom a file or directory. 43*86d7f5d3SJohn Marino.Pp 44*86d7f5d3SJohn MarinoIts arguments are: 45*86d7f5d3SJohn Marino.Bl -tag -width type 46*86d7f5d3SJohn Marino.It Fa vp 47*86d7f5d3SJohn Marinothe vnode of the file or directory 48*86d7f5d3SJohn Marino.It Fa name 49*86d7f5d3SJohn Marinopointer to a null-terminated character string containing the attribute name 50*86d7f5d3SJohn Marino.It Fa uio 51*86d7f5d3SJohn Marinothe location of the data to be read or written 52*86d7f5d3SJohn Marino.It Fa cred 53*86d7f5d3SJohn Marinothe user credentials to use in authorizing the request 54*86d7f5d3SJohn Marino.It Fa p 55*86d7f5d3SJohn Marinothe process requesting the extended attribute 56*86d7f5d3SJohn Marino.El 57*86d7f5d3SJohn Marino.Pp 58*86d7f5d3SJohn MarinoThe 59*86d7f5d3SJohn Marino.Fa cred 60*86d7f5d3SJohn Marinopointer may be 61*86d7f5d3SJohn Marino.Dv NULL 62*86d7f5d3SJohn Marinoto indicate that access control checks are not to be performed, if possible. 63*86d7f5d3SJohn MarinoThis 64*86d7f5d3SJohn Marino.Fa cred 65*86d7f5d3SJohn Marinosetting might be used to allow the kernel to authorize extended attribute 66*86d7f5d3SJohn Marinoretrieval that the active process might not be permitted to do. 67*86d7f5d3SJohn Marino.Pp 68*86d7f5d3SJohn MarinoExtended attribute semantics may vary by file system implementing the call. 69*86d7f5d3SJohn MarinoMore information on extended attributes may be found in 70*86d7f5d3SJohn Marino.Xr extattr 9 . 71*86d7f5d3SJohn Marino.Sh LOCKS 72*86d7f5d3SJohn MarinoNo locks are required to call this vnode method, and any locks held on 73*86d7f5d3SJohn Marinoentry will be held on exit. 74*86d7f5d3SJohn Marino.Sh RETURN VALUES 75*86d7f5d3SJohn MarinoOn success, zero will be returned, and the uio structure will be updated to 76*86d7f5d3SJohn Marinoreflect data read. Otherwise, an appropriate error code is returned. 77*86d7f5d3SJohn Marino.Sh ERRORS 78*86d7f5d3SJohn Marino.Bl -tag -width Er 79*86d7f5d3SJohn Marino.It Bq Er ENOENT 80*86d7f5d3SJohn MarinoThe attribute name is not defined for this vnode 81*86d7f5d3SJohn Marino.It Bq Er EACCES 82*86d7f5d3SJohn MarinoPermission denied 83*86d7f5d3SJohn Marino.It Bq Er ENXIO 84*86d7f5d3SJohn MarinoThe request was not valid in this file system for the specified vnode and 85*86d7f5d3SJohn Marinoattribute name. 86*86d7f5d3SJohn Marino.It Bq Er ENOMEM 87*86d7f5d3SJohn MarinoInsufficient memory available to fulfill request 88*86d7f5d3SJohn Marino.It Bq Er EFAULT 89*86d7f5d3SJohn MarinoThe uio structure refers to an invalid userspace address. 90*86d7f5d3SJohn Marino.It Bq Er EINVAL 91*86d7f5d3SJohn MarinoThe 92*86d7f5d3SJohn Marino.Fa name 93*86d7f5d3SJohn Marinoor 94*86d7f5d3SJohn Marino.Fa uio 95*86d7f5d3SJohn Marinoargument is invalid. 96*86d7f5d3SJohn Marino.It Bq Er EOPNOTSUPP 97*86d7f5d3SJohn MarinoThe file system does not support 98*86d7f5d3SJohn Marino.Fn VOP_GETEXTATTR 99*86d7f5d3SJohn Marino.El 100*86d7f5d3SJohn Marino.Sh SEE ALSO 101*86d7f5d3SJohn Marino.Xr extattr 9 , 102*86d7f5d3SJohn Marino.Xr vnode 9 , 103*86d7f5d3SJohn Marino.Xr VOP_SETEXTATTR 9 104