File Index
Files and directories
Sign in
FILE

nfs4_1.x

File preview with syntax highlighting.

linux-6.19.14/Documentation/sunrpc/xdr/nfs4_1.x LOGOS
  1/*
  2 * Copyright (c) 2010 IETF Trust and the persons identified
  3 * as the document authors.  All rights reserved.
  4 *
  5 * The document authors are identified in RFC 3530 and
  6 * RFC 5661.
  7 *
  8 * Redistribution and use in source and binary forms, with
  9 * or without modification, are permitted provided that the
 10 * following conditions are met:
 11 *
 12 * - Redistributions of source code must retain the above
 13 *   copyright notice, this list of conditions and the
 14 *   following disclaimer.
 15 *
 16 * - Redistributions in binary form must reproduce the above
 17 *   copyright notice, this list of conditions and the
 18 *   following disclaimer in the documentation and/or other
 19 *   materials provided with the distribution.
 20 *
 21 * - Neither the name of Internet Society, IETF or IETF
 22 *   Trust, nor the names of specific contributors, may be
 23 *   used to endorse or promote products derived from this
 24 *   software without specific prior written permission.
 25 *
 26 *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS
 27 *   AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
 28 *   WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 29 *   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 30 *   FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
 31 *   EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 32 *   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 33 *   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 34 *   NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 35 *   SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 36 *   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 37 *   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 38 *   OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
 39 *   IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 40 *   ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 41 */
 42
 43pragma header nfs4;
 44
 45/*
 46 * Basic typedefs for RFC 1832 data type definitions
 47 */
 48typedef hyper		int64_t;
 49typedef unsigned int	uint32_t;
 50
 51/*
 52 * Basic data types
 53 */
 54typedef uint32_t	bitmap4<>;
 55
 56/*
 57 * Timeval
 58 */
 59struct nfstime4 {
 60	int64_t		seconds;
 61	uint32_t	nseconds;
 62};
 63
 64
 65/*
 66 * The following content was extracted from draft-ietf-nfsv4-delstid
 67 */
 68
 69typedef bool            fattr4_offline;
 70
 71
 72const FATTR4_OFFLINE            = 83;
 73
 74
 75struct open_arguments4 {
 76  bitmap4  oa_share_access;
 77  bitmap4  oa_share_deny;
 78  bitmap4  oa_share_access_want;
 79  bitmap4  oa_open_claim;
 80  bitmap4  oa_create_mode;
 81};
 82
 83
 84enum open_args_share_access4 {
 85   OPEN_ARGS_SHARE_ACCESS_READ  = 1,
 86   OPEN_ARGS_SHARE_ACCESS_WRITE = 2,
 87   OPEN_ARGS_SHARE_ACCESS_BOTH  = 3
 88};
 89
 90
 91enum open_args_share_deny4 {
 92   OPEN_ARGS_SHARE_DENY_NONE  = 0,
 93   OPEN_ARGS_SHARE_DENY_READ  = 1,
 94   OPEN_ARGS_SHARE_DENY_WRITE = 2,
 95   OPEN_ARGS_SHARE_DENY_BOTH  = 3
 96};
 97
 98
 99enum open_args_share_access_want4 {
100   OPEN_ARGS_SHARE_ACCESS_WANT_ANY_DELEG           = 3,
101   OPEN_ARGS_SHARE_ACCESS_WANT_NO_DELEG            = 4,
102   OPEN_ARGS_SHARE_ACCESS_WANT_CANCEL              = 5,
103   OPEN_ARGS_SHARE_ACCESS_WANT_SIGNAL_DELEG_WHEN_RESRC_AVAIL
104                                                   = 17,
105   OPEN_ARGS_SHARE_ACCESS_WANT_PUSH_DELEG_WHEN_UNCONTENDED
106                                                   = 18,
107   OPEN_ARGS_SHARE_ACCESS_WANT_DELEG_TIMESTAMPS    = 20,
108   OPEN_ARGS_SHARE_ACCESS_WANT_OPEN_XOR_DELEGATION = 21
109};
110
111
112enum open_args_open_claim4 {
113   OPEN_ARGS_OPEN_CLAIM_NULL          = 0,
114   OPEN_ARGS_OPEN_CLAIM_PREVIOUS      = 1,
115   OPEN_ARGS_OPEN_CLAIM_DELEGATE_CUR  = 2,
116   OPEN_ARGS_OPEN_CLAIM_DELEGATE_PREV = 3,
117   OPEN_ARGS_OPEN_CLAIM_FH            = 4,
118   OPEN_ARGS_OPEN_CLAIM_DELEG_CUR_FH  = 5,
119   OPEN_ARGS_OPEN_CLAIM_DELEG_PREV_FH = 6
120};
121
122
123enum open_args_createmode4 {
124   OPEN_ARGS_CREATEMODE_UNCHECKED4     = 0,
125   OPEN_ARGS_CREATE_MODE_GUARDED       = 1,
126   OPEN_ARGS_CREATEMODE_EXCLUSIVE4     = 2,
127   OPEN_ARGS_CREATE_MODE_EXCLUSIVE4_1  = 3
128};
129
130
131typedef open_arguments4 fattr4_open_arguments;
132pragma public fattr4_open_arguments;
133
134
135%/*
136% * Determine what OPEN supports.
137% */
138const FATTR4_OPEN_ARGUMENTS     = 86;
139
140
141
142
143const OPEN4_RESULT_NO_OPEN_STATEID = 0x00000010;
144
145
146/*
147 * attributes for the delegation times being
148 * cached and served by the "client"
149 */
150typedef nfstime4        fattr4_time_deleg_access;
151typedef nfstime4        fattr4_time_deleg_modify;
152pragma public 		fattr4_time_deleg_access;
153pragma public		fattr4_time_deleg_modify;
154
155
156%/*
157% * New RECOMMENDED Attribute for
158% * delegation caching of times
159% */
160const FATTR4_TIME_DELEG_ACCESS  = 84;
161const FATTR4_TIME_DELEG_MODIFY  = 85;
162
163
164
165/* new flags for share_access field of OPEN4args */
166const OPEN4_SHARE_ACCESS_WANT_DELEG_MASK        = 0xFF00;
167const OPEN4_SHARE_ACCESS_WANT_NO_PREFERENCE     = 0x0000;
168const OPEN4_SHARE_ACCESS_WANT_READ_DELEG        = 0x0100;
169const OPEN4_SHARE_ACCESS_WANT_WRITE_DELEG       = 0x0200;
170const OPEN4_SHARE_ACCESS_WANT_ANY_DELEG         = 0x0300;
171const OPEN4_SHARE_ACCESS_WANT_NO_DELEG          = 0x0400;
172const OPEN4_SHARE_ACCESS_WANT_CANCEL            = 0x0500;
173
174const OPEN4_SHARE_ACCESS_WANT_SIGNAL_DELEG_WHEN_RESRC_AVAIL = 0x10000;
175const OPEN4_SHARE_ACCESS_WANT_PUSH_DELEG_WHEN_UNCONTENDED = 0x20000;
176const OPEN4_SHARE_ACCESS_WANT_DELEG_TIMESTAMPS = 0x100000;
177const OPEN4_SHARE_ACCESS_WANT_OPEN_XOR_DELEGATION = 0x200000;
178
179enum open_delegation_type4 {
180       OPEN_DELEGATE_NONE                  = 0,
181       OPEN_DELEGATE_READ                  = 1,
182       OPEN_DELEGATE_WRITE                 = 2,
183       OPEN_DELEGATE_NONE_EXT              = 3, /* new to v4.1 */
184       OPEN_DELEGATE_READ_ATTRS_DELEG      = 4,
185       OPEN_DELEGATE_WRITE_ATTRS_DELEG     = 5
186};
~/ Read-only file preview.