]> git.saurik.com Git - apple/xnu.git/blob - bsd/man/man2/nfssvc.2
xnu-1228.15.4.tar.gz
[apple/xnu.git] / bsd / man / man2 / nfssvc.2
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
70 The
71 .Fn nfssvc
72 function is used by the NFS server daemon to pass information into and out
73 of the kernel and also to enter the kernel as a server daemon.
74 The
75 .Fa flags
76 argument consists of several bits that show what action is to be taken
77 once in the kernel and the
78 .Fa argstructp
79 points to any corresponding data that the action may require.
80 .Pp
81 .Fn nfssvc
82 is called with the flag
83 .Dv NFSSVC_NFSD
84 and a NULL
85 .Fa argstructp
86 to enter the kernel as an
87 .Xr nfsd 8
88 daemon. The
89 .Dv NFSSVC_NFSD
90 action normally does not return until the NFS server is stopped.
91 .Pp
92 The
93 .Xr nfsd 8
94 server daemon calls
95 .Fn nfssvc
96 with the flag
97 .Dv NFSSVC_ADDSOCK
98 and a pointer to a
99 .Bd -literal
100 struct 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
107 to pass a server side
108 .Tn NFS
109 socket into the kernel for servicing by the
110 .Xr nfsd 8
111 daemons.
112 .Pp
113 The
114 .Xr nfsd 8
115 server daemon calls
116 .Fn nfssvc
117 with the flag
118 .Dv NFSSVC_EXPORT
119 and a pointer to a
120 .Bd -literal
121 struct 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
132 to pass exported file system information into the kernel.
133 .Sh RETURN VALUES
134 Upon successful completion, a value of 0 is returned. Otherwise, -1 is
135 returned the global variable
136 .Va errno
137 is set to specify the error.
138 .Pp
139 .Sh ERRORS
140 .Bl -tag -width Er
141 .It Bq Er EPERM
142 The caller is not the super-user.
143 .It Bq Er EINVAL
144 The action specified by the
145 .Fa flags
146 argument was not valid.
147 .It Bq EFAULT
148 .Fa argstructp
149 points to an invalid address.
150 .It Bq ENOMEM
151 A memory allocation failure prevented the action from completing.
152 .It Bq EEXIST
153 An attempt was made to add a UDP socket via the
154 .Dv NFSSVC_ADDSOCK
155 action, but the UDP socket has already been added.
156 .El
157 .Sh SEE ALSO
158 .Xr nfsd 8
159 .Sh HISTORY
160 The
161 .Nm nfssvc
162 function first appeared in 4.4BSD.
163 .Sh BUGS
164 The
165 .Nm nfssvc
166 system call is designed specifically for the
167 .Tn NFS
168 server daemons and as such is specific to their requirements. Several
169 fields of the argument structures are assumed to be valid, such that
170 .Nm nfssvc
171 must be used with extreme care.