NFSSVC(2) | System Calls Manual | NFSSVC(2) |
nfssvc
— NFS
services
#include
<unistd.h>
#include <nfs/nfs.h>
int
nfssvc
(int
flags, void
*argstructp);
The
nfssvc
()
function is used by the NFS server daemon to pass information into and out
of the kernel and also to enter the kernel as a server daemon. The
flags argument consists of several bits that show what
action is to be taken once in the kernel and the
argstructp points to any corresponding data that the
action may require.
nfssvc
()
is called with the flag NFSSVC_NFSD
and a NULL
argstructp to enter the kernel as an
nfsd(8) daemon. The NFSSVC_NFSD
action normally does not return until the NFS server is stopped.
The nfsd(8) server daemon calls
nfssvc
()
with the flag NFSSVC_ADDSOCK
and a pointer to a
struct nfsd_args { int sock; /* Socket to serve */ caddr_t name; /* Client address for connection based sockets */ int namelen; /* Length of name */ };
to pass a server side NFS socket into the kernel for servicing by the nfsd(8) daemons.
The nfsd(8) server daemon calls
nfssvc
()
with the flag NFSSVC_EXPORT
and a pointer to a
struct nfs_export_args { uint32_t nxa_fsid; /* export FS ID */ uint32_t nxa_expid; /* export ID */ char *nxa_fspath; /* export FS path */ char *nxa_exppath; /* export sub-path */ uint32_t nxa_flags; /* export arg flags */ uint32_t nxa_netcount; /* #entries in ex_nets array */ struct nfs_export_net_args *nxa_nets; /* array of net args */ };
to pass exported file system information into the kernel.
Additionally, the
nfssvc
()
is used by nfsstat(1) tool to receive statistic about the server from
kernel. While used, argstructp points to
struct iovec of size 2. The first
iovec entry specifies the base address and length of
an area in memory from which data should be written. The size of the
available data will be returned in the location pointed by the second
iovec entry. The following flags are supported :
NFSSVC_EXPORTSTATS
NFSSVC_USERSTATS
NFSSVC_USERCOUNT
NFSSVC_ZEROSTATS
NFSSVC_SRVSTATS
Upon successful completion, a value of 0 is returned. Otherwise, -1 is returned the global variable errno is set to specify the error.
EPERM
]EINVAL
]NFSSVC_ADDSOCK
action, but the UDP socket has
already been added.The nfssvc
function first appeared in
4.4BSD.
The nfssvc
system call is designed
specifically for the NFS server daemons and as such is specific to their
requirements. Several fields of the argument structures are assumed to be
valid, such that nfssvc
must be used with extreme
care.
January 9, 2007 | Mac OS X 12 |