]> git.saurik.com Git - apple/xnu.git/blame - bsd/man/man2/nfssvc.2
xnu-4903.270.47.tar.gz
[apple/xnu.git] / bsd / man / man2 / nfssvc.2
CommitLineData
2d21ac55
A
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.\"
9bccf70c
A
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.\"
2d21ac55 58.Dd January 9, 2007
9bccf70c
A
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
2d21ac55 72function is used by the NFS server daemon to pass information into and out
9bccf70c
A
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
2d21ac55 79points to any corresponding data that the action may require.
9bccf70c 80.Pp
9bccf70c
A
81.Fn nfssvc
82is called with the flag
83.Dv NFSSVC_NFSD
2d21ac55
A
84and a NULL
85.Fa argstructp
9bccf70c
A
86to enter the kernel as an
87.Xr nfsd 8
2d21ac55 88daemon. The
9bccf70c 89.Dv NFSSVC_NFSD
2d21ac55 90action normally does not return until the NFS server is stopped.
9bccf70c 91.Pp
2d21ac55 92The
9bccf70c
A
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.
2d21ac55
A
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.
9bccf70c 133.Sh RETURN VALUES
2d21ac55
A
134Upon successful completion, a value of 0 is returned. Otherwise, -1 is
135returned the global variable
9bccf70c
A
136.Va errno
137is set to specify the error.
2d21ac55 138.Pp
9bccf70c
A
139.Sh ERRORS
140.Bl -tag -width Er
9bccf70c
A
141.It Bq Er EPERM
142The caller is not the super-user.
2d21ac55
A
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.
9bccf70c
A
156.El
157.Sh SEE ALSO
2d21ac55 158.Xr nfsd 8
9bccf70c
A
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
2d21ac55
A
168server daemons and as such is specific to their requirements. Several
169fields of the argument structures are assumed to be valid, such that
9bccf70c
A
170.Nm nfssvc
171must be used with extreme care.