]> git.saurik.com Git - apple/xnu.git/blame_incremental - bsd/man/man2/nfssvc.2
xnu-1228.7.58.tar.gz
[apple/xnu.git] / bsd / man / man2 / nfssvc.2
... / ...
CommitLineData
1.\"
2.\" Copyright (c) 1999-2007 Apple Inc. All rights reserved.
3.\"
4.\" @APPLE_LICENSE_HEADER_START@
5.\"
6.\" This file contains Original Code and/or Modifications of Original Code
7.\" as defined in and that are subject to the Apple Public Source License
8.\" Version 2.0 (the 'License'). You may not use this file except in
9.\" compliance with the License. Please obtain a copy of the License at
10.\" http://www.opensource.apple.com/apsl/ and read it before using this
11.\" file.
12.\"
13.\" The Original Code and all software distributed under the License are
14.\" distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15.\" EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16.\" INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17.\" FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18.\" Please see the License for the specific language governing rights and
19.\" limitations under the License.
20.\"
21.\" @APPLE_LICENSE_HEADER_END@
22.\"
23.\" $NetBSD: nfssvc.2,v 1.6 1995/02/27 12:35:08 cgd Exp $
24.\"
25.\" Copyright (c) 1989, 1991, 1993
26.\" The Regents of the University of California. All rights reserved.
27.\"
28.\" Redistribution and use in source and binary forms, with or without
29.\" modification, are permitted provided that the following conditions
30.\" are met:
31.\" 1. Redistributions of source code must retain the above copyright
32.\" notice, this list of conditions and the following disclaimer.
33.\" 2. Redistributions in binary form must reproduce the above copyright
34.\" notice, this list of conditions and the following disclaimer in the
35.\" documentation and/or other materials provided with the distribution.
36.\" 3. All advertising materials mentioning features or use of this software
37.\" must display the following acknowledgement:
38.\" This product includes software developed by the University of
39.\" California, Berkeley and its contributors.
40.\" 4. Neither the name of the University nor the names of its contributors
41.\" may be used to endorse or promote products derived from this software
42.\" without specific prior written permission.
43.\"
44.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
45.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
46.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
47.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
48.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
49.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
50.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
51.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
52.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
53.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
54.\" SUCH DAMAGE.
55.\"
56.\" @(#)nfssvc.2 8.1 (Berkeley) 6/9/93
57.\"
58.Dd January 9, 2007
59.Dt NFSSVC 2
60.Os
61.Sh NAME
62.Nm nfssvc
63.Nd NFS services
64.Sh SYNOPSIS
65.Fd #include <unistd.h>
66.Fd #include <nfs/nfs.h>
67.Ft int
68.Fn nfssvc "int flags" "void *argstructp"
69.Sh DESCRIPTION
70The
71.Fn nfssvc
72function is used by the NFS server daemon to pass information into and out
73of the kernel and also to enter the kernel as a server daemon.
74The
75.Fa flags
76argument consists of several bits that show what action is to be taken
77once in the kernel and the
78.Fa argstructp
79points to any corresponding data that the action may require.
80.Pp
81.Fn nfssvc
82is called with the flag
83.Dv NFSSVC_NFSD
84and a NULL
85.Fa argstructp
86to enter the kernel as an
87.Xr nfsd 8
88daemon. The
89.Dv NFSSVC_NFSD
90action normally does not return until the NFS server is stopped.
91.Pp
92The
93.Xr nfsd 8
94server daemon calls
95.Fn nfssvc
96with the flag
97.Dv NFSSVC_ADDSOCK
98and a pointer to a
99.Bd -literal
100struct nfsd_args {
101 int sock; /* Socket to serve */
102 caddr_t name; /* Client address for connection based sockets */
103 int namelen; /* Length of name */
104};
105.Ed
106.sp
107to pass a server side
108.Tn NFS
109socket into the kernel for servicing by the
110.Xr nfsd 8
111daemons.
112.Pp
113The
114.Xr nfsd 8
115server daemon calls
116.Fn nfssvc
117with the flag
118.Dv NFSSVC_EXPORT
119and a pointer to a
120.Bd -literal
121struct nfs_export_args {
122 uint32_t nxa_fsid; /* export FS ID */
123 uint32_t nxa_expid; /* export ID */
124 char *nxa_fspath; /* export FS path */
125 char *nxa_exppath; /* export sub-path */
126 uint32_t nxa_flags; /* export arg flags */
127 uint32_t nxa_netcount; /* #entries in ex_nets array */
128 struct nfs_export_net_args *nxa_nets; /* array of net args */
129};
130.Ed
131.sp
132to pass exported file system information into the kernel.
133.Sh RETURN VALUES
134Upon successful completion, a value of 0 is returned. Otherwise, -1 is
135returned the global variable
136.Va errno
137is set to specify the error.
138.Pp
139.Sh ERRORS
140.Bl -tag -width Er
141.It Bq Er EPERM
142The caller is not the super-user.
143.It Bq Er EINVAL
144The action specified by the
145.Fa flags
146argument was not valid.
147.It Bq EFAULT
148.Fa argstructp
149points to an invalid address.
150.It Bq ENOMEM
151A memory allocation failure prevented the action from completing.
152.It Bq EEXIST
153An attempt was made to add a UDP socket via the
154.Dv NFSSVC_ADDSOCK
155action, but the UDP socket has already been added.
156.El
157.Sh SEE ALSO
158.Xr nfsd 8
159.Sh HISTORY
160The
161.Nm nfssvc
162function first appeared in 4.4BSD.
163.Sh BUGS
164The
165.Nm nfssvc
166system call is designed specifically for the
167.Tn NFS
168server daemons and as such is specific to their requirements. Several
169fields of the argument structures are assumed to be valid, such that
170.Nm nfssvc
171must be used with extreme care.