d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff * CDDL HEADER START
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff * The contents of this file are subject to the terms of the
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff * Common Development and Distribution License, Version 1.0 only
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff * (the "License"). You may not use this file except in compliance
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff * with the License.
8cf870d281dc8c242f083d14dfef05f24aa5fceeJnRouvignac * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff * See the License for the specific language governing permissions
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff * and limitations under the License.
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff * When distributing Covered Code, include this CDDL HEADER in each
8cf870d281dc8c242f083d14dfef05f24aa5fceeJnRouvignac * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8cf870d281dc8c242f083d14dfef05f24aa5fceeJnRouvignac * If applicable, add the following below this CDDL HEADER, with the
8cf870d281dc8c242f083d14dfef05f24aa5fceeJnRouvignac * fields enclosed by brackets "[]" replaced with your own identifying
8cf870d281dc8c242f083d14dfef05f24aa5fceeJnRouvignac * information: Portions Copyright [yyyy] [name of copyright owner]
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff * CDDL HEADER END
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
367fce55726cb32895b048f052eb323e9e8ef3d1jvergara * Use is subject to license terms.
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff%#pragma ident "%Z%%M% %I% %E% SMI"
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff% * Definitions for uint64, int64, uint32, and int32
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduffconst NFS_FIFO_DEV = -1; /* size kludge for named pipes */
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff * File types
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff * Error status
9826be98262b6a91cfbe1eee4de88c78789d9e8dcjr * File types
9826be98262b6a91cfbe1eee4de88c78789d9e8dcjr * File access handle
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff * File attributes
d4b762b3d1ead61775b43f61914fb077dc2dbe6fJnRouvignac * File attributes which can be set
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff * Reply status with file attributes
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff * Arguments for directory operations
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff filename name; /* name (up to NFS_MAXNAMLEN bytes) */
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff * Results from directory operation
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff * Arguments to remote read
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff unsigned totalcount; /* total read count (from this offset)*/
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff * Status OK portion of remote read reply
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff * Arguments to remote write
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff unsigned beginoffset; /* beginning byte offset in file */
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff unsigned totalcount; /* total write count (to this offset)*/
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff * Arguments to readdir
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff unsigned count; /* number of directory bytes to read */
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff unsigned tsize; /* preferred transfer size in bytes */
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff unsigned bsize; /* fundamental file system block size */
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff unsigned bavail; /* free blocks avail to non-superuser */
d25372dc8e65a9ed019a88fdf659ca61313f1b31jcduff * Remote file service routines
enum nfsstat3 {
NFS3_OK = 0,
enum ftype3 {
struct specdata3 {
struct nfs_fh3 {
struct nfstime3 {
struct fattr3 {
case TRUE:
case FALSE:
struct wcc_attr {
case TRUE:
case FALSE:
struct wcc_data {
case TRUE:
case FALSE:
enum time_how {
DONT_CHANGE = 0,
case TRUE:
case TRUE:
case TRUE:
case TRUE:
case SET_TO_CLIENT_TIME:
case SET_TO_CLIENT_TIME:
struct sattr3 {
struct diropargs3 {
struct GETATTR3args {
struct GETATTR3resok {
case NFS3_OK:
case TRUE:
case FALSE:
struct SETATTR3args {
struct SETATTR3resok {
struct SETATTR3resfail {
case NFS3_OK:
struct LOOKUP3args {
struct LOOKUP3resok {
struct LOOKUP3resfail {
case NFS3_OK:
struct ACCESS3args {
struct ACCESS3resok {
struct ACCESS3resfail {
case NFS3_OK:
struct READLINK3args {
struct READLINK3resok {
struct READLINK3resfail {
case NFS3_OK:
struct READ3args {
struct READ3resok {
bool eof;
struct READ3resfail {
case NFS3_OK:
enum stable_how {
UNSTABLE = 0,
struct WRITE3args {
struct WRITE3resok {
struct WRITE3resfail {
case NFS3_OK:
enum createmode3 {
UNCHECKED = 0,
case UNCHECKED:
case GUARDED:
case EXCLUSIVE:
struct CREATE3args {
struct CREATE3resok {
struct CREATE3resfail {
case NFS3_OK:
struct MKDIR3args {
struct MKDIR3resok {
struct MKDIR3resfail {
case NFS3_OK:
struct symlinkdata3 {
struct SYMLINK3args {
struct SYMLINK3resok {
struct SYMLINK3resfail {
case NFS3_OK:
struct devicedata3 {
case NF3CHR:
case NF3BLK:
case NF3SOCK:
case NF3FIFO:
struct MKNOD3args {
struct MKNOD3resok {
struct MKNOD3resfail {
case NFS3_OK:
struct REMOVE3args {
struct REMOVE3resok {
struct REMOVE3resfail {
case NFS3_OK:
struct RMDIR3args {
struct RMDIR3resok {
struct RMDIR3resfail {
case NFS3_OK:
struct RENAME3args {
struct RENAME3resok {
struct RENAME3resfail {
case NFS3_OK:
struct LINK3args {
struct LINK3resok {
struct LINK3resfail {
case NFS3_OK:
struct READDIR3args {
struct entry3 {
struct dirlist3 {
bool eof;
struct READDIR3resok {
struct READDIR3resfail {
case NFS3_OK:
struct READDIRPLUS3args {
struct entryplus3 {
struct dirlistplus3 {
bool eof;
struct READDIRPLUS3resok {
struct READDIRPLUS3resfail {
case NFS3_OK:
struct FSSTAT3args {
struct FSSTAT3resok {
struct FSSTAT3resfail {
case NFS3_OK:
struct FSINFO3args {
struct FSINFO3resok {
struct FSINFO3resfail {
case NFS3_OK:
struct PATHCONF3args {
struct PATHCONF3resok {
bool no_trunc;
bool chown_restricted;
bool case_insensitive;
bool case_preserving;
struct PATHCONF3resfail {
case NFS3_OK:
struct COMMIT3args {
struct COMMIT3resok {
struct COMMIT3resfail {
case NFS3_OK:
NFSPROC3_NULL(void) = 0;