usr/src/uts/common/nfs/nfs4_kprot.h
author robinson
Tue, 10 Jan 2006 08:52:24 -0800
changeset 1232 1a9b1651d839
parent 806 849fb015aa25
child 7387 0b3a92e31fd8
permissions -rw-r--r--
4799697 nfs messages could be more useful 6354997 File changes on NFSv4 servers take a long time to be detected 6355634 Client handling of CB_GETATTR fails to set bitmap
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     1
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     2
 * CDDL HEADER START
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     3
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     4
 * The contents of this file are subject to the terms of the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     5
 * Common Development and Distribution License, Version 1.0 only
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     6
 * (the "License").  You may not use this file except in compliance
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     7
 * with the License.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     8
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     9
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    10
 * or http://www.opensolaris.org/os/licensing.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    11
 * See the License for the specific language governing permissions
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    12
 * and limitations under the License.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    13
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    14
 * When distributing Covered Code, include this CDDL HEADER in each
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    15
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    16
 * If applicable, add the following below this CDDL HEADER, with the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    17
 * fields enclosed by brackets "[]" replaced with your own identifying
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    18
 * information: Portions Copyright [yyyy] [name of copyright owner]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    19
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    20
 * CDDL HEADER END
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    21
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    22
/*
1232
1a9b1651d839 4799697 nfs messages could be more useful
robinson
parents: 806
diff changeset
    23
 * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    24
 * Use is subject to license terms.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    25
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    26
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    27
#ifndef _NFS4_KPROT_H
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    28
#define	_NFS4_KPROT_H
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    29
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    30
#pragma ident	"%Z%%M%	%I%	%E% SMI"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    31
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    32
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    33
 * Kernel specific version.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    34
 * NFS Version 4 protocol definitions.  From nfs4_prot.x rev 1.119.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    35
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    36
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    37
#ifdef __cplusplus
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    38
extern "C" {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    39
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    40
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    41
#include <rpc/rpc.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    42
#include <sys/stream.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    43
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    44
#define	NFS4_FHSIZE 128
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    45
#define	NFS4_VERIFIER_SIZE 8
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    46
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    47
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    48
 * Reasonable upper bounds to catch badly behaving partners
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    49
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    50
#define	NFS4_OPAQUE_LIMIT	1024
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    51
#define	NFS4_COMPOUND_LIMIT	2048
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    52
#define	NFS4_FS_LOCATIONS_LIMIT	65536
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    53
#define	NFS4_ACL_LIMIT		65536
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    54
#define	NFS4_SECINFO_LIMIT	65536
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    55
#define	NFS4_FATTR4_LIMIT	1048576
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    56
#define	NFS4_DATA_LIMIT		134217728
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    57
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    58
enum nfs_ftype4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    59
	NF4REG = 1,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    60
	NF4DIR = 2,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    61
	NF4BLK = 3,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    62
	NF4CHR = 4,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    63
	NF4LNK = 5,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    64
	NF4SOCK = 6,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    65
	NF4FIFO = 7,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    66
	NF4ATTRDIR = 8,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    67
	NF4NAMEDATTR = 9
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    68
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    69
typedef enum nfs_ftype4 nfs_ftype4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    70
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    71
enum nfsstat4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    72
	NFS4_OK = 0,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    73
	NFS4ERR_PERM = 1,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    74
	NFS4ERR_NOENT = 2,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    75
	NFS4ERR_IO = 5,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    76
	NFS4ERR_NXIO = 6,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    77
	NFS4ERR_ACCESS = 13,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    78
	NFS4ERR_EXIST = 17,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    79
	NFS4ERR_XDEV = 18,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    80
	NFS4ERR_NOTDIR = 20,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    81
	NFS4ERR_ISDIR = 21,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    82
	NFS4ERR_INVAL = 22,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    83
	NFS4ERR_FBIG = 27,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    84
	NFS4ERR_NOSPC = 28,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    85
	NFS4ERR_ROFS = 30,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    86
	NFS4ERR_MLINK = 31,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    87
	NFS4ERR_NAMETOOLONG = 63,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    88
	NFS4ERR_NOTEMPTY = 66,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    89
	NFS4ERR_DQUOT = 69,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    90
	NFS4ERR_STALE = 70,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    91
	NFS4ERR_BADHANDLE = 10001,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    92
	NFS4ERR_BAD_COOKIE = 10003,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    93
	NFS4ERR_NOTSUPP = 10004,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    94
	NFS4ERR_TOOSMALL = 10005,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    95
	NFS4ERR_SERVERFAULT = 10006,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    96
	NFS4ERR_BADTYPE = 10007,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    97
	NFS4ERR_DELAY = 10008,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    98
	NFS4ERR_SAME = 10009,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    99
	NFS4ERR_DENIED = 10010,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   100
	NFS4ERR_EXPIRED = 10011,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   101
	NFS4ERR_LOCKED = 10012,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   102
	NFS4ERR_GRACE = 10013,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   103
	NFS4ERR_FHEXPIRED = 10014,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   104
	NFS4ERR_SHARE_DENIED = 10015,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   105
	NFS4ERR_WRONGSEC = 10016,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   106
	NFS4ERR_CLID_INUSE = 10017,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   107
	NFS4ERR_RESOURCE = 10018,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   108
	NFS4ERR_MOVED = 10019,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   109
	NFS4ERR_NOFILEHANDLE = 10020,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   110
	NFS4ERR_MINOR_VERS_MISMATCH = 10021,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   111
	NFS4ERR_STALE_CLIENTID = 10022,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   112
	NFS4ERR_STALE_STATEID = 10023,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   113
	NFS4ERR_OLD_STATEID = 10024,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   114
	NFS4ERR_BAD_STATEID = 10025,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   115
	NFS4ERR_BAD_SEQID = 10026,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   116
	NFS4ERR_NOT_SAME = 10027,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   117
	NFS4ERR_LOCK_RANGE = 10028,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   118
	NFS4ERR_SYMLINK = 10029,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   119
	NFS4ERR_RESTOREFH = 10030,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   120
	NFS4ERR_LEASE_MOVED = 10031,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   121
	NFS4ERR_ATTRNOTSUPP = 10032,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   122
	NFS4ERR_NO_GRACE = 10033,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   123
	NFS4ERR_RECLAIM_BAD = 10034,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   124
	NFS4ERR_RECLAIM_CONFLICT = 10035,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   125
	NFS4ERR_BADXDR = 10036,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   126
	NFS4ERR_LOCKS_HELD = 10037,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   127
	NFS4ERR_OPENMODE = 10038,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   128
	NFS4ERR_BADOWNER = 10039,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   129
	NFS4ERR_BADCHAR = 10040,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   130
	NFS4ERR_BADNAME = 10041,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   131
	NFS4ERR_BAD_RANGE = 10042,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   132
	NFS4ERR_LOCK_NOTSUPP = 10043,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   133
	NFS4ERR_OP_ILLEGAL = 10044,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   134
	NFS4ERR_DEADLOCK = 10045,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   135
	NFS4ERR_FILE_OPEN = 10046,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   136
	NFS4ERR_ADMIN_REVOKED = 10047,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   137
	NFS4ERR_CB_PATH_DOWN = 10048
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   138
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   139
typedef enum nfsstat4 nfsstat4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   140
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   141
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   142
 * A bitmap can only be 56 bits, treat it as a uint64_t for now
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   143
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   144
typedef uint64_t bitmap4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   145
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   146
typedef uint64_t offset4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   147
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   148
typedef uint32_t count4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   149
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   150
typedef uint64_t length4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   151
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   152
typedef uint64_t clientid4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   153
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   154
typedef uint32_t seqid4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   155
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   156
typedef struct {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   157
	uint_t utf8string_len;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   158
	char *utf8string_val;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   159
} utf8string;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   160
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   161
typedef utf8string component4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   162
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   163
typedef struct {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   164
	uint_t pathname4_len;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   165
	component4 *pathname4_val;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   166
} pathname4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   167
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   168
typedef uint64_t nfs_lockid4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   169
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   170
typedef uint64_t nfs_cookie4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   171
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   172
typedef utf8string linktext4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   173
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   174
typedef struct {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   175
	uint_t sec_oid4_len;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   176
	char *sec_oid4_val;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   177
} sec_oid4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   178
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   179
typedef uint32_t qop4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   180
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   181
typedef uint32_t mode4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   182
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   183
typedef uint64_t changeid4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   184
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   185
typedef uint64_t verifier4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   186
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   187
struct nfstime4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   188
	int64_t seconds;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   189
	uint32_t nseconds;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   190
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   191
typedef struct nfstime4 nfstime4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   192
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   193
enum time_how4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   194
	SET_TO_SERVER_TIME4 = 0,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   195
	SET_TO_CLIENT_TIME4 = 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   196
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   197
typedef enum time_how4 time_how4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   198
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   199
struct settime4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   200
	time_how4 set_it;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   201
	nfstime4 time;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   202
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   203
typedef struct settime4 settime4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   204
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   205
typedef struct {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   206
	uint_t nfs_fh4_len;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   207
	char *nfs_fh4_val;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   208
} nfs_fh4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   209
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   210
struct fsid4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   211
	uint64_t major;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   212
	uint64_t minor;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   213
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   214
typedef struct fsid4 fsid4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   215
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   216
struct fs_location4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   217
	uint_t server_len;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   218
	utf8string *server_val;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   219
	pathname4 rootpath;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   220
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   221
typedef struct fs_location4 fs_location4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   222
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   223
struct fs_locations4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   224
	pathname4 fs_root;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   225
	uint_t locations_len;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   226
	fs_location4 *locations_val;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   227
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   228
typedef struct fs_locations4 fs_locations4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   229
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   230
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   231
 * ACL support
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   232
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   233
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   234
#define	ACL4_SUPPORT_ALLOW_ACL 0x00000001
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   235
#define	ACL4_SUPPORT_DENY_ACL 0x00000002
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   236
#define	ACL4_SUPPORT_AUDIT_ACL 0x00000004
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   237
#define	ACL4_SUPPORT_ALARM_ACL 0x00000008
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   238
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   239
typedef uint32_t acetype4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   240
#define	ACE4_ACCESS_ALLOWED_ACE_TYPE 0x00000000
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   241
#define	ACE4_ACCESS_DENIED_ACE_TYPE 0x00000001
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   242
#define	ACE4_SYSTEM_AUDIT_ACE_TYPE 0x00000002
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   243
#define	ACE4_SYSTEM_ALARM_ACE_TYPE 0x00000003
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   244
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   245
typedef uint32_t aceflag4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   246
#define	ACE4_FILE_INHERIT_ACE 0x00000001
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   247
#define	ACE4_DIRECTORY_INHERIT_ACE 0x00000002
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   248
#define	ACE4_NO_PROPAGATE_INHERIT_ACE 0x00000004
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   249
#define	ACE4_INHERIT_ONLY_ACE 0x00000008
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   250
#define	ACE4_SUCCESSFUL_ACCESS_ACE_FLAG 0x00000010
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   251
#define	ACE4_FAILED_ACCESS_ACE_FLAG 0x00000020
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   252
#define	ACE4_IDENTIFIER_GROUP 0x00000040
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   253
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   254
 * This defines all valid flag bits, as defined by RFC 3530.  If
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   255
 * any additional flag bits are deemed part of the NFSv4 spec,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   256
 * you must also add them to the definition below.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   257
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   258
#define	ACE4_VALID_FLAG_BITS (\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   259
    ACE4_FILE_INHERIT_ACE | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   260
    ACE4_DIRECTORY_INHERIT_ACE | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   261
    ACE4_NO_PROPAGATE_INHERIT_ACE | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   262
    ACE4_INHERIT_ONLY_ACE | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   263
    ACE4_SUCCESSFUL_ACCESS_ACE_FLAG | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   264
    ACE4_FAILED_ACCESS_ACE_FLAG | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   265
    ACE4_IDENTIFIER_GROUP)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   266
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   267
typedef uint32_t acemask4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   268
#define	ACE4_READ_DATA 0x00000001
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   269
#define	ACE4_LIST_DIRECTORY 0x00000001
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   270
#define	ACE4_WRITE_DATA 0x00000002
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   271
#define	ACE4_ADD_FILE 0x00000002
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   272
#define	ACE4_APPEND_DATA 0x00000004
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   273
#define	ACE4_ADD_SUBDIRECTORY 0x00000004
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   274
#define	ACE4_READ_NAMED_ATTRS 0x00000008
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   275
#define	ACE4_WRITE_NAMED_ATTRS 0x00000010
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   276
#define	ACE4_EXECUTE 0x00000020
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   277
#define	ACE4_DELETE_CHILD 0x00000040
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   278
#define	ACE4_READ_ATTRIBUTES 0x00000080
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   279
#define	ACE4_WRITE_ATTRIBUTES 0x00000100
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   280
#define	ACE4_DELETE 0x00010000
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   281
#define	ACE4_READ_ACL 0x00020000
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   282
#define	ACE4_WRITE_ACL 0x00040000
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   283
#define	ACE4_WRITE_OWNER 0x00080000
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   284
#define	ACE4_SYNCHRONIZE 0x00100000
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   285
#define	ACE4_GENERIC_READ 0x00120081
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   286
#define	ACE4_GENERIC_WRITE 0x00160106
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   287
#define	ACE4_GENERIC_EXECUTE 0x001200A0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   288
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   289
 * This defines all valid access mask bits, as defined by RFC 3530.  If
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   290
 * any additional access mask bits are deemed part of the NFSv4 spec,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   291
 * you must also add them to the definition below.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   292
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   293
#define	ACE4_VALID_MASK_BITS (\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   294
    ACE4_READ_DATA | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   295
    ACE4_LIST_DIRECTORY | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   296
    ACE4_WRITE_DATA | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   297
    ACE4_ADD_FILE | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   298
    ACE4_APPEND_DATA | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   299
    ACE4_ADD_SUBDIRECTORY | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   300
    ACE4_READ_NAMED_ATTRS | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   301
    ACE4_WRITE_NAMED_ATTRS | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   302
    ACE4_EXECUTE | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   303
    ACE4_DELETE_CHILD | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   304
    ACE4_READ_ATTRIBUTES | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   305
    ACE4_WRITE_ATTRIBUTES | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   306
    ACE4_DELETE | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   307
    ACE4_READ_ACL | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   308
    ACE4_WRITE_ACL | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   309
    ACE4_WRITE_OWNER | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   310
    ACE4_SYNCHRONIZE)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   311
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   312
/* Used to signify an undefined value for an acemask4 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   313
#define	ACE4_MASK_UNDEFINED 0x80000000
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   314
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   315
#define	ACE4_WHO_OWNER		"OWNER@"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   316
#define	ACE4_WHO_GROUP		"GROUP@"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   317
#define	ACE4_WHO_EVERYONE	"EVERYONE@"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   318
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   319
struct nfsace4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   320
	acetype4 type;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   321
	aceflag4 flag;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   322
	acemask4 access_mask;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   323
	utf8string who;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   324
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   325
typedef struct nfsace4 nfsace4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   326
#define	MODE4_SUID 0x800
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   327
#define	MODE4_SGID 0x400
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   328
#define	MODE4_SVTX 0x200
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   329
#define	MODE4_RUSR 0x100
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   330
#define	MODE4_WUSR 0x080
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   331
#define	MODE4_XUSR 0x040
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   332
#define	MODE4_RGRP 0x020
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   333
#define	MODE4_WGRP 0x010
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   334
#define	MODE4_XGRP 0x008
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   335
#define	MODE4_ROTH 0x004
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   336
#define	MODE4_WOTH 0x002
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   337
#define	MODE4_XOTH 0x001
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   338
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   339
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   340
 * ACL conversion helpers
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   341
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   342
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   343
typedef enum {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   344
	ace4_unused,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   345
	ace4_user_obj,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   346
	ace4_user,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   347
	ace4_group, /* includes GROUP and GROUP_OBJ */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   348
	ace4_other_obj
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   349
} ace4_to_aent_state_t;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   350
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   351
typedef struct ace4vals {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   352
	utf8string *key; /* NB: not allocated here; points to existing utf8 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   353
	avl_node_t avl;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   354
	acemask4 mask;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   355
	acemask4 allowed;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   356
	acemask4 denied;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   357
	int aent_type;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   358
} ace4vals_t;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   359
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   360
typedef struct ace4_list {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   361
	ace4vals_t user_obj;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   362
	avl_tree_t user;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   363
	int numusers;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   364
	ace4vals_t group_obj;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   365
	avl_tree_t group;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   366
	int numgroups;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   367
	ace4vals_t other_obj;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   368
	acemask4 acl_mask;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   369
	int hasmask;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   370
	int dfacl_flag;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   371
	ace4_to_aent_state_t state;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   372
	int seen; /* bitmask of all aclent_t a_type values seen */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   373
} ace4_list_t;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   374
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   375
struct specdata4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   376
	uint32_t specdata1;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   377
	uint32_t specdata2;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   378
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   379
typedef struct specdata4 specdata4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   380
#define	FH4_PERSISTENT 0x00000000
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   381
#define	FH4_NOEXPIRE_WITH_OPEN 0x00000001
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   382
#define	FH4_VOLATILE_ANY 0x00000002
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   383
#define	FH4_VOL_MIGRATION 0x00000004
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   384
#define	FH4_VOL_RENAME 0x00000008
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   385
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   386
typedef bitmap4 fattr4_supported_attrs;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   387
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   388
typedef nfs_ftype4 fattr4_type;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   389
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   390
typedef uint32_t fattr4_fh_expire_type;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   391
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   392
typedef changeid4 fattr4_change;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   393
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   394
typedef uint64_t fattr4_size;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   395
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   396
typedef bool_t fattr4_link_support;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   397
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   398
typedef bool_t fattr4_symlink_support;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   399
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   400
typedef bool_t fattr4_named_attr;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   401
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   402
typedef fsid4 fattr4_fsid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   403
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   404
typedef bool_t fattr4_unique_handles;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   405
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   406
typedef uint32_t fattr4_lease_time;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   407
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   408
typedef nfsstat4 fattr4_rdattr_error;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   409
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   410
typedef struct {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   411
	uint_t fattr4_acl_len;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   412
	nfsace4 *fattr4_acl_val;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   413
} fattr4_acl;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   414
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   415
typedef uint32_t fattr4_aclsupport;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   416
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   417
typedef bool_t fattr4_archive;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   418
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   419
typedef bool_t fattr4_cansettime;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   420
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   421
typedef bool_t fattr4_case_insensitive;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   422
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   423
typedef bool_t fattr4_case_preserving;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   424
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   425
typedef bool_t fattr4_chown_restricted;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   426
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   427
typedef uint64_t fattr4_fileid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   428
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   429
typedef uint64_t fattr4_files_avail;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   430
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   431
typedef nfs_fh4 fattr4_filehandle;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   432
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   433
typedef uint64_t fattr4_files_free;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   434
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   435
typedef uint64_t fattr4_files_total;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   436
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   437
typedef fs_locations4 fattr4_fs_locations;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   438
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   439
typedef bool_t fattr4_hidden;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   440
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   441
typedef bool_t fattr4_homogeneous;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   442
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   443
typedef uint64_t fattr4_maxfilesize;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   444
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   445
typedef uint32_t fattr4_maxlink;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   446
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   447
typedef uint32_t fattr4_maxname;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   448
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   449
typedef uint64_t fattr4_maxread;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   450
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   451
typedef uint64_t fattr4_maxwrite;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   452
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   453
typedef utf8string fattr4_mimetype;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   454
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   455
typedef mode4 fattr4_mode;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   456
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   457
typedef uint64_t fattr4_mounted_on_fileid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   458
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   459
typedef bool_t fattr4_no_trunc;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   460
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   461
typedef uint32_t fattr4_numlinks;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   462
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   463
typedef utf8string fattr4_owner;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   464
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   465
typedef utf8string fattr4_owner_group;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   466
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   467
typedef uint64_t fattr4_quota_avail_hard;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   468
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   469
typedef uint64_t fattr4_quota_avail_soft;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   470
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   471
typedef uint64_t fattr4_quota_used;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   472
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   473
typedef specdata4 fattr4_rawdev;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   474
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   475
typedef uint64_t fattr4_space_avail;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   476
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   477
typedef uint64_t fattr4_space_free;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   478
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   479
typedef uint64_t fattr4_space_total;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   480
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   481
typedef uint64_t fattr4_space_used;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   482
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   483
typedef bool_t fattr4_system;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   484
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   485
typedef nfstime4 fattr4_time_access;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   486
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   487
typedef settime4 fattr4_time_access_set;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   488
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   489
typedef nfstime4 fattr4_time_backup;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   490
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   491
typedef nfstime4 fattr4_time_create;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   492
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   493
typedef nfstime4 fattr4_time_delta;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   494
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   495
typedef nfstime4 fattr4_time_metadata;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   496
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   497
typedef nfstime4 fattr4_time_modify;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   498
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   499
typedef settime4 fattr4_time_modify_set;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   500
#define	FATTR4_SUPPORTED_ATTRS 0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   501
#define	FATTR4_TYPE 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   502
#define	FATTR4_FH_EXPIRE_TYPE 2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   503
#define	FATTR4_CHANGE 3
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   504
#define	FATTR4_SIZE 4
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   505
#define	FATTR4_LINK_SUPPORT 5
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   506
#define	FATTR4_SYMLINK_SUPPORT 6
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   507
#define	FATTR4_NAMED_ATTR 7
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   508
#define	FATTR4_FSID 8
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   509
#define	FATTR4_UNIQUE_HANDLES 9
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   510
#define	FATTR4_LEASE_TIME 10
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   511
#define	FATTR4_RDATTR_ERROR 11
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   512
#define	FATTR4_FILEHANDLE 19
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   513
#define	FATTR4_ACL 12
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   514
#define	FATTR4_ACLSUPPORT 13
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   515
#define	FATTR4_ARCHIVE 14
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   516
#define	FATTR4_CANSETTIME 15
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   517
#define	FATTR4_CASE_INSENSITIVE 16
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   518
#define	FATTR4_CASE_PRESERVING 17
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   519
#define	FATTR4_CHOWN_RESTRICTED 18
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   520
#define	FATTR4_FILEID 20
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   521
#define	FATTR4_FILES_AVAIL 21
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   522
#define	FATTR4_FILES_FREE 22
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   523
#define	FATTR4_FILES_TOTAL 23
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   524
#define	FATTR4_FS_LOCATIONS 24
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   525
#define	FATTR4_HIDDEN 25
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   526
#define	FATTR4_HOMOGENEOUS 26
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   527
#define	FATTR4_MAXFILESIZE 27
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   528
#define	FATTR4_MAXLINK 28
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   529
#define	FATTR4_MAXNAME 29
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   530
#define	FATTR4_MAXREAD 30
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   531
#define	FATTR4_MAXWRITE 31
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   532
#define	FATTR4_MIMETYPE 32
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   533
#define	FATTR4_MODE 33
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   534
#define	FATTR4_NO_TRUNC 34
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   535
#define	FATTR4_NUMLINKS 35
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   536
#define	FATTR4_OWNER 36
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   537
#define	FATTR4_OWNER_GROUP 37
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   538
#define	FATTR4_QUOTA_AVAIL_HARD 38
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   539
#define	FATTR4_QUOTA_AVAIL_SOFT 39
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   540
#define	FATTR4_QUOTA_USED 40
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   541
#define	FATTR4_RAWDEV 41
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   542
#define	FATTR4_SPACE_AVAIL 42
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   543
#define	FATTR4_SPACE_FREE 43
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   544
#define	FATTR4_SPACE_TOTAL 44
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   545
#define	FATTR4_SPACE_USED 45
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   546
#define	FATTR4_SYSTEM 46
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   547
#define	FATTR4_TIME_ACCESS 47
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   548
#define	FATTR4_TIME_ACCESS_SET 48
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   549
#define	FATTR4_TIME_BACKUP 49
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   550
#define	FATTR4_TIME_CREATE 50
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   551
#define	FATTR4_TIME_DELTA 51
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   552
#define	FATTR4_TIME_METADATA 52
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   553
#define	FATTR4_TIME_MODIFY 53
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   554
#define	FATTR4_TIME_MODIFY_SET 54
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   555
#define	FATTR4_MOUNTED_ON_FILEID 55
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   556
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   557
struct fattr4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   558
	bitmap4 attrmask;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   559
	char *attrlist4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   560
	uint_t attrlist4_len;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   561
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   562
typedef struct fattr4 fattr4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   563
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   564
struct change_info4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   565
	bool_t atomic;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   566
	changeid4 before;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   567
	changeid4 after;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   568
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   569
typedef struct change_info4 change_info4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   570
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   571
struct clientaddr4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   572
	char *r_netid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   573
	char *r_addr;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   574
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   575
typedef struct clientaddr4 clientaddr4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   576
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   577
struct cb_client4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   578
	uint32_t cb_program;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   579
	clientaddr4 cb_location;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   580
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   581
typedef struct cb_client4 cb_client4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   582
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   583
struct stateid4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   584
	uint32_t seqid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   585
	char other[12];
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   586
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   587
typedef struct stateid4 stateid4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   588
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   589
struct nfs_client_id4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   590
	verifier4 verifier;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   591
	uint_t id_len;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   592
	char *id_val;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   593
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   594
typedef struct nfs_client_id4 nfs_client_id4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   595
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   596
struct open_owner4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   597
	clientid4 clientid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   598
	uint_t owner_len;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   599
	char *owner_val;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   600
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   601
typedef struct open_owner4 open_owner4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   602
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   603
struct lock_owner4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   604
	clientid4 clientid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   605
	uint_t owner_len;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   606
	char *owner_val;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   607
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   608
typedef struct lock_owner4 lock_owner4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   609
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   610
enum nfs_lock_type4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   611
	READ_LT = 1,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   612
	WRITE_LT = 2,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   613
	READW_LT = 3,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   614
	WRITEW_LT = 4
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   615
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   616
typedef enum nfs_lock_type4 nfs_lock_type4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   617
#define	ACCESS4_READ 0x00000001
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   618
#define	ACCESS4_LOOKUP 0x00000002
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   619
#define	ACCESS4_MODIFY 0x00000004
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   620
#define	ACCESS4_EXTEND 0x00000008
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   621
#define	ACCESS4_DELETE 0x00000010
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   622
#define	ACCESS4_EXECUTE 0x00000020
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   623
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   624
struct ACCESS4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   625
	uint32_t access;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   626
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   627
typedef struct ACCESS4args ACCESS4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   628
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   629
struct ACCESS4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   630
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   631
	uint32_t supported;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   632
	uint32_t access;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   633
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   634
typedef struct ACCESS4res ACCESS4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   635
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   636
struct CLOSE4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   637
	seqid4 seqid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   638
	stateid4 open_stateid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   639
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   640
typedef struct CLOSE4args CLOSE4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   641
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   642
struct CLOSE4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   643
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   644
	stateid4 open_stateid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   645
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   646
typedef struct CLOSE4res CLOSE4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   647
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   648
struct COMMIT4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   649
	offset4 offset;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   650
	count4 count;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   651
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   652
typedef struct COMMIT4args COMMIT4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   653
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   654
struct COMMIT4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   655
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   656
	verifier4 writeverf;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   657
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   658
typedef struct COMMIT4res COMMIT4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   659
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   660
struct CREATE4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   661
	nfs_ftype4 type;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   662
	union {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   663
		linktext4 linkdata;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   664
		specdata4 devdata;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   665
	} ftype4_u;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   666
	component4 objname;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   667
	fattr4 createattrs;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   668
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   669
typedef struct CREATE4args CREATE4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   670
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   671
struct CREATE4cargs {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   672
	nfs_ftype4 type;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   673
	union {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   674
		char *clinkdata;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   675
		specdata4 devdata;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   676
	} ftype4_u;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   677
	char *cname;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   678
	fattr4 createattrs;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   679
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   680
typedef struct CREATE4cargs CREATE4cargs;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   681
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   682
struct CREATE4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   683
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   684
	change_info4 cinfo;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   685
	bitmap4 attrset;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   686
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   687
typedef struct CREATE4res CREATE4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   688
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   689
struct DELEGPURGE4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   690
	clientid4 clientid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   691
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   692
typedef struct DELEGPURGE4args DELEGPURGE4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   693
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   694
struct DELEGPURGE4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   695
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   696
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   697
typedef struct DELEGPURGE4res DELEGPURGE4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   698
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   699
struct DELEGRETURN4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   700
	stateid4 deleg_stateid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   701
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   702
typedef struct DELEGRETURN4args DELEGRETURN4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   703
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   704
struct DELEGRETURN4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   705
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   706
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   707
typedef struct DELEGRETURN4res DELEGRETURN4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   708
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   709
struct mntinfo4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   710
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   711
struct GETATTR4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   712
	bitmap4 attr_request;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   713
	struct mntinfo4 *mi;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   714
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   715
typedef struct GETATTR4args GETATTR4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   716
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   717
struct nfs4_ga_ext_res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   718
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   719
struct nfs4_ga_res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   720
	vattr_t				n4g_va;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   721
	unsigned			n4g_change_valid:1;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   722
	unsigned			n4g_mon_fid_valid:1;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   723
	unsigned			n4g_fsid_valid:1;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   724
	uint_t				n4g_attrerr;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   725
	uint_t				n4g_attrwhy;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   726
	bitmap4				n4g_resbmap;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   727
	fattr4_change			n4g_change;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   728
	fattr4_fsid			n4g_fsid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   729
	fattr4_mounted_on_fileid	n4g_mon_fid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   730
	struct nfs4_ga_ext_res		*n4g_ext_res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   731
	vsecattr_t			n4g_vsa;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   732
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   733
typedef struct nfs4_ga_res nfs4_ga_res_t;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   734
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   735
struct GETATTR4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   736
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   737
	fattr4 obj_attributes;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   738
	nfsstat4	ga_status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   739
	struct nfs4_ga_res ga_res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   740
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   741
typedef struct GETATTR4res GETATTR4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   742
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   743
struct GETFH4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   744
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   745
	nfs_fh4 object;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   746
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   747
typedef struct GETFH4res GETFH4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   748
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   749
struct LINK4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   750
	component4 newname;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   751
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   752
typedef struct LINK4args LINK4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   753
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   754
struct LINK4cargs {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   755
	char *cnewname;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   756
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   757
typedef struct LINK4cargs LINK4cargs;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   758
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   759
struct LINK4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   760
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   761
	change_info4 cinfo;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   762
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   763
typedef struct LINK4res LINK4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   764
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   765
struct open_to_lock_owner4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   766
	seqid4 open_seqid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   767
	stateid4 open_stateid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   768
	seqid4 lock_seqid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   769
	lock_owner4 lock_owner;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   770
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   771
typedef struct open_to_lock_owner4 open_to_lock_owner4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   772
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   773
struct exist_lock_owner4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   774
	stateid4 lock_stateid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   775
	seqid4 lock_seqid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   776
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   777
typedef struct exist_lock_owner4 exist_lock_owner4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   778
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   779
struct locker4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   780
	bool_t new_lock_owner;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   781
	union {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   782
		open_to_lock_owner4 open_owner;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   783
		exist_lock_owner4 lock_owner;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   784
	} locker4_u;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   785
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   786
typedef struct locker4 locker4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   787
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   788
struct LOCK4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   789
	nfs_lock_type4 locktype;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   790
	bool_t reclaim;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   791
	offset4 offset;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   792
	length4 length;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   793
	locker4 locker;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   794
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   795
typedef struct LOCK4args LOCK4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   796
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   797
struct LOCK4denied {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   798
	offset4 offset;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   799
	length4 length;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   800
	nfs_lock_type4 locktype;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   801
	lock_owner4 owner;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   802
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   803
typedef struct LOCK4denied LOCK4denied;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   804
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   805
struct LOCK4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   806
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   807
	union {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   808
		stateid4 lock_stateid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   809
		LOCK4denied denied;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   810
	} LOCK4res_u;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   811
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   812
typedef struct LOCK4res LOCK4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   813
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   814
struct LOCKT4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   815
	nfs_lock_type4 locktype;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   816
	offset4 offset;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   817
	length4 length;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   818
	lock_owner4 owner;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   819
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   820
typedef struct LOCKT4args LOCKT4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   821
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   822
struct LOCKT4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   823
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   824
	LOCK4denied denied;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   825
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   826
typedef struct LOCKT4res LOCKT4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   827
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   828
struct LOCKU4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   829
	nfs_lock_type4 locktype;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   830
	seqid4 seqid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   831
	stateid4 lock_stateid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   832
	offset4 offset;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   833
	length4 length;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   834
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   835
typedef struct LOCKU4args LOCKU4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   836
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   837
struct LOCKU4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   838
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   839
	stateid4 lock_stateid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   840
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   841
typedef struct LOCKU4res LOCKU4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   842
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   843
struct LOOKUP4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   844
	component4 objname;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   845
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   846
typedef struct LOOKUP4args LOOKUP4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   847
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   848
struct LOOKUP4cargs {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   849
	char *cname;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   850
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   851
typedef struct LOOKUP4cargs LOOKUP4cargs;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   852
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   853
struct LOOKUP4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   854
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   855
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   856
typedef struct LOOKUP4res LOOKUP4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   857
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   858
struct LOOKUPP4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   859
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   860
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   861
typedef struct LOOKUPP4res LOOKUPP4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   862
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   863
struct NVERIFY4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   864
	fattr4 obj_attributes;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   865
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   866
typedef struct NVERIFY4args NVERIFY4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   867
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   868
struct NVERIFY4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   869
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   870
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   871
typedef struct NVERIFY4res NVERIFY4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   872
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   873
enum createmode4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   874
	UNCHECKED4 = 0,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   875
	GUARDED4 = 1,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   876
	EXCLUSIVE4 = 2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   877
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   878
typedef enum createmode4 createmode4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   879
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   880
enum opentype4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   881
	OPEN4_NOCREATE = 0,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   882
	OPEN4_CREATE = 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   883
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   884
typedef enum opentype4 opentype4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   885
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   886
enum limit_by4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   887
	NFS_LIMIT_SIZE = 1,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   888
	NFS_LIMIT_BLOCKS = 2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   889
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   890
typedef enum limit_by4 limit_by4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   891
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   892
struct nfs_modified_limit4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   893
	uint32_t num_blocks;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   894
	uint32_t bytes_per_block;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   895
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   896
typedef struct nfs_modified_limit4 nfs_modified_limit4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   897
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   898
struct nfs_space_limit4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   899
	limit_by4 limitby;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   900
	union {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   901
		uint64_t filesize;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   902
		nfs_modified_limit4 mod_blocks;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   903
	} nfs_space_limit4_u;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   904
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   905
typedef struct nfs_space_limit4 nfs_space_limit4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   906
#define	OPEN4_SHARE_ACCESS_READ 0x00000001
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   907
#define	OPEN4_SHARE_ACCESS_WRITE 0x00000002
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   908
#define	OPEN4_SHARE_ACCESS_BOTH 0x00000003
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   909
#define	OPEN4_SHARE_DENY_NONE 0x00000000
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   910
#define	OPEN4_SHARE_DENY_READ 0x00000001
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   911
#define	OPEN4_SHARE_DENY_WRITE 0x00000002
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   912
#define	OPEN4_SHARE_DENY_BOTH 0x00000003
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   913
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   914
enum open_delegation_type4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   915
	OPEN_DELEGATE_NONE = 0,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   916
	OPEN_DELEGATE_READ = 1,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   917
	OPEN_DELEGATE_WRITE = 2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   918
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   919
typedef enum open_delegation_type4 open_delegation_type4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   920
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   921
enum open_claim_type4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   922
	CLAIM_NULL = 0,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   923
	CLAIM_PREVIOUS = 1,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   924
	CLAIM_DELEGATE_CUR = 2,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   925
	CLAIM_DELEGATE_PREV = 3
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   926
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   927
typedef enum open_claim_type4 open_claim_type4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   928
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   929
struct open_claim_delegate_cur4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   930
	stateid4 delegate_stateid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   931
	component4 file;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   932
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   933
typedef struct open_claim_delegate_cur4 open_claim_delegate_cur4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   934
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   935
struct copen_claim_delegate_cur4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   936
	stateid4 delegate_stateid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   937
	char *cfile;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   938
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   939
typedef struct copen_claim_delegate_cur4 copen_claim_delegate_cur4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   940
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   941
struct OPEN4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   942
	seqid4 seqid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   943
	uint32_t share_access;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   944
	uint32_t share_deny;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   945
	open_owner4 owner;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   946
	opentype4 opentype;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   947
	createmode4 mode;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   948
	union {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   949
		fattr4 createattrs;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   950
		verifier4 createverf;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   951
	} createhow4_u;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   952
	open_claim_type4 claim;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   953
	union {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   954
		component4 file;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   955
		open_delegation_type4 delegate_type;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   956
		open_claim_delegate_cur4 delegate_cur_info;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   957
		component4 file_delegate_prev;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   958
	} open_claim4_u;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   959
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   960
typedef struct OPEN4args OPEN4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   961
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   962
struct OPEN4cargs {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   963
	seqid4 seqid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   964
	uint32_t share_access;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   965
	uint32_t share_deny;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   966
	open_owner4 owner;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   967
	opentype4 opentype;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   968
	createmode4 mode;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   969
	union {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   970
		fattr4 createattrs;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   971
		verifier4 createverf;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   972
	} createhow4_u;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   973
	open_claim_type4 claim;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   974
	union {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   975
		char *cfile;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   976
		open_delegation_type4 delegate_type;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   977
		copen_claim_delegate_cur4 delegate_cur_info;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   978
		char *cfile_delegate_prev;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   979
	} open_claim4_u;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   980
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   981
typedef struct OPEN4cargs OPEN4cargs;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   982
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   983
struct open_read_delegation4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   984
	stateid4 stateid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   985
	bool_t recall;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   986
	nfsace4 permissions;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   987
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   988
typedef struct open_read_delegation4 open_read_delegation4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   989
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   990
struct open_write_delegation4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   991
	stateid4 stateid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   992
	bool_t recall;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   993
	nfs_space_limit4 space_limit;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   994
	nfsace4 permissions;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   995
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   996
typedef struct open_write_delegation4 open_write_delegation4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   997
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   998
struct open_delegation4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   999
	open_delegation_type4 delegation_type;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1000
	union {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1001
		open_read_delegation4 read;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1002
		open_write_delegation4 write;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1003
	} open_delegation4_u;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1004
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1005
typedef struct open_delegation4 open_delegation4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1006
#define	OPEN4_RESULT_CONFIRM 0x00000002
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1007
#define	OPEN4_RESULT_LOCKTYPE_POSIX 0x00000004
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1008
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1009
struct OPEN4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1010
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1011
	stateid4 stateid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1012
	change_info4 cinfo;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1013
	uint32_t rflags;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1014
	bitmap4 attrset;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1015
	open_delegation4 delegation;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1016
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1017
typedef struct OPEN4res OPEN4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1018
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1019
struct OPENATTR4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1020
	bool_t createdir;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1021
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1022
typedef struct OPENATTR4args OPENATTR4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1023
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1024
struct OPENATTR4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1025
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1026
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1027
typedef struct OPENATTR4res OPENATTR4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1028
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1029
struct OPEN_CONFIRM4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1030
	stateid4 open_stateid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1031
	seqid4 seqid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1032
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1033
typedef struct OPEN_CONFIRM4args OPEN_CONFIRM4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1034
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1035
struct OPEN_CONFIRM4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1036
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1037
	stateid4 open_stateid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1038
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1039
typedef struct OPEN_CONFIRM4res OPEN_CONFIRM4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1040
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1041
struct OPEN_DOWNGRADE4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1042
	stateid4 open_stateid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1043
	seqid4 seqid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1044
	uint32_t share_access;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1045
	uint32_t share_deny;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1046
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1047
typedef struct OPEN_DOWNGRADE4args OPEN_DOWNGRADE4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1048
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1049
struct OPEN_DOWNGRADE4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1050
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1051
	stateid4 open_stateid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1052
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1053
typedef struct OPEN_DOWNGRADE4res OPEN_DOWNGRADE4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1054
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1055
struct PUTFH4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1056
	nfs_fh4 object;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1057
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1058
typedef struct PUTFH4args PUTFH4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1059
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1060
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1061
 * Client only side PUTFH arguments
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1062
 * This is really a nfs4_sharedfh_t * but the forward declaration
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1063
 * is problematic;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1064
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1065
struct PUTFH4cargs {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1066
	void *sfh;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1067
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1068
typedef struct PUTFH4cargs PUTFH4cargs;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1069
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1070
struct PUTFH4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1071
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1072
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1073
typedef struct PUTFH4res PUTFH4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1074
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1075
struct PUTPUBFH4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1076
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1077
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1078
typedef struct PUTPUBFH4res PUTPUBFH4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1079
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1080
struct PUTROOTFH4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1081
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1082
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1083
typedef struct PUTROOTFH4res PUTROOTFH4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1084
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1085
struct READ4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1086
	stateid4 stateid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1087
	offset4 offset;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1088
	count4 count;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1089
	/* The following are used for the XDR decode path */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1090
	char *res_data_val_alt;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1091
	mblk_t *res_mblk;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1092
	struct uio *res_uiop;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1093
	uint_t res_maxsize;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1094
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1095
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1096
typedef struct READ4args READ4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1097
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1098
struct READ4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1099
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1100
	bool_t eof;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1101
	uint_t data_len;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1102
	char *data_val;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1103
	mblk_t *mblk;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1104
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1105
typedef struct READ4res READ4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1106
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1107
struct rddir4_cache;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1108
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1109
struct READDIR4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1110
	nfs_cookie4 cookie;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1111
	verifier4 cookieverf;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1112
	count4 dircount;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1113
	count4 maxcount;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1114
	bitmap4 attr_request;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1115
	vnode_t *dvp;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1116
	struct mntinfo4 *mi;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1117
	cred_t *cr;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1118
	struct rddir4_cache *rdc;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1119
	hrtime_t t;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1120
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1121
typedef struct READDIR4args READDIR4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1122
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1123
struct READDIR4res_clnt {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1124
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1125
	verifier4 cookieverf;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1126
	bool_t eof;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1127
	struct dirent64 *dotp, *dotdotp;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1128
	struct rddir4_cache *rdc;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1129
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1130
typedef struct READDIR4res_clnt READDIR4res_clnt;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1131
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1132
struct READDIR4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1133
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1134
	verifier4 cookieverf;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1135
	mblk_t *mblk;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1136
	uint_t data_len;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1137
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1138
typedef struct READDIR4res READDIR4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1139
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1140
struct READLINK4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1141
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1142
	linktext4 link;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1143
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1144
typedef struct READLINK4res READLINK4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1145
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1146
struct REMOVE4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1147
	component4 target;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1148
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1149
typedef struct REMOVE4args REMOVE4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1150
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1151
struct REMOVE4cargs {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1152
	char *ctarget;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1153
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1154
typedef struct REMOVE4cargs REMOVE4cargs;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1155
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1156
struct REMOVE4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1157
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1158
	change_info4 cinfo;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1159
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1160
typedef struct REMOVE4res REMOVE4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1161
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1162
struct RENAME4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1163
	component4 oldname;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1164
	component4 newname;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1165
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1166
typedef struct RENAME4args RENAME4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1167
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1168
struct RENAME4cargs {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1169
	char *coldname;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1170
	char *cnewname;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1171
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1172
typedef struct RENAME4cargs RENAME4cargs;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1173
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1174
struct RENAME4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1175
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1176
	change_info4 source_cinfo;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1177
	change_info4 target_cinfo;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1178
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1179
typedef struct RENAME4res RENAME4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1180
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1181
struct RENEW4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1182
	clientid4 clientid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1183
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1184
typedef struct RENEW4args RENEW4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1185
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1186
struct RENEW4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1187
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1188
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1189
typedef struct RENEW4res RENEW4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1190
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1191
struct RESTOREFH4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1192
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1193
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1194
typedef struct RESTOREFH4res RESTOREFH4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1195
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1196
struct SAVEFH4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1197
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1198
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1199
typedef struct SAVEFH4res SAVEFH4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1200
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1201
struct SECINFO4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1202
	component4 name;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1203
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1204
typedef struct SECINFO4args SECINFO4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1205
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1206
struct SECINFO4cargs {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1207
	char *cname;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1208
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1209
typedef struct SECINFO4cargs SECINFO4cargs;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1210
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1211
enum rpc_gss_svc_t {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1212
	RPC_GSS_SVC_NONE = 1,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1213
	RPC_GSS_SVC_INTEGRITY = 2,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1214
	RPC_GSS_SVC_PRIVACY = 3
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1215
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1216
typedef enum rpc_gss_svc_t rpc_gss_svc_t;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1217
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1218
struct rpcsec_gss_info {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1219
	sec_oid4 oid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1220
	qop4 qop;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1221
	rpc_gss_svc_t service;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1222
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1223
typedef struct rpcsec_gss_info rpcsec_gss_info;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1224
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1225
struct secinfo4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1226
	uint32_t flavor;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1227
	rpcsec_gss_info flavor_info;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1228
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1229
typedef struct secinfo4 secinfo4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1230
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1231
struct SECINFO4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1232
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1233
	uint_t SECINFO4resok_len;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1234
	secinfo4 *SECINFO4resok_val;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1235
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1236
typedef struct SECINFO4res SECINFO4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1237
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1238
struct SETATTR4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1239
	stateid4 stateid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1240
	fattr4 obj_attributes;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1241
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1242
typedef struct SETATTR4args SETATTR4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1243
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1244
struct SETATTR4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1245
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1246
	bitmap4 attrsset;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1247
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1248
typedef struct SETATTR4res SETATTR4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1249
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1250
struct SETCLIENTID4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1251
	nfs_client_id4 client;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1252
	cb_client4 callback;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1253
	uint32_t callback_ident;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1254
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1255
typedef struct SETCLIENTID4args SETCLIENTID4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1256
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1257
struct SETCLIENTID4resok {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1258
	clientid4 clientid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1259
	verifier4 setclientid_confirm;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1260
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1261
typedef struct SETCLIENTID4resok SETCLIENTID4resok;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1262
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1263
struct SETCLIENTID4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1264
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1265
	union {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1266
		SETCLIENTID4resok resok4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1267
		clientaddr4 client_using;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1268
	} SETCLIENTID4res_u;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1269
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1270
typedef struct SETCLIENTID4res SETCLIENTID4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1271
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1272
struct SETCLIENTID_CONFIRM4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1273
	clientid4 clientid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1274
	verifier4 setclientid_confirm;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1275
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1276
typedef struct SETCLIENTID_CONFIRM4args SETCLIENTID_CONFIRM4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1277
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1278
struct SETCLIENTID_CONFIRM4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1279
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1280
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1281
typedef struct SETCLIENTID_CONFIRM4res SETCLIENTID_CONFIRM4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1282
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1283
struct VERIFY4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1284
	fattr4 obj_attributes;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1285
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1286
typedef struct VERIFY4args VERIFY4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1287
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1288
struct VERIFY4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1289
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1290
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1291
typedef struct VERIFY4res VERIFY4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1292
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1293
enum stable_how4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1294
	UNSTABLE4 = 0,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1295
	DATA_SYNC4 = 1,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1296
	FILE_SYNC4 = 2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1297
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1298
typedef enum stable_how4 stable_how4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1299
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1300
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1301
 * mblk doesn't go over the wire.  If non-NULL, it points to an mblk chain
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1302
 * for the write data.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1303
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1304
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1305
struct WRITE4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1306
	stateid4 stateid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1307
	offset4 offset;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1308
	stable_how4 stable;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1309
	uint_t data_len;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1310
	char *data_val;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1311
	mblk_t *mblk;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1312
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1313
typedef struct WRITE4args WRITE4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1314
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1315
struct WRITE4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1316
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1317
	count4 count;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1318
	stable_how4 committed;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1319
	verifier4 writeverf;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1320
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1321
typedef struct WRITE4res WRITE4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1322
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1323
struct RELEASE_LOCKOWNER4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1324
	lock_owner4 lock_owner;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1325
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1326
typedef struct RELEASE_LOCKOWNER4args RELEASE_LOCKOWNER4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1327
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1328
struct RELEASE_LOCKOWNER4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1329
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1330
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1331
typedef struct RELEASE_LOCKOWNER4res RELEASE_LOCKOWNER4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1332
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1333
struct ILLEGAL4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1334
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1335
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1336
typedef struct ILLEGAL4res ILLEGAL4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1337
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1338
enum nfs_opnum4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1339
	OP_ACCESS = 3,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1340
	OP_CLOSE = 4,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1341
	OP_COMMIT = 5,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1342
	OP_CREATE = 6,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1343
	OP_DELEGPURGE = 7,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1344
	OP_DELEGRETURN = 8,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1345
	OP_GETATTR = 9,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1346
	OP_GETFH = 10,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1347
	OP_LINK = 11,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1348
	OP_LOCK = 12,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1349
	OP_LOCKT = 13,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1350
	OP_LOCKU = 14,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1351
	OP_LOOKUP = 15,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1352
	OP_LOOKUPP = 16,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1353
	OP_NVERIFY = 17,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1354
	OP_OPEN = 18,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1355
	OP_OPENATTR = 19,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1356
	OP_OPEN_CONFIRM = 20,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1357
	OP_OPEN_DOWNGRADE = 21,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1358
	OP_PUTFH = 22,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1359
	OP_PUTPUBFH = 23,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1360
	OP_PUTROOTFH = 24,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1361
	OP_READ = 25,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1362
	OP_READDIR = 26,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1363
	OP_READLINK = 27,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1364
	OP_REMOVE = 28,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1365
	OP_RENAME = 29,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1366
	OP_RENEW = 30,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1367
	OP_RESTOREFH = 31,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1368
	OP_SAVEFH = 32,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1369
	OP_SECINFO = 33,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1370
	OP_SETATTR = 34,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1371
	OP_SETCLIENTID = 35,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1372
	OP_SETCLIENTID_CONFIRM = 36,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1373
	OP_VERIFY = 37,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1374
	OP_WRITE = 38,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1375
	OP_RELEASE_LOCKOWNER = 39,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1376
	OP_ILLEGAL = 10044,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1377
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1378
 * These are internal client pseudo ops that *MUST* never go over the wire
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1379
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1380
#define	SUNW_PRIVATE_OP	0x10000000
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1381
#define	REAL_OP4(op)	((op) & ~SUNW_PRIVATE_OP)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1382
	OP_CCREATE = OP_CREATE | SUNW_PRIVATE_OP,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1383
	OP_CLINK = OP_LINK | SUNW_PRIVATE_OP,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1384
	OP_CLOOKUP = OP_LOOKUP | SUNW_PRIVATE_OP,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1385
	OP_COPEN = OP_OPEN | SUNW_PRIVATE_OP,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1386
	OP_CPUTFH = OP_PUTFH | SUNW_PRIVATE_OP,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1387
	OP_CREMOVE = OP_REMOVE | SUNW_PRIVATE_OP,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1388
	OP_CRENAME = OP_RENAME | SUNW_PRIVATE_OP,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1389
	OP_CSECINFO = OP_SECINFO | SUNW_PRIVATE_OP
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1390
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1391
typedef enum nfs_opnum4 nfs_opnum4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1392
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1393
struct nfs_argop4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1394
	nfs_opnum4 argop;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1395
	union {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1396
		ACCESS4args opaccess;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1397
		CLOSE4args opclose;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1398
		COMMIT4args opcommit;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1399
		CREATE4args opcreate;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1400
		CREATE4cargs opccreate;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1401
		DELEGPURGE4args opdelegpurge;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1402
		DELEGRETURN4args opdelegreturn;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1403
		GETATTR4args opgetattr;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1404
		LINK4args oplink;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1405
		LINK4cargs opclink;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1406
		LOCK4args oplock;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1407
		LOCKT4args oplockt;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1408
		LOCKU4args oplocku;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1409
		LOOKUP4args oplookup;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1410
		LOOKUP4cargs opclookup;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1411
		NVERIFY4args opnverify;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1412
		OPEN4args opopen;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1413
		OPEN4cargs opcopen;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1414
		OPENATTR4args opopenattr;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1415
		OPEN_CONFIRM4args opopen_confirm;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1416
		OPEN_DOWNGRADE4args opopen_downgrade;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1417
		PUTFH4args opputfh;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1418
		PUTFH4cargs opcputfh;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1419
		READ4args opread;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1420
		READDIR4args opreaddir;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1421
		REMOVE4args opremove;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1422
		REMOVE4cargs opcremove;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1423
		RENAME4args oprename;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1424
		RENAME4cargs opcrename;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1425
		RENEW4args oprenew;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1426
		SECINFO4args opsecinfo;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1427
		SECINFO4cargs opcsecinfo;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1428
		SETATTR4args opsetattr;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1429
		SETCLIENTID4args opsetclientid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1430
		SETCLIENTID_CONFIRM4args opsetclientid_confirm;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1431
		VERIFY4args opverify;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1432
		WRITE4args opwrite;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1433
		RELEASE_LOCKOWNER4args oprelease_lockowner;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1434
	} nfs_argop4_u;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1435
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1436
typedef struct nfs_argop4 nfs_argop4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1437
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1438
struct nfs_resop4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1439
	nfs_opnum4 resop;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1440
	union {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1441
		ACCESS4res opaccess;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1442
		CLOSE4res opclose;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1443
		COMMIT4res opcommit;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1444
		CREATE4res opcreate;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1445
		DELEGPURGE4res opdelegpurge;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1446
		DELEGRETURN4res opdelegreturn;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1447
		GETATTR4res opgetattr;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1448
		GETFH4res opgetfh;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1449
		LINK4res oplink;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1450
		LOCK4res oplock;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1451
		LOCKT4res oplockt;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1452
		LOCKU4res oplocku;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1453
		LOOKUP4res oplookup;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1454
		LOOKUPP4res oplookupp;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1455
		NVERIFY4res opnverify;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1456
		OPEN4res opopen;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1457
		OPENATTR4res opopenattr;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1458
		OPEN_CONFIRM4res opopen_confirm;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1459
		OPEN_DOWNGRADE4res opopen_downgrade;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1460
		PUTFH4res opputfh;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1461
		PUTPUBFH4res opputpubfh;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1462
		PUTROOTFH4res opputrootfh;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1463
		READ4res opread;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1464
		READDIR4res opreaddir;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1465
		READDIR4res_clnt opreaddirclnt;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1466
		READLINK4res opreadlink;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1467
		REMOVE4res opremove;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1468
		RENAME4res oprename;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1469
		RENEW4res oprenew;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1470
		RESTOREFH4res oprestorefh;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1471
		SAVEFH4res opsavefh;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1472
		SECINFO4res opsecinfo;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1473
		SETATTR4res opsetattr;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1474
		SETCLIENTID4res opsetclientid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1475
		SETCLIENTID_CONFIRM4res opsetclientid_confirm;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1476
		VERIFY4res opverify;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1477
		WRITE4res opwrite;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1478
		RELEASE_LOCKOWNER4res oprelease_lockowner;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1479
		ILLEGAL4res opillegal;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1480
	} nfs_resop4_u;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1481
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1482
typedef struct nfs_resop4 nfs_resop4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1483
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1484
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1485
 * Fixed size tag string for easy client encoding
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1486
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1487
struct _ctag {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1488
	int ct_type;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1489
	char *ct_str;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1490
	uint32_t ct_tag[3];
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1491
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1492
typedef struct _ctag ctag_t;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1493
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1494
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1495
 * Client-only encode-only version
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1496
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1497
struct COMPOUND4args_clnt {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1498
	int ctag;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1499
	uint_t array_len;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1500
	nfs_argop4 *array;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1501
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1502
typedef struct COMPOUND4args_clnt COMPOUND4args_clnt;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1503
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1504
struct COMPOUND4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1505
	utf8string tag;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1506
	uint32_t minorversion;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1507
	uint_t array_len;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1508
	nfs_argop4 *array;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1509
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1510
typedef struct COMPOUND4args COMPOUND4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1511
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1512
struct COMPOUND4res_clnt {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1513
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1514
	uint_t array_len;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1515
	uint_t decode_len;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1516
	nfs_resop4 *array;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1517
	COMPOUND4args_clnt *argsp;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1518
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1519
typedef struct COMPOUND4res_clnt COMPOUND4res_clnt;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1520
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1521
struct COMPOUND4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1522
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1523
	utf8string tag;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1524
	uint_t array_len;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1525
	nfs_resop4 *array;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1526
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1527
typedef struct COMPOUND4res COMPOUND4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1528
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1529
struct CB_GETATTR4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1530
	nfs_fh4 fh;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1531
	bitmap4 attr_request;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1532
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1533
typedef struct CB_GETATTR4args CB_GETATTR4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1534
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1535
struct CB_GETATTR4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1536
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1537
	fattr4 obj_attributes;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1538
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1539
typedef struct CB_GETATTR4res CB_GETATTR4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1540
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1541
struct CB_RECALL4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1542
	stateid4 stateid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1543
	bool_t truncate;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1544
	nfs_fh4 fh;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1545
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1546
typedef struct CB_RECALL4args CB_RECALL4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1547
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1548
struct CB_RECALL4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1549
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1550
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1551
typedef struct CB_RECALL4res CB_RECALL4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1552
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1553
struct CB_ILLEGAL4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1554
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1555
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1556
typedef struct CB_ILLEGAL4res CB_ILLEGAL4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1557
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1558
enum nfs_cb_opnum4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1559
	OP_CB_GETATTR = 3,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1560
	OP_CB_RECALL = 4,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1561
	OP_CB_ILLEGAL = 10044
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1562
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1563
typedef enum nfs_cb_opnum4 nfs_cb_opnum4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1564
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1565
struct nfs_cb_argop4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1566
	uint_t argop;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1567
	union {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1568
		CB_GETATTR4args opcbgetattr;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1569
		CB_RECALL4args opcbrecall;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1570
	} nfs_cb_argop4_u;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1571
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1572
typedef struct nfs_cb_argop4 nfs_cb_argop4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1573
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1574
struct nfs_cb_resop4 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1575
	uint_t resop;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1576
	union {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1577
		CB_GETATTR4res opcbgetattr;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1578
		CB_RECALL4res opcbrecall;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1579
		CB_ILLEGAL4res opcbillegal;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1580
	} nfs_cb_resop4_u;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1581
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1582
typedef struct nfs_cb_resop4 nfs_cb_resop4;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1583
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1584
struct CB_COMPOUND4args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1585
	utf8string tag;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1586
	uint32_t minorversion;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1587
	uint32_t callback_ident;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1588
	uint_t array_len;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1589
	nfs_cb_argop4 *array;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1590
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1591
typedef struct CB_COMPOUND4args CB_COMPOUND4args;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1592
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1593
struct CB_COMPOUND4res {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1594
	nfsstat4 status;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1595
	utf8string tag;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1596
	uint_t array_len;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1597
	nfs_cb_resop4 *array;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1598
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1599
typedef struct CB_COMPOUND4res CB_COMPOUND4res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1600
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1601
#define	NFS4_PROGRAM		100003
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1602
#define	NFS_V4			4
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1603
#define	NFSPROC4_NULL		0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1604
#define	NFSPROC4_COMPOUND	1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1605
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1606
#define	NFS4_CALLBACK		0x40000000
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1607
#define	NFS_CB			1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1608
#define	CB_NULL			0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1609
#define	CB_COMPOUND		1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1610
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1611
extern  bool_t xdr_bitmap4(XDR *, bitmap4 *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1612
extern  bool_t xdr_utf8string(XDR *, utf8string *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1613
extern  bool_t xdr_nfs_fh4(XDR *, nfs_fh4 *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1614
extern  bool_t xdr_fattr4_fsid(XDR *, fattr4_fsid *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1615
extern  bool_t xdr_fattr4_acl(XDR *, fattr4_acl *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1616
extern  bool_t xdr_fattr4_fs_locations(XDR *, fattr4_fs_locations *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1617
extern  bool_t xdr_fattr4_rawdev(XDR *, fattr4_rawdev *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1618
extern  bool_t xdr_nfstime4(XDR *, nfstime4 *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1619
extern  bool_t xdr_settime4(XDR *, settime4 *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1620
extern  bool_t xdr_COMPOUND4args_clnt(XDR *, COMPOUND4args_clnt *);
806
849fb015aa25 6337437 .zfs doesn't work over NFS
ek110237
parents: 0
diff changeset
  1621
extern  bool_t xdr_COMPOUND4args_srv(XDR *, COMPOUND4args *);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1622
extern  bool_t xdr_COMPOUND4res_clnt(XDR *, COMPOUND4res_clnt *);
806
849fb015aa25 6337437 .zfs doesn't work over NFS
ek110237
parents: 0
diff changeset
  1623
extern  bool_t xdr_COMPOUND4res_srv(XDR *, COMPOUND4res *);
1232
1a9b1651d839 4799697 nfs messages could be more useful
robinson
parents: 806
diff changeset
  1624
extern  bool_t xdr_CB_COMPOUND4args_clnt(XDR *, CB_COMPOUND4args *);
1a9b1651d839 4799697 nfs messages could be more useful
robinson
parents: 806
diff changeset
  1625
extern  bool_t xdr_CB_COMPOUND4args_srv(XDR *, CB_COMPOUND4args *);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1626
extern  bool_t xdr_CB_COMPOUND4res(XDR *, CB_COMPOUND4res *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1627
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1628
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1629
#ifdef __cplusplus
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1630
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1631
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1632
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1633
#endif /* _NFS4_KPROT_H */