xref: /dflybsd-src/share/man/man9/VOP_GETEXTATTR.9 (revision 86d7f5d305c6adaa56ff4582ece9859d73106103)
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