summaryrefslogtreecommitdiffstats
path: root/lib/libautofs/libautofs.3
diff options
context:
space:
mode:
authoralfred <alfred@FreeBSD.org>2004-08-31 16:26:01 +0000
committeralfred <alfred@FreeBSD.org>2004-08-31 16:26:01 +0000
commite39e879ede3eb48cca848118af6f9fb6435c7241 (patch)
tree9b36a14c0b5776cc37fcd05bce3ca649ad5374ea /lib/libautofs/libautofs.3
parent07c612deeed1a0a85162274839c59b67c9aa472a (diff)
downloadFreeBSD-src-e39e879ede3eb48cca848118af6f9fb6435c7241.zip
FreeBSD-src-e39e879ede3eb48cca848118af6f9fb6435c7241.tar.gz
Enter the autofs.
Diffstat (limited to 'lib/libautofs/libautofs.3')
-rw-r--r--lib/libautofs/libautofs.3238
1 files changed, 238 insertions, 0 deletions
diff --git a/lib/libautofs/libautofs.3 b/lib/libautofs/libautofs.3
new file mode 100644
index 0000000..2875c06
--- /dev/null
+++ b/lib/libautofs/libautofs.3
@@ -0,0 +1,238 @@
+.\" Copyright (c) 2004 Alfred Perlstein <alfred@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.
+.\"
+.\" $Id: libautofs.3,v 1.3 2004/08/31 15:58:40 bright Exp $
+.\" $FreeBSD$
+.Dd August 30, 2004
+.Dt LIBAUTOFS 3
+.Os
+.Sh NAME
+.Nm libautofs
+.Nd "procedural interface to managing an autofs filesystem"
+.Sh SYNOPSIS
+.In libautofs.h
+.Ft int
+.Fn autoh_get "const char *path" "autoh_t *hndlp"
+.Ft void
+.Fn autoh_free "autoh_t hndl"
+.Ft int
+.Fn autoh_getall "autoh_t **hndlpp" "int *cnt"
+.Ft void
+.Fn autoh_freeall "autoh_t *hndlep"
+.Ft int
+.Fn autoh_fd "autoh_t hndl"
+.Ft const char *
+.Fn autoh_mp "autoh_t hndl"
+.Ft int
+.Fn autoreq_get "autoh_t hndl" "autoreq_t **reqpp" "int *cntp"
+.Ft void
+.Fn autoreq_free "autoh_t hndl" "autoreq_t *reqp"
+.Ft int
+.Fn autoreq_serv "autoh_t hndl" "autoreq_t req"
+.Ft enum autoreq_op
+.Fn autoreq_getop "autoreq_t req"
+.Ft const char *
+.Fn autoreq_getpath "autoreq_t req"
+.Ft autoino_t
+.Fn autoreq_getino "autoreq_t req"
+.Ft autoino_t
+.Fn autoreq_getdirino "autoreq_t req"
+.Ft void
+.Fn autoreq_getaux "autoreq_t req" "void **auxdatap" "size_t *auxsizep"
+.Ft void
+.Fn autoreq_getoffset "autoreq_t req" "off_t *offp"
+.Ft void
+.Fn autoreq_setino "autoreq_t req" "autoino_t ino"
+.Ft void
+.Fn autoreq_seterrno "autoreq_t req" "int errno"
+.Ft void
+.Fn autoreq_setaux "autoreq_t req" "void *auxdata" "size_t auxsize"
+.Ft void
+.Fn autoreq_seteof "autoreq_t req" "int eof"
+.Ft int
+.Fn autoh_togglepath "autoh_t hndl" "int toggle" "pid_t pid" "const char *path"
+.Ft int
+.Fn autoh_togglefd "autoh_t hndl" "int toggle" "pid_t pid" "int fd"
+.Sh DESCRIPTION
+The
+.Nm libautofs
+libarary provides a "mostly" stable interface to the
+.Xr autofs 9
+filesystem.
+.Pp
+The inteface to
+.Xr autofs 9
+is managed via handles of type
+.Fa autoh_t
+and
+.Fa autoreq_t
+which refer to handles to
+.Xr autofs 9
+mount points and requests respectively.
+.Pp
+The
+.Fn autoh_get
+function returns a handle to an
+.Xr autofs 9
+filesystem based on the
+.Fn path
+parameter.
+The handle returned should be freed via the
+.Fn autoh_free
+function.
+.Pp
+The
+.Fn autoh_getall
+function returns an array of handles to all mounted
+.Xr autofs 9
+filesystems, each of which should be released via the
+.Fn autoh_free
+function or released en-mass via the
+.Fn autoh_freeall
+function.
+.Pp
+The
+.Fn autoh_fd
+function returns a file descriptor that can selected or polled on
+for "excecption" data to detect an
+.Xr autofs 9
+event.
+.Pp
+The
+.Fn autoh_mp
+function returns the path to the autofs filesystem that the
+.Fa hndl
+is derived from.
+.Pp
+The
+.Fn autoreq_get
+function returns an array of autofs requests in
+.Fa reqpp ,
+the number of requests is stored into
+.Fa cntp .
+Each request should be released using the
+.Fn autoreq_free
+function.
+.Pp
+Requests that are retrieved via the
+.Fn autoreq_get
+are served via the "autoreq_" functions.
+.Pp
+The following functions returns information about the request.
+.Bl -tag -width indent
+.It Fn autoreq_getop
+return the operation type of the request, that would be one of
+AUTOREQ_OP_UNKNOWN, AUTOREQ_OP_LOOKUP, AUTOREQ_OP_STAT, AUTOREQ_OP_READDIR
+depending on the type of request that
+.Xr autofs 9
+requires service from.
+.It Fn autoreq_getpath
+return the path of the mountpoint associated with the request
+.Fa req .
+.It Fn autoreq_getino
+return the inode associated with the request
+.Fa req .
+.It Fn autoreq_getdirno
+return the directory inode associated with the request
+.Fa req .
+.It Fn autoreq_getaux
+return the auxilliray data associated with the request
+.Fa req .
+.It Fn autoreq_getoffset
+return the offset request associated with the request
+.Fa req .
+(used for readdir request)
+.El
+.Pp
+The following functions allow one to set the response sent to
+.Xr autofs 9
+to the requesting userland application.
+.Bl -tag -width indent
+.It Fn autoreq_setino
+Set the request
+.Fa req
+inode to
+.Fa ino ,
+this is typically unused.
+.It Fn autoreq_seterrno
+set the error returned to the application sending the request, typically
+this is left alone, or set to ENOENT if the request is for a non-existant
+name. The default error is no error. Meaning the application will see
+a successful return.
+.It Fn autoreq_setaux
+used to set the auxilliray data for a request, currently used to set
+the dirent structures for serving a readdir request. Default is no
+auxilliary data.
+.It Fn autoreq_seteof
+used to set the eof flag for readdir requests (default is not eof.)
+.El
+.Pp
+The functions
+.Fn autoh_togglepath
+and
+.Fn autoh_togglefd
+are used to set options on an
+.Xr autofs 9
+directory via
+.Fa path
+and
+.Fa fd
+respectively. The
+.Fa pid
+argument should be set to the pid of the process serving
+.Xr autofs 9
+requests, or -1 to disable the option. The options are
+.Bl -tag -width AUTO_INDIRECT
+.It Fa AUTO_MOUNTER
+set this process as the one responsible for the
+.Xr autofs 9
+node, if this process exits, then requests into the autofs will begin to fail.
+.It Fa AUTO_BROWSE
+dispatch directory read requests for this node to the process identified by
+.Fa pid .
+Specifically, calls to
+.Xr getdirentries 2
+and
+.Xr getdents 2
+will be routed to userland after the current actual directory contents
+are read into userland.
+.It Fa AUTO_DIRECT
+Set the directory as a mount trigger. Any request to enter the directory
+will trigger a callback into the process
+.Fa pid .
+.It Fa AUTO_INDIRECT
+Set the directory as an indirect trigger. Any request for an entry inside
+the directory will be routed to the process identified by
+.Fa pid .
+.El
+.Sh EXAMPLES
+See /usr/share/examples/autofs/driver/
+.Sh HISTORY
+The
+.Nm
+utility first appeared in
+.Fx 6.0 .
+.Sh AUTHORS
+This manual page and the autofs filesystem suite were written by
+.An Alfred Perlstein .
OpenPOWER on IntegriCloud