diff options
Diffstat (limited to 'share/man/man9/VOP_READDIR.9')
-rw-r--r-- | share/man/man9/VOP_READDIR.9 | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/share/man/man9/VOP_READDIR.9 b/share/man/man9/VOP_READDIR.9 new file mode 100644 index 0000000..bac1f3f --- /dev/null +++ b/share/man/man9/VOP_READDIR.9 @@ -0,0 +1,108 @@ +.\" -*- nroff -*- +.\" +.\" Copyright (c) 1996 Doug Rabson +.\" +.\" All rights reserved. +.\" +.\" This program is free software. +.\" +.\" 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 DEVELOPERS ``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 DEVELOPERS 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. +.\" +.\" $FreeBSD$ +.\" +.Dd July 24, 1996 +.Dt VOP_READDIR 9 +.Os +.Sh NAME +.Nm VOP_READDIR +.Nd read contents of a directory +.Sh SYNOPSIS +.In sys/param.h +.In sys/dirent.h +.In sys/vnode.h +.Ft int +.Fn VOP_READDIR "struct vnode *vp" "struct uio *uio" "struct ucred *cred" "int *eofflag" "int *ncookies" "u_long **cookies" +.Sh DESCRIPTION +Read directory entries. +.Bl -tag -width ncookies +.It Fa vp +The vnode of the directory. +.It Fa uio +Where to read the directory contents. +.It Fa cred +The caller's credentials. +.It Fa eofflag +Return end of file status +.Dv ( NULL +if not wanted). +.It Fa ncookies +Number of directory cookies generated for NFS +.Dv ( NULL +if not wanted). +.It Fa cookies +Directory seek cookies generated for NFS +.Dv ( NULL +if not wanted). +.El +The directory contents are read into +.Vt struct dirent +structures. +If the on-disc data structures differ from this then they +should be translated. +.Sh LOCKS +The directory should be locked on entry and will still be locked on exit. +.Sh RETURN VALUES +Zero is returned on success, otherwise an error code is returned. +.Pp +If this is called from the NFS server, the extra arguments +.Fa eofflag , +.Fa ncookies +and +.Fa cookies +are given. +The value of +.Fa *eofflag +should be set to TRUE if the end of the directory is reached while +reading. +The directory seek cookies are returned to the NFS client and may be used +later to restart a directory read part way through the directory. +There should be one cookie returned per directory entry. +The value of +the cookie should be the offset within the directory where the on-disc +version of the appropriate directory entry starts. +Memory for the cookies should be allocated using: +.Bd -literal + ...; + *ncookies = number of entries read; + *cookies = malloc(*ncookies * sizeof(u_long), M_TEMP, M_WAITOK); +.Ed +.Sh ERRORS +.Bl -tag -width Er +.It Bq Er EINVAL +An attempt was made to read from an illegal offset in the directory. +.It Bq Er EIO +A read error occurred while reading the directory. +.El +.Sh SEE ALSO +.Xr vnode 9 +.Sh AUTHORS +This manual page was written by +.An Doug Rabson . |