2 .\" Copyright (c) 1999-2007 Apple Inc. All rights reserved.
4 .\" @APPLE_LICENSE_HEADER_START@
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
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.
21 .\" @APPLE_LICENSE_HEADER_END@
23 .\" $NetBSD: nfssvc.2,v 1.6 1995/02/27 12:35:08 cgd Exp $
25 .\" Copyright (c) 1989, 1991, 1993
26 .\" The Regents of the University of California. All rights reserved.
28 .\" Redistribution and use in source and binary forms, with or without
29 .\" modification, are permitted provided that the following conditions
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.
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
56 .\" @(#)nfssvc.2 8.1 (Berkeley) 6/9/93
65 .Fd #include <unistd.h>
66 .Fd #include <nfs/nfs.h>
68 .Fn nfssvc "int flags" "void *argstructp"
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.
76 argument consists of several bits that show what action is to be taken
77 once in the kernel and the
79 points to any corresponding data that the action may require.
82 is called with the flag
86 to enter the kernel as an
90 action normally does not return until the NFS server is stopped.
101 int sock; /* Socket to serve */
102 caddr_t name; /* Client address for connection based sockets */
103 int namelen; /* Length of name */
107 to pass a server side
109 socket into the kernel for servicing by the
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 */
132 to pass exported file system information into the kernel.
134 Upon successful completion, a value of 0 is returned. Otherwise, -1 is
135 returned the global variable
137 is set to specify the error.
142 The caller is not the super-user.
144 The action specified by the
146 argument was not valid.
149 points to an invalid address.
151 A memory allocation failure prevented the action from completing.
153 An attempt was made to add a UDP socket via the
155 action, but the UDP socket has already been added.
162 function first appeared in 4.4BSD.
166 system call is designed specifically for the
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
171 must be used with extreme care.