nfs-ganesha 1.4

nfsv40.h

Go to the documentation of this file.
00001 /*
00002  * Please do not edit this file.
00003  * It was generated using rpcgen.
00004  */
00005 
00006 #ifndef _NFS4_H_RPCGEN
00007 #define _NFS4_H_RPCGEN
00008 
00009 #ifndef _USE_SWIG
00010 
00011 
00012 #endif
00013 
00014 #ifdef _SOLARIS
00015 #include "solaris_port.h"
00016 #endif                          /* _SOLARIS */
00017 
00018 #define NFS4_FHSIZE 128
00019 #define NFS4_VERIFIER_SIZE 8
00020 #define NFS4_OPAQUE_LIMIT 1024
00021 
00022 enum nfs_ftype4
00023 {
00024   NF4REG = 1,
00025   NF4DIR = 2,
00026   NF4BLK = 3,
00027   NF4CHR = 4,
00028   NF4LNK = 5,
00029   NF4SOCK = 6,
00030   NF4FIFO = 7,
00031   NF4ATTRDIR = 8,
00032   NF4NAMEDATTR = 9
00033 };
00034 typedef enum nfs_ftype4 nfs_ftype4;
00035 
00036 enum nfsstat4
00037 {
00038   NFS4_OK = 0,
00039   NFS4ERR_PERM = 1,
00040   NFS4ERR_NOENT = 2,
00041   NFS4ERR_IO = 5,
00042   NFS4ERR_NXIO = 6,
00043   NFS4ERR_ACCESS = 13,
00044   NFS4ERR_EXIST = 17,
00045   NFS4ERR_XDEV = 18,
00046   NFS4ERR_NOTDIR = 20,
00047   NFS4ERR_ISDIR = 21,
00048   NFS4ERR_INVAL = 22,
00049   NFS4ERR_FBIG = 27,
00050   NFS4ERR_NOSPC = 28,
00051   NFS4ERR_ROFS = 30,
00052   NFS4ERR_MLINK = 31,
00053   NFS4ERR_NAMETOOLONG = 63,
00054   NFS4ERR_NOTEMPTY = 66,
00055   NFS4ERR_DQUOT = 69,
00056   NFS4ERR_STALE = 70,
00057   NFS4ERR_BADHANDLE = 10001,
00058   NFS4ERR_BAD_COOKIE = 10003,
00059   NFS4ERR_NOTSUPP = 10004,
00060   NFS4ERR_TOOSMALL = 10005,
00061   NFS4ERR_SERVERFAULT = 10006,
00062   NFS4ERR_BADTYPE = 10007,
00063   NFS4ERR_DELAY = 10008,
00064   NFS4ERR_SAME = 10009,
00065   NFS4ERR_DENIED = 10010,
00066   NFS4ERR_EXPIRED = 10011,
00067   NFS4ERR_LOCKED = 10012,
00068   NFS4ERR_GRACE = 10013,
00069   NFS4ERR_FHEXPIRED = 10014,
00070   NFS4ERR_SHARE_DENIED = 10015,
00071   NFS4ERR_WRONGSEC = 10016,
00072   NFS4ERR_CLID_INUSE = 10017,
00073   NFS4ERR_RESOURCE = 10018,
00074   NFS4ERR_MOVED = 10019,
00075   NFS4ERR_NOFILEHANDLE = 10020,
00076   NFS4ERR_MINOR_VERS_MISMATCH = 10021,
00077   NFS4ERR_STALE_CLIENTID = 10022,
00078   NFS4ERR_STALE_STATEID = 10023,
00079   NFS4ERR_OLD_STATEID = 10024,
00080   NFS4ERR_BAD_STATEID = 10025,
00081   NFS4ERR_BAD_SEQID = 10026,
00082   NFS4ERR_NOT_SAME = 10027,
00083   NFS4ERR_LOCK_RANGE = 10028,
00084   NFS4ERR_SYMLINK = 10029,
00085   NFS4ERR_RESTOREFH = 10030,
00086   NFS4ERR_LEASE_MOVED = 10031,
00087   NFS4ERR_ATTRNOTSUPP = 10032,
00088   NFS4ERR_NO_GRACE = 10033,
00089   NFS4ERR_RECLAIM_BAD = 10034,
00090   NFS4ERR_RECLAIM_CONFLICT = 10035,
00091   NFS4ERR_BADXDR = 10036,
00092   NFS4ERR_LOCKS_HELD = 10037,
00093   NFS4ERR_OPENMODE = 10038,
00094   NFS4ERR_BADOWNER = 10039,
00095   NFS4ERR_BADCHAR = 10040,
00096   NFS4ERR_BADNAME = 10041,
00097   NFS4ERR_BAD_RANGE = 10042,
00098   NFS4ERR_LOCK_NOTSUPP = 10043,
00099   NFS4ERR_OP_ILLEGAL = 10044,
00100   NFS4ERR_DEADLOCK = 10045,
00101   NFS4ERR_FILE_OPEN = 10046,
00102   NFS4ERR_ADMIN_REVOKED = 10047,
00103   NFS4ERR_CB_PATH_DOWN = 10048
00104 };
00105 typedef enum nfsstat4 nfsstat4;
00106 
00107 typedef struct
00108 {
00109   u_int bitmap4_len;
00110   uint32_t *bitmap4_val;
00111 } bitmap4;
00112 
00113 typedef uint64_t offset4;
00114 
00115 typedef uint32_t count4;
00116 
00117 typedef uint64_t length4;
00118 
00119 typedef uint64_t clientid4;
00120 
00121 typedef uint32_t seqid4;
00122 
00123 typedef struct
00124 {
00125   u_int utf8string_len;
00126   char *utf8string_val;
00127 } utf8string;
00128 
00129 typedef utf8string utf8str_cis;
00130 
00131 typedef utf8string utf8str_cs;
00132 
00133 typedef utf8string utf8str_mixed;
00134 
00135 typedef utf8str_cs component4;
00136 
00137 typedef struct
00138 {
00139   u_int pathname4_len;
00140   component4 *pathname4_val;
00141 } pathname4;
00142 
00143 typedef uint64_t nfs_lockid4;
00144 
00145 typedef uint64_t nfs_cookie4;
00146 
00147 typedef utf8str_cs linktext4;
00148 
00149 typedef struct
00150 {
00151   u_int sec_oid4_len;
00152   char *sec_oid4_val;
00153 } sec_oid4;
00154 
00155 typedef uint32_t qop4;
00156 
00157 typedef uint32_t mode4;
00158 
00159 typedef uint64_t changeid4;
00160 
00161 typedef char verifier4[NFS4_VERIFIER_SIZE];
00162 
00163 struct nfstime4
00164 {
00165   int64_t seconds;
00166   uint32_t nseconds;
00167 };
00168 typedef struct nfstime4 nfstime4;
00169 
00170 enum time_how4
00171 {
00172   SET_TO_SERVER_TIME4 = 0,
00173   SET_TO_CLIENT_TIME4 = 1
00174 };
00175 typedef enum time_how4 time_how4;
00176 
00177 struct settime4
00178 {
00179   time_how4 set_it;
00180   union
00181   {
00182     nfstime4 time;
00183   } settime4_u;
00184 };
00185 typedef struct settime4 settime4;
00186 
00187 typedef struct
00188 {
00189   u_int nfs_fh4_len;
00190   char *nfs_fh4_val;
00191 } nfs_fh4;
00192 
00193 struct fsid4
00194 {
00195   uint64_t major;
00196   uint64_t minor;
00197 };
00198 typedef struct fsid4 fsid4;
00199 
00200 struct fs_location4
00201 {
00202   struct
00203   {
00204     u_int server_len;
00205     utf8str_cis *server_val;
00206   } server;
00207   pathname4 rootpath;
00208 };
00209 typedef struct fs_location4 fs_location4;
00210 
00211 struct fs_locations4
00212 {
00213   pathname4 fs_root;
00214   struct
00215   {
00216     u_int locations_len;
00217     fs_location4 *locations_val;
00218   } locations;
00219 };
00220 typedef struct fs_locations4 fs_locations4;
00221 #define ACL4_SUPPORT_ALLOW_ACL 0x00000001
00222 #define ACL4_SUPPORT_DENY_ACL 0x00000002
00223 #define ACL4_SUPPORT_AUDIT_ACL 0x00000004
00224 #define ACL4_SUPPORT_ALARM_ACL 0x00000008
00225 
00226 typedef uint32_t acetype4;
00227 #define ACE4_ACCESS_ALLOWED_ACE_TYPE 0x00000000
00228 #define ACE4_ACCESS_DENIED_ACE_TYPE 0x00000001
00229 #define ACE4_SYSTEM_AUDIT_ACE_TYPE 0x00000002
00230 #define ACE4_SYSTEM_ALARM_ACE_TYPE 0x00000003
00231 
00232 typedef uint32_t aceflag4;
00233 #define ACE4_FILE_INHERIT_ACE 0x00000001
00234 #define ACE4_DIRECTORY_INHERIT_ACE 0x00000002
00235 #define ACE4_NO_PROPAGATE_INHERIT_ACE 0x00000004
00236 #define ACE4_INHERIT_ONLY_ACE 0x00000008
00237 #define ACE4_SUCCESSFUL_ACCESS_ACE_FLAG 0x00000010
00238 #define ACE4_FAILED_ACCESS_ACE_FLAG 0x00000020
00239 #define ACE4_IDENTIFIER_GROUP 0x00000040
00240 
00241 typedef uint32_t acemask4;
00242 #define ACE4_READ_DATA 0x00000001
00243 #define ACE4_LIST_DIRECTORY 0x00000001
00244 #define ACE4_WRITE_DATA 0x00000002
00245 #define ACE4_ADD_FILE 0x00000002
00246 #define ACE4_APPEND_DATA 0x00000004
00247 #define ACE4_ADD_SUBDIRECTORY 0x00000004
00248 #define ACE4_READ_NAMED_ATTRS 0x00000008
00249 #define ACE4_WRITE_NAMED_ATTRS 0x00000010
00250 #define ACE4_EXECUTE 0x00000020
00251 #define ACE4_DELETE_CHILD 0x00000040
00252 #define ACE4_READ_ATTRIBUTES 0x00000080
00253 #define ACE4_WRITE_ATTRIBUTES 0x00000100
00254 #define ACE4_DELETE 0x00010000
00255 #define ACE4_READ_ACL 0x00020000
00256 #define ACE4_WRITE_ACL 0x00040000
00257 #define ACE4_WRITE_OWNER 0x00080000
00258 #define ACE4_SYNCHRONIZE 0x00100000
00259 #define ACE4_GENERIC_READ 0x00120081
00260 #define ACE4_GENERIC_WRITE 0x00160106
00261 #define ACE4_GENERIC_EXECUTE 0x001200A0
00262 
00263 struct nfsace4
00264 {
00265   acetype4 type;
00266   aceflag4 flag;
00267   acemask4 access_mask;
00268   utf8str_mixed who;
00269 };
00270 typedef struct nfsace4 nfsace4;
00271 #define MODE4_SUID 0x800
00272 #define MODE4_SGID 0x400
00273 #define MODE4_SVTX 0x200
00274 #define MODE4_RUSR 0x100
00275 #define MODE4_WUSR 0x080
00276 #define MODE4_XUSR 0x040
00277 #define MODE4_RGRP 0x020
00278 #define MODE4_WGRP 0x010
00279 #define MODE4_XGRP 0x008
00280 #define MODE4_ROTH 0x004
00281 #define MODE4_WOTH 0x002
00282 #define MODE4_XOTH 0x001
00283 
00284 struct specdata4
00285 {
00286   uint32_t specdata1;
00287   uint32_t specdata2;
00288 };
00289 typedef struct specdata4 specdata4;
00290 #define FH4_PERSISTENT 0x00000000
00291 #define FH4_NOEXPIRE_WITH_OPEN 0x00000001
00292 #define FH4_VOLATILE_ANY 0x00000002
00293 #define FH4_VOL_MIGRATION 0x00000004
00294 #define FH4_VOL_RENAME 0x00000008
00295 
00296 typedef bitmap4 fattr4_supported_attrs;
00297 
00298 typedef nfs_ftype4 fattr4_type;
00299 
00300 typedef uint32_t fattr4_fh_expire_type;
00301 
00302 typedef changeid4 fattr4_change;
00303 
00304 typedef uint64_t fattr4_size;
00305 
00306 typedef bool_t fattr4_link_support;
00307 
00308 typedef bool_t fattr4_symlink_support;
00309 
00310 typedef bool_t fattr4_named_attr;
00311 
00312 typedef fsid4 fattr4_fsid;
00313 
00314 typedef bool_t fattr4_unique_handles;
00315 
00316 typedef uint32_t fattr4_lease_time;
00317 
00318 typedef nfsstat4 fattr4_rdattr_error;
00319 
00320 typedef struct
00321 {
00322   u_int fattr4_acl_len;
00323   nfsace4 *fattr4_acl_val;
00324 } fattr4_acl;
00325 
00326 typedef uint32_t fattr4_aclsupport;
00327 
00328 typedef bool_t fattr4_archive;
00329 
00330 typedef bool_t fattr4_cansettime;
00331 
00332 typedef bool_t fattr4_case_insensitive;
00333 
00334 typedef bool_t fattr4_case_preserving;
00335 
00336 typedef bool_t fattr4_chown_restricted;
00337 
00338 typedef uint64_t fattr4_fileid;
00339 
00340 typedef uint64_t fattr4_files_avail;
00341 
00342 typedef nfs_fh4 fattr4_filehandle;
00343 
00344 typedef uint64_t fattr4_files_free;
00345 
00346 typedef uint64_t fattr4_files_total;
00347 
00348 typedef fs_locations4 fattr4_fs_locations;
00349 
00350 typedef bool_t fattr4_hidden;
00351 
00352 typedef bool_t fattr4_homogeneous;
00353 
00354 typedef uint64_t fattr4_maxfilesize;
00355 
00356 typedef uint32_t fattr4_maxlink;
00357 
00358 typedef uint32_t fattr4_maxname;
00359 
00360 typedef uint64_t fattr4_maxread;
00361 
00362 typedef uint64_t fattr4_maxwrite;
00363 
00364 typedef utf8str_cs fattr4_mimetype;
00365 
00366 typedef mode4 fattr4_mode;
00367 
00368 typedef uint64_t fattr4_mounted_on_fileid;
00369 
00370 typedef bool_t fattr4_no_trunc;
00371 
00372 typedef uint32_t fattr4_numlinks;
00373 
00374 typedef utf8str_mixed fattr4_owner;
00375 
00376 typedef utf8str_mixed fattr4_owner_group;
00377 
00378 typedef uint64_t fattr4_quota_avail_hard;
00379 
00380 typedef uint64_t fattr4_quota_avail_soft;
00381 
00382 typedef uint64_t fattr4_quota_used;
00383 
00384 typedef specdata4 fattr4_rawdev;
00385 
00386 typedef uint64_t fattr4_space_avail;
00387 
00388 typedef uint64_t fattr4_space_free;
00389 
00390 typedef uint64_t fattr4_space_total;
00391 
00392 typedef uint64_t fattr4_space_used;
00393 
00394 typedef bool_t fattr4_system;
00395 
00396 typedef nfstime4 fattr4_time_access;
00397 
00398 typedef settime4 fattr4_time_access_set;
00399 
00400 typedef nfstime4 fattr4_time_backup;
00401 
00402 typedef nfstime4 fattr4_time_create;
00403 
00404 typedef nfstime4 fattr4_time_delta;
00405 
00406 typedef nfstime4 fattr4_time_metadata;
00407 
00408 typedef nfstime4 fattr4_time_modify;
00409 
00410 typedef settime4 fattr4_time_modify_set;
00411 #define FATTR4_SUPPORTED_ATTRS 0
00412 #define FATTR4_TYPE 1
00413 #define FATTR4_FH_EXPIRE_TYPE 2
00414 #define FATTR4_CHANGE 3
00415 #define FATTR4_SIZE 4
00416 #define FATTR4_LINK_SUPPORT 5
00417 #define FATTR4_SYMLINK_SUPPORT 6
00418 #define FATTR4_NAMED_ATTR 7
00419 #define FATTR4_FSID 8
00420 #define FATTR4_UNIQUE_HANDLES 9
00421 #define FATTR4_LEASE_TIME 10
00422 #define FATTR4_RDATTR_ERROR 11
00423 #define FATTR4_FILEHANDLE 19
00424 #define FATTR4_ACL 12
00425 #define FATTR4_ACLSUPPORT 13
00426 #define FATTR4_ARCHIVE 14
00427 #define FATTR4_CANSETTIME 15
00428 #define FATTR4_CASE_INSENSITIVE 16
00429 #define FATTR4_CASE_PRESERVING 17
00430 #define FATTR4_CHOWN_RESTRICTED 18
00431 #define FATTR4_FILEID 20
00432 #define FATTR4_FILES_AVAIL 21
00433 #define FATTR4_FILES_FREE 22
00434 #define FATTR4_FILES_TOTAL 23
00435 #define FATTR4_FS_LOCATIONS 24
00436 #define FATTR4_HIDDEN 25
00437 #define FATTR4_HOMOGENEOUS 26
00438 #define FATTR4_MAXFILESIZE 27
00439 #define FATTR4_MAXLINK 28
00440 #define FATTR4_MAXNAME 29
00441 #define FATTR4_MAXREAD 30
00442 #define FATTR4_MAXWRITE 31
00443 #define FATTR4_MIMETYPE 32
00444 #define FATTR4_MODE 33
00445 #define FATTR4_NO_TRUNC 34
00446 #define FATTR4_NUMLINKS 35
00447 #define FATTR4_OWNER 36
00448 #define FATTR4_OWNER_GROUP 37
00449 #define FATTR4_QUOTA_AVAIL_HARD 38
00450 #define FATTR4_QUOTA_AVAIL_SOFT 39
00451 #define FATTR4_QUOTA_USED 40
00452 #define FATTR4_RAWDEV 41
00453 #define FATTR4_SPACE_AVAIL 42
00454 #define FATTR4_SPACE_FREE 43
00455 #define FATTR4_SPACE_TOTAL 44
00456 #define FATTR4_SPACE_USED 45
00457 #define FATTR4_SYSTEM 46
00458 #define FATTR4_TIME_ACCESS 47
00459 #define FATTR4_TIME_ACCESS_SET 48
00460 #define FATTR4_TIME_BACKUP 49
00461 #define FATTR4_TIME_CREATE 50
00462 #define FATTR4_TIME_DELTA 51
00463 #define FATTR4_TIME_METADATA 52
00464 #define FATTR4_TIME_MODIFY 53
00465 #define FATTR4_TIME_MODIFY_SET 54
00466 #define FATTR4_MOUNTED_ON_FILEID 55
00467 
00468 typedef struct
00469 {
00470   u_int attrlist4_len;
00471   char *attrlist4_val;
00472 } attrlist4;
00473 
00474 struct fattr4
00475 {
00476   bitmap4 attrmask;
00477   attrlist4 attr_vals;
00478 };
00479 typedef struct fattr4 fattr4;
00480 
00481 struct change_info4
00482 {
00483   bool_t atomic;
00484   changeid4 before;
00485   changeid4 after;
00486 };
00487 typedef struct change_info4 change_info4;
00488 
00489 struct clientaddr4
00490 {
00491   char *r_netid;
00492   char *r_addr;
00493 };
00494 typedef struct clientaddr4 clientaddr4;
00495 
00496 struct cb_client4
00497 {
00498   uint32_t cb_program;
00499   clientaddr4 cb_location;
00500 };
00501 typedef struct cb_client4 cb_client4;
00502 
00503 struct stateid4
00504 {
00505   uint32_t seqid;
00506   char other[12];
00507 };
00508 typedef struct stateid4 stateid4;
00509 
00510 struct nfs_client_id4
00511 {
00512   verifier4 verifier;
00513   struct
00514   {
00515     u_int id_len;
00516     char *id_val;
00517   } id;
00518 };
00519 typedef struct nfs_client_id4 nfs_client_id4;
00520 
00521 struct open_owner4
00522 {
00523   clientid4 clientid;
00524   struct
00525   {
00526     u_int owner_len;
00527     char *owner_val;
00528   } owner;
00529 };
00530 typedef struct open_owner4 open_owner4;
00531 
00532 struct lock_owner4
00533 {
00534   clientid4 clientid;
00535   struct
00536   {
00537     u_int owner_len;
00538     char *owner_val;
00539   } owner;
00540 };
00541 typedef struct lock_owner4 lock_owner4;
00542 
00543 enum nfs_lock_type4
00544 {
00545   READ_LT = 1,
00546   WRITE_LT = 2,
00547   READW_LT = 3,
00548   WRITEW_LT = 4
00549 };
00550 typedef enum nfs_lock_type4 nfs_lock_type4;
00551 #define ACCESS4_READ 0x00000001
00552 #define ACCESS4_LOOKUP 0x00000002
00553 #define ACCESS4_MODIFY 0x00000004
00554 #define ACCESS4_EXTEND 0x00000008
00555 #define ACCESS4_DELETE 0x00000010
00556 #define ACCESS4_EXECUTE 0x00000020
00557 
00558 struct ACCESS4args
00559 {
00560   uint32_t access;
00561 };
00562 typedef struct ACCESS4args ACCESS4args;
00563 
00564 struct ACCESS4resok
00565 {
00566   uint32_t supported;
00567   uint32_t access;
00568 };
00569 typedef struct ACCESS4resok ACCESS4resok;
00570 
00571 struct ACCESS4res
00572 {
00573   nfsstat4 status;
00574   union
00575   {
00576     ACCESS4resok resok4;
00577   } ACCESS4res_u;
00578 };
00579 typedef struct ACCESS4res ACCESS4res;
00580 
00581 struct CLOSE4args
00582 {
00583   seqid4 seqid;
00584   stateid4 open_stateid;
00585 };
00586 typedef struct CLOSE4args CLOSE4args;
00587 
00588 struct CLOSE4res
00589 {
00590   nfsstat4 status;
00591   union
00592   {
00593     stateid4 open_stateid;
00594   } CLOSE4res_u;
00595 };
00596 typedef struct CLOSE4res CLOSE4res;
00597 
00598 struct COMMIT4args
00599 {
00600   offset4 offset;
00601   count4 count;
00602 };
00603 typedef struct COMMIT4args COMMIT4args;
00604 
00605 struct COMMIT4resok
00606 {
00607   verifier4 writeverf;
00608 };
00609 typedef struct COMMIT4resok COMMIT4resok;
00610 
00611 struct COMMIT4res
00612 {
00613   nfsstat4 status;
00614   union
00615   {
00616     COMMIT4resok resok4;
00617   } COMMIT4res_u;
00618 };
00619 typedef struct COMMIT4res COMMIT4res;
00620 
00621 struct createtype4
00622 {
00623   nfs_ftype4 type;
00624   union
00625   {
00626     linktext4 linkdata;
00627     specdata4 devdata;
00628   } createtype4_u;
00629 };
00630 typedef struct createtype4 createtype4;
00631 
00632 struct CREATE4args
00633 {
00634   createtype4 objtype;
00635   component4 objname;
00636   fattr4 createattrs;
00637 };
00638 typedef struct CREATE4args CREATE4args;
00639 
00640 struct CREATE4resok
00641 {
00642   change_info4 cinfo;
00643   bitmap4 attrset;
00644 };
00645 typedef struct CREATE4resok CREATE4resok;
00646 
00647 struct CREATE4res
00648 {
00649   nfsstat4 status;
00650   union
00651   {
00652     CREATE4resok resok4;
00653   } CREATE4res_u;
00654 };
00655 typedef struct CREATE4res CREATE4res;
00656 
00657 struct DELEGPURGE4args
00658 {
00659   clientid4 clientid;
00660 };
00661 typedef struct DELEGPURGE4args DELEGPURGE4args;
00662 
00663 struct DELEGPURGE4res
00664 {
00665   nfsstat4 status;
00666 };
00667 typedef struct DELEGPURGE4res DELEGPURGE4res;
00668 
00669 struct DELEGRETURN4args
00670 {
00671   stateid4 deleg_stateid;
00672 };
00673 typedef struct DELEGRETURN4args DELEGRETURN4args;
00674 
00675 struct DELEGRETURN4res
00676 {
00677   nfsstat4 status;
00678 };
00679 typedef struct DELEGRETURN4res DELEGRETURN4res;
00680 
00681 struct GETATTR4args
00682 {
00683   bitmap4 attr_request;
00684 };
00685 typedef struct GETATTR4args GETATTR4args;
00686 
00687 struct GETATTR4resok
00688 {
00689   fattr4 obj_attributes;
00690 };
00691 typedef struct GETATTR4resok GETATTR4resok;
00692 
00693 struct GETATTR4res
00694 {
00695   nfsstat4 status;
00696   union
00697   {
00698     GETATTR4resok resok4;
00699   } GETATTR4res_u;
00700 };
00701 typedef struct GETATTR4res GETATTR4res;
00702 
00703 struct GETFH4resok
00704 {
00705   nfs_fh4 object;
00706 };
00707 typedef struct GETFH4resok GETFH4resok;
00708 
00709 struct GETFH4res
00710 {
00711   nfsstat4 status;
00712   union
00713   {
00714     GETFH4resok resok4;
00715   } GETFH4res_u;
00716 };
00717 typedef struct GETFH4res GETFH4res;
00718 
00719 struct LINK4args
00720 {
00721   component4 newname;
00722 };
00723 typedef struct LINK4args LINK4args;
00724 
00725 struct LINK4resok
00726 {
00727   change_info4 cinfo;
00728 };
00729 typedef struct LINK4resok LINK4resok;
00730 
00731 struct LINK4res
00732 {
00733   nfsstat4 status;
00734   union
00735   {
00736     LINK4resok resok4;
00737   } LINK4res_u;
00738 };
00739 typedef struct LINK4res LINK4res;
00740 
00741 struct open_to_lock_owner4
00742 {
00743   seqid4 open_seqid;
00744   stateid4 open_stateid;
00745   seqid4 lock_seqid;
00746   lock_owner4 lock_owner;
00747 };
00748 typedef struct open_to_lock_owner4 open_to_lock_owner4;
00749 
00750 struct exist_lock_owner4
00751 {
00752   stateid4 lock_stateid;
00753   seqid4 lock_seqid;
00754 };
00755 typedef struct exist_lock_owner4 exist_lock_owner4;
00756 
00757 struct locker4
00758 {
00759   bool_t new_lock_owner;
00760   union
00761   {
00762     open_to_lock_owner4 open_owner;
00763     exist_lock_owner4 lock_owner;
00764   } locker4_u;
00765 };
00766 typedef struct locker4 locker4;
00767 
00768 struct LOCK4args
00769 {
00770   nfs_lock_type4 locktype;
00771   bool_t reclaim;
00772   offset4 offset;
00773   length4 length;
00774   locker4 locker;
00775 };
00776 typedef struct LOCK4args LOCK4args;
00777 
00778 struct LOCK4denied
00779 {
00780   offset4 offset;
00781   length4 length;
00782   nfs_lock_type4 locktype;
00783   lock_owner4 owner;
00784 };
00785 typedef struct LOCK4denied LOCK4denied;
00786 
00787 struct LOCK4resok
00788 {
00789   stateid4 lock_stateid;
00790 };
00791 typedef struct LOCK4resok LOCK4resok;
00792 
00793 struct LOCK4res
00794 {
00795   nfsstat4 status;
00796   union
00797   {
00798     LOCK4resok resok4;
00799     LOCK4denied denied;
00800   } LOCK4res_u;
00801 };
00802 typedef struct LOCK4res LOCK4res;
00803 
00804 struct LOCKT4args
00805 {
00806   nfs_lock_type4 locktype;
00807   offset4 offset;
00808   length4 length;
00809   lock_owner4 owner;
00810 };
00811 typedef struct LOCKT4args LOCKT4args;
00812 
00813 struct LOCKT4res
00814 {
00815   nfsstat4 status;
00816   union
00817   {
00818     LOCK4denied denied;
00819   } LOCKT4res_u;
00820 };
00821 typedef struct LOCKT4res LOCKT4res;
00822 
00823 struct LOCKU4args
00824 {
00825   nfs_lock_type4 locktype;
00826   seqid4 seqid;
00827   stateid4 lock_stateid;
00828   offset4 offset;
00829   length4 length;
00830 };
00831 typedef struct LOCKU4args LOCKU4args;
00832 
00833 struct LOCKU4res
00834 {
00835   nfsstat4 status;
00836   union
00837   {
00838     stateid4 lock_stateid;
00839   } LOCKU4res_u;
00840 };
00841 typedef struct LOCKU4res LOCKU4res;
00842 
00843 struct LOOKUP4args
00844 {
00845   component4 objname;
00846 };
00847 typedef struct LOOKUP4args LOOKUP4args;
00848 
00849 struct LOOKUP4res
00850 {
00851   nfsstat4 status;
00852 };
00853 typedef struct LOOKUP4res LOOKUP4res;
00854 
00855 struct LOOKUPP4res
00856 {
00857   nfsstat4 status;
00858 };
00859 typedef struct LOOKUPP4res LOOKUPP4res;
00860 
00861 struct NVERIFY4args
00862 {
00863   fattr4 obj_attributes;
00864 };
00865 typedef struct NVERIFY4args NVERIFY4args;
00866 
00867 struct NVERIFY4res
00868 {
00869   nfsstat4 status;
00870 };
00871 typedef struct NVERIFY4res NVERIFY4res;
00872 
00873 enum createmode4
00874 {
00875   UNCHECKED4 = 0,
00876   GUARDED4 = 1,
00877   EXCLUSIVE4 = 2
00878 };
00879 typedef enum createmode4 createmode4;
00880 
00881 struct createhow4
00882 {
00883   createmode4 mode;
00884   union
00885   {
00886     fattr4 createattrs;
00887     verifier4 createverf;
00888   } createhow4_u;
00889 };
00890 typedef struct createhow4 createhow4;
00891 
00892 enum opentype4
00893 {
00894   OPEN4_NOCREATE = 0,
00895   OPEN4_CREATE = 1
00896 };
00897 typedef enum opentype4 opentype4;
00898 
00899 struct openflag4
00900 {
00901   opentype4 opentype;
00902   union
00903   {
00904     createhow4 how;
00905   } openflag4_u;
00906 };
00907 typedef struct openflag4 openflag4;
00908 
00909 enum limit_by4
00910 {
00911   NFS_LIMIT_SIZE = 1,
00912   NFS_LIMIT_BLOCKS = 2
00913 };
00914 typedef enum limit_by4 limit_by4;
00915 
00916 struct nfs_modified_limit4
00917 {
00918   uint32_t num_blocks;
00919   uint32_t bytes_per_block;
00920 };
00921 typedef struct nfs_modified_limit4 nfs_modified_limit4;
00922 
00923 struct nfs_space_limit4
00924 {
00925   limit_by4 limitby;
00926   union
00927   {
00928     uint64_t filesize;
00929     nfs_modified_limit4 mod_blocks;
00930   } nfs_space_limit4_u;
00931 };
00932 typedef struct nfs_space_limit4 nfs_space_limit4;
00933 #define OPEN4_SHARE_ACCESS_READ 0x00000001
00934 #define OPEN4_SHARE_ACCESS_WRITE 0x00000002
00935 #define OPEN4_SHARE_ACCESS_BOTH 0x00000003
00936 #define OPEN4_SHARE_DENY_NONE 0x00000000
00937 #define OPEN4_SHARE_DENY_READ 0x00000001
00938 #define OPEN4_SHARE_DENY_WRITE 0x00000002
00939 #define OPEN4_SHARE_DENY_BOTH 0x00000003
00940 
00941 enum open_delegation_type4
00942 {
00943   OPEN_DELEGATE_NONE = 0,
00944   OPEN_DELEGATE_READ = 1,
00945   OPEN_DELEGATE_WRITE = 2
00946 };
00947 typedef enum open_delegation_type4 open_delegation_type4;
00948 
00949 enum open_claim_type4
00950 {
00951   CLAIM_NULL = 0,
00952   CLAIM_PREVIOUS = 1,
00953   CLAIM_DELEGATE_CUR = 2,
00954   CLAIM_DELEGATE_PREV = 3
00955 };
00956 typedef enum open_claim_type4 open_claim_type4;
00957 
00958 struct open_claim_delegate_cur4
00959 {
00960   stateid4 delegate_stateid;
00961   component4 file;
00962 };
00963 typedef struct open_claim_delegate_cur4 open_claim_delegate_cur4;
00964 
00965 struct open_claim4
00966 {
00967   open_claim_type4 claim;
00968   union
00969   {
00970     component4 file;
00971     open_delegation_type4 delegate_type;
00972     open_claim_delegate_cur4 delegate_cur_info;
00973     component4 file_delegate_prev;
00974   } open_claim4_u;
00975 };
00976 typedef struct open_claim4 open_claim4;
00977 
00978 struct OPEN4args
00979 {
00980   seqid4 seqid;
00981   uint32_t share_access;
00982   uint32_t share_deny;
00983   open_owner4 owner;
00984   openflag4 openhow;
00985   open_claim4 claim;
00986 };
00987 typedef struct OPEN4args OPEN4args;
00988 
00989 struct open_read_delegation4
00990 {
00991   stateid4 stateid;
00992   bool_t recall;
00993   nfsace4 permissions;
00994 };
00995 typedef struct open_read_delegation4 open_read_delegation4;
00996 
00997 struct open_write_delegation4
00998 {
00999   stateid4 stateid;
01000   bool_t recall;
01001   nfs_space_limit4 space_limit;
01002   nfsace4 permissions;
01003 };
01004 typedef struct open_write_delegation4 open_write_delegation4;
01005 
01006 struct open_delegation4
01007 {
01008   open_delegation_type4 delegation_type;
01009   union
01010   {
01011     open_read_delegation4 read;
01012     open_write_delegation4 write;
01013   } open_delegation4_u;
01014 };
01015 typedef struct open_delegation4 open_delegation4;
01016 #define OPEN4_RESULT_CONFIRM 0x00000002
01017 #define OPEN4_RESULT_LOCKTYPE_POSIX 0x00000004
01018 
01019 struct OPEN4resok
01020 {
01021   stateid4 stateid;
01022   change_info4 cinfo;
01023   uint32_t rflags;
01024   bitmap4 attrset;
01025   open_delegation4 delegation;
01026 };
01027 typedef struct OPEN4resok OPEN4resok;
01028 
01029 struct OPEN4res
01030 {
01031   nfsstat4 status;
01032   union
01033   {
01034     OPEN4resok resok4;
01035   } OPEN4res_u;
01036 };
01037 typedef struct OPEN4res OPEN4res;
01038 
01039 struct OPENATTR4args
01040 {
01041   bool_t createdir;
01042 };
01043 typedef struct OPENATTR4args OPENATTR4args;
01044 
01045 struct OPENATTR4res
01046 {
01047   nfsstat4 status;
01048 };
01049 typedef struct OPENATTR4res OPENATTR4res;
01050 
01051 struct OPEN_CONFIRM4args
01052 {
01053   stateid4 open_stateid;
01054   seqid4 seqid;
01055 };
01056 typedef struct OPEN_CONFIRM4args OPEN_CONFIRM4args;
01057 
01058 struct OPEN_CONFIRM4resok
01059 {
01060   stateid4 open_stateid;
01061 };
01062 typedef struct OPEN_CONFIRM4resok OPEN_CONFIRM4resok;
01063 
01064 struct OPEN_CONFIRM4res
01065 {
01066   nfsstat4 status;
01067   union
01068   {
01069     OPEN_CONFIRM4resok resok4;
01070   } OPEN_CONFIRM4res_u;
01071 };
01072 typedef struct OPEN_CONFIRM4res OPEN_CONFIRM4res;
01073 
01074 struct OPEN_DOWNGRADE4args
01075 {
01076   stateid4 open_stateid;
01077   seqid4 seqid;
01078   uint32_t share_access;
01079   uint32_t share_deny;
01080 };
01081 typedef struct OPEN_DOWNGRADE4args OPEN_DOWNGRADE4args;
01082 
01083 struct OPEN_DOWNGRADE4resok
01084 {
01085   stateid4 open_stateid;
01086 };
01087 typedef struct OPEN_DOWNGRADE4resok OPEN_DOWNGRADE4resok;
01088 
01089 struct OPEN_DOWNGRADE4res
01090 {
01091   nfsstat4 status;
01092   union
01093   {
01094     OPEN_DOWNGRADE4resok resok4;
01095   } OPEN_DOWNGRADE4res_u;
01096 };
01097 typedef struct OPEN_DOWNGRADE4res OPEN_DOWNGRADE4res;
01098 
01099 struct PUTFH4args
01100 {
01101   nfs_fh4 object;
01102 };
01103 typedef struct PUTFH4args PUTFH4args;
01104 
01105 struct PUTFH4res
01106 {
01107   nfsstat4 status;
01108 };
01109 typedef struct PUTFH4res PUTFH4res;
01110 
01111 struct PUTPUBFH4res
01112 {
01113   nfsstat4 status;
01114 };
01115 typedef struct PUTPUBFH4res PUTPUBFH4res;
01116 
01117 struct PUTROOTFH4res
01118 {
01119   nfsstat4 status;
01120 };
01121 typedef struct PUTROOTFH4res PUTROOTFH4res;
01122 
01123 struct READ4args
01124 {
01125   stateid4 stateid;
01126   offset4 offset;
01127   count4 count;
01128 };
01129 typedef struct READ4args READ4args;
01130 
01131 struct READ4resok
01132 {
01133   bool_t eof;
01134   struct
01135   {
01136     u_int data_len;
01137     char *data_val;
01138   } data;
01139 };
01140 typedef struct READ4resok READ4resok;
01141 
01142 struct READ4res
01143 {
01144   nfsstat4 status;
01145   union
01146   {
01147     READ4resok resok4;
01148   } READ4res_u;
01149 };
01150 typedef struct READ4res READ4res;
01151 
01152 struct READDIR4args
01153 {
01154   nfs_cookie4 cookie;
01155   verifier4 cookieverf;
01156   count4 dircount;
01157   count4 maxcount;
01158   bitmap4 attr_request;
01159 };
01160 typedef struct READDIR4args READDIR4args;
01161 
01162 struct entry4
01163 {
01164   nfs_cookie4 cookie;
01165   component4 name;
01166   fattr4 attrs;
01167   struct entry4 *nextentry;
01168 };
01169 typedef struct entry4 entry4;
01170 
01171 struct dirlist4
01172 {
01173   entry4 *entries;
01174   bool_t eof;
01175 };
01176 typedef struct dirlist4 dirlist4;
01177 
01178 struct READDIR4resok
01179 {
01180   verifier4 cookieverf;
01181   dirlist4 reply;
01182 };
01183 typedef struct READDIR4resok READDIR4resok;
01184 
01185 struct READDIR4res
01186 {
01187   nfsstat4 status;
01188   union
01189   {
01190     READDIR4resok resok4;
01191   } READDIR4res_u;
01192 };
01193 typedef struct READDIR4res READDIR4res;
01194 
01195 struct READLINK4resok
01196 {
01197   linktext4 link;
01198 };
01199 typedef struct READLINK4resok READLINK4resok;
01200 
01201 struct READLINK4res
01202 {
01203   nfsstat4 status;
01204   union
01205   {
01206     READLINK4resok resok4;
01207   } READLINK4res_u;
01208 };
01209 typedef struct READLINK4res READLINK4res;
01210 
01211 struct REMOVE4args
01212 {
01213   component4 target;
01214 };
01215 typedef struct REMOVE4args REMOVE4args;
01216 
01217 struct REMOVE4resok
01218 {
01219   change_info4 cinfo;
01220 };
01221 typedef struct REMOVE4resok REMOVE4resok;
01222 
01223 struct REMOVE4res
01224 {
01225   nfsstat4 status;
01226   union
01227   {
01228     REMOVE4resok resok4;
01229   } REMOVE4res_u;
01230 };
01231 typedef struct REMOVE4res REMOVE4res;
01232 
01233 struct RENAME4args
01234 {
01235   component4 oldname;
01236   component4 newname;
01237 };
01238 typedef struct RENAME4args RENAME4args;
01239 
01240 struct RENAME4resok
01241 {
01242   change_info4 source_cinfo;
01243   change_info4 target_cinfo;
01244 };
01245 typedef struct RENAME4resok RENAME4resok;
01246 
01247 struct RENAME4res
01248 {
01249   nfsstat4 status;
01250   union
01251   {
01252     RENAME4resok resok4;
01253   } RENAME4res_u;
01254 };
01255 typedef struct RENAME4res RENAME4res;
01256 
01257 struct RENEW4args
01258 {
01259   clientid4 clientid;
01260 };
01261 typedef struct RENEW4args RENEW4args;
01262 
01263 struct RENEW4res
01264 {
01265   nfsstat4 status;
01266 };
01267 typedef struct RENEW4res RENEW4res;
01268 
01269 struct RESTOREFH4res
01270 {
01271   nfsstat4 status;
01272 };
01273 typedef struct RESTOREFH4res RESTOREFH4res;
01274 
01275 struct SAVEFH4res
01276 {
01277   nfsstat4 status;
01278 };
01279 typedef struct SAVEFH4res SAVEFH4res;
01280 
01281 struct SECINFO4args
01282 {
01283   component4 name;
01284 };
01285 typedef struct SECINFO4args SECINFO4args;
01286 
01287 struct rpcsec_gss_info
01288 {
01289   sec_oid4 oid;
01290   qop4 qop;
01291   rpc_gss_svc_t service;
01292 };
01293 typedef struct rpcsec_gss_info rpcsec_gss_info;
01294 
01295 struct secinfo4
01296 {
01297   uint32_t flavor;
01298   union
01299   {
01300     rpcsec_gss_info flavor_info;
01301   } secinfo4_u;
01302 };
01303 typedef struct secinfo4 secinfo4;
01304 
01305 typedef struct
01306 {
01307   u_int SECINFO4resok_len;
01308   secinfo4 *SECINFO4resok_val;
01309 } SECINFO4resok;
01310 
01311 struct SECINFO4res
01312 {
01313   nfsstat4 status;
01314   union
01315   {
01316     SECINFO4resok resok4;
01317   } SECINFO4res_u;
01318 };
01319 typedef struct SECINFO4res SECINFO4res;
01320 
01321 struct SETATTR4args
01322 {
01323   stateid4 stateid;
01324   fattr4 obj_attributes;
01325 };
01326 typedef struct SETATTR4args SETATTR4args;
01327 
01328 struct SETATTR4res
01329 {
01330   nfsstat4 status;
01331   bitmap4 attrsset;
01332 };
01333 typedef struct SETATTR4res SETATTR4res;
01334 
01335 struct SETCLIENTID4args
01336 {
01337   nfs_client_id4 client;
01338   cb_client4 callback;
01339   uint32_t callback_ident;
01340 };
01341 typedef struct SETCLIENTID4args SETCLIENTID4args;
01342 
01343 struct SETCLIENTID4resok
01344 {
01345   clientid4 clientid;
01346   verifier4 setclientid_confirm;
01347 };
01348 typedef struct SETCLIENTID4resok SETCLIENTID4resok;
01349 
01350 struct SETCLIENTID4res
01351 {
01352   nfsstat4 status;
01353   union
01354   {
01355     SETCLIENTID4resok resok4;
01356     clientaddr4 client_using;
01357   } SETCLIENTID4res_u;
01358 };
01359 typedef struct SETCLIENTID4res SETCLIENTID4res;
01360 
01361 struct SETCLIENTID_CONFIRM4args
01362 {
01363   clientid4 clientid;
01364   verifier4 setclientid_confirm;
01365 };
01366 typedef struct SETCLIENTID_CONFIRM4args SETCLIENTID_CONFIRM4args;
01367 
01368 struct SETCLIENTID_CONFIRM4res
01369 {
01370   nfsstat4 status;
01371 };
01372 typedef struct SETCLIENTID_CONFIRM4res SETCLIENTID_CONFIRM4res;
01373 
01374 struct VERIFY4args
01375 {
01376   fattr4 obj_attributes;
01377 };
01378 typedef struct VERIFY4args VERIFY4args;
01379 
01380 struct VERIFY4res
01381 {
01382   nfsstat4 status;
01383 };
01384 typedef struct VERIFY4res VERIFY4res;
01385 
01386 enum stable_how4
01387 {
01388   UNSTABLE4 = 0,
01389   DATA_SYNC4 = 1,
01390   FILE_SYNC4 = 2
01391 };
01392 typedef enum stable_how4 stable_how4;
01393 
01394 struct WRITE4args
01395 {
01396   stateid4 stateid;
01397   offset4 offset;
01398   stable_how4 stable;
01399   struct
01400   {
01401     u_int data_len;
01402     char *data_val;
01403   } data;
01404 };
01405 typedef struct WRITE4args WRITE4args;
01406 
01407 struct WRITE4resok
01408 {
01409   count4 count;
01410   stable_how4 committed;
01411   verifier4 writeverf;
01412 };
01413 typedef struct WRITE4resok WRITE4resok;
01414 
01415 struct WRITE4res
01416 {
01417   nfsstat4 status;
01418   union
01419   {
01420     WRITE4resok resok4;
01421   } WRITE4res_u;
01422 };
01423 typedef struct WRITE4res WRITE4res;
01424 
01425 struct RELEASE_LOCKOWNER4args
01426 {
01427   lock_owner4 lock_owner;
01428 };
01429 typedef struct RELEASE_LOCKOWNER4args RELEASE_LOCKOWNER4args;
01430 
01431 struct RELEASE_LOCKOWNER4res
01432 {
01433   nfsstat4 status;
01434 };
01435 typedef struct RELEASE_LOCKOWNER4res RELEASE_LOCKOWNER4res;
01436 
01437 struct ILLEGAL4res
01438 {
01439   nfsstat4 status;
01440 };
01441 typedef struct ILLEGAL4res ILLEGAL4res;
01442 
01443 enum nfs_opnum4
01444 {
01445   NFS4_OP_ACCESS = 3,
01446   NFS4_OP_CLOSE = 4,
01447   NFS4_OP_COMMIT = 5,
01448   NFS4_OP_CREATE = 6,
01449   NFS4_OP_DELEGPURGE = 7,
01450   NFS4_OP_DELEGRETURN = 8,
01451   NFS4_OP_GETATTR = 9,
01452   NFS4_OP_GETFH = 10,
01453   NFS4_OP_LINK = 11,
01454   NFS4_OP_LOCK = 12,
01455   NFS4_OP_LOCKT = 13,
01456   NFS4_OP_LOCKU = 14,
01457   NFS4_OP_LOOKUP = 15,
01458   NFS4_OP_LOOKUPP = 16,
01459   NFS4_OP_NVERIFY = 17,
01460   NFS4_OP_OPEN = 18,
01461   NFS4_OP_OPENATTR = 19,
01462   NFS4_OP_OPEN_CONFIRM = 20,
01463   NFS4_OP_OPEN_DOWNGRADE = 21,
01464   NFS4_OP_PUTFH = 22,
01465   NFS4_OP_PUTPUBFH = 23,
01466   NFS4_OP_PUTROOTFH = 24,
01467   NFS4_OP_READ = 25,
01468   NFS4_OP_READDIR = 26,
01469   NFS4_OP_READLINK = 27,
01470   NFS4_OP_REMOVE = 28,
01471   NFS4_OP_RENAME = 29,
01472   NFS4_OP_RENEW = 30,
01473   NFS4_OP_RESTOREFH = 31,
01474   NFS4_OP_SAVEFH = 32,
01475   NFS4_OP_SECINFO = 33,
01476   NFS4_OP_SETATTR = 34,
01477   NFS4_OP_SETCLIENTID = 35,
01478   NFS4_OP_SETCLIENTID_CONFIRM = 36,
01479   NFS4_OP_VERIFY = 37,
01480   NFS4_OP_WRITE = 38,
01481   NFS4_OP_RELEASE_LOCKOWNER = 39,
01482   NFS4_OP_ILLEGAL = 10044
01483 };
01484 typedef enum nfs_opnum4 nfs_opnum4;
01485 
01486 struct nfs_argop4
01487 {
01488   nfs_opnum4 argop;
01489   union
01490   {
01491     ACCESS4args opaccess;
01492     CLOSE4args opclose;
01493     COMMIT4args opcommit;
01494     CREATE4args opcreate;
01495     DELEGPURGE4args opdelegpurge;
01496     DELEGRETURN4args opdelegreturn;
01497     GETATTR4args opgetattr;
01498     LINK4args oplink;
01499     LOCK4args oplock;
01500     LOCKT4args oplockt;
01501     LOCKU4args oplocku;
01502     LOOKUP4args oplookup;
01503     NVERIFY4args opnverify;
01504     OPEN4args opopen;
01505     OPENATTR4args opopenattr;
01506     OPEN_CONFIRM4args opopen_confirm;
01507     OPEN_DOWNGRADE4args opopen_downgrade;
01508     PUTFH4args opputfh;
01509     READ4args opread;
01510     READDIR4args opreaddir;
01511     REMOVE4args opremove;
01512     RENAME4args oprename;
01513     RENEW4args oprenew;
01514     SECINFO4args opsecinfo;
01515     SETATTR4args opsetattr;
01516     SETCLIENTID4args opsetclientid;
01517     SETCLIENTID_CONFIRM4args opsetclientid_confirm;
01518     VERIFY4args opverify;
01519     WRITE4args opwrite;
01520     RELEASE_LOCKOWNER4args oprelease_lockowner;
01521     char padding[1024];              
01522   } nfs_argop4_u;
01523 };
01524 typedef struct nfs_argop4 nfs_argop4;
01525 
01526 struct nfs_resop4
01527 {
01528   nfs_opnum4 resop;
01529   union
01530   {
01531     ACCESS4res opaccess;
01532     CLOSE4res opclose;
01533     COMMIT4res opcommit;
01534     CREATE4res opcreate;
01535     DELEGPURGE4res opdelegpurge;
01536     DELEGRETURN4res opdelegreturn;
01537     GETATTR4res opgetattr;
01538     GETFH4res opgetfh;
01539     LINK4res oplink;
01540     LOCK4res oplock;
01541     LOCKT4res oplockt;
01542     LOCKU4res oplocku;
01543     LOOKUP4res oplookup;
01544     LOOKUPP4res oplookupp;
01545     NVERIFY4res opnverify;
01546     OPEN4res opopen;
01547     OPENATTR4res opopenattr;
01548     OPEN_CONFIRM4res opopen_confirm;
01549     OPEN_DOWNGRADE4res opopen_downgrade;
01550     PUTFH4res opputfh;
01551     PUTPUBFH4res opputpubfh;
01552     PUTROOTFH4res opputrootfh;
01553     READ4res opread;
01554     READDIR4res opreaddir;
01555     READLINK4res opreadlink;
01556     REMOVE4res opremove;
01557     RENAME4res oprename;
01558     RENEW4res oprenew;
01559     RESTOREFH4res oprestorefh;
01560     SAVEFH4res opsavefh;
01561     SECINFO4res opsecinfo;
01562     SETATTR4res opsetattr;
01563     SETCLIENTID4res opsetclientid;
01564     SETCLIENTID_CONFIRM4res opsetclientid_confirm;
01565     VERIFY4res opverify;
01566     WRITE4res opwrite;
01567     RELEASE_LOCKOWNER4res oprelease_lockowner;
01568     ILLEGAL4res opillegal;
01569   } nfs_resop4_u;
01570 };
01571 typedef struct nfs_resop4 nfs_resop4;
01572 
01573 struct COMPOUND4args
01574 {
01575   utf8str_cs tag;
01576   uint32_t minorversion;
01577   struct
01578   {
01579     u_int argarray_len;
01580     nfs_argop4 *argarray_val;
01581   } argarray;
01582 };
01583 typedef struct COMPOUND4args COMPOUND4args;
01584 
01585 struct COMPOUND4res
01586 {
01587   nfsstat4 status;
01588   utf8str_cs tag;
01589   struct
01590   {
01591     u_int resarray_len;
01592     nfs_resop4 *resarray_val;
01593   } resarray;
01594 };
01595 typedef struct COMPOUND4res COMPOUND4res;
01596 
01597 struct CB_GETATTR4args
01598 {
01599   nfs_fh4 fh;
01600   bitmap4 attr_request;
01601 };
01602 typedef struct CB_GETATTR4args CB_GETATTR4args;
01603 
01604 struct CB_GETATTR4resok
01605 {
01606   fattr4 obj_attributes;
01607 };
01608 typedef struct CB_GETATTR4resok CB_GETATTR4resok;
01609 
01610 struct CB_GETATTR4res
01611 {
01612   nfsstat4 status;
01613   union
01614   {
01615     CB_GETATTR4resok resok4;
01616   } CB_GETATTR4res_u;
01617 };
01618 typedef struct CB_GETATTR4res CB_GETATTR4res;
01619 
01620 struct CB_RECALL4args
01621 {
01622   stateid4 stateid;
01623   bool_t truncate;
01624   nfs_fh4 fh;
01625 };
01626 typedef struct CB_RECALL4args CB_RECALL4args;
01627 
01628 struct CB_RECALL4res
01629 {
01630   nfsstat4 status;
01631 };
01632 typedef struct CB_RECALL4res CB_RECALL4res;
01633 
01634 struct CB_ILLEGAL4res
01635 {
01636   nfsstat4 status;
01637 };
01638 typedef struct CB_ILLEGAL4res CB_ILLEGAL4res;
01639 
01640 enum nfs_cb_opnum4
01641 {
01642   NFS4_OP_CB_GETATTR = 3,
01643   NFS4_OP_CB_RECALL = 4,
01644   NFS4_OP_CB_ILLEGAL = 10044
01645 };
01646 typedef enum nfs_cb_opnum4 nfs_cb_opnum4;
01647 
01648 struct nfs_cb_argop4
01649 {
01650   u_int argop;
01651   union
01652   {
01653     CB_GETATTR4args opcbgetattr;
01654     CB_RECALL4args opcbrecall;
01655   } nfs_cb_argop4_u;
01656 };
01657 typedef struct nfs_cb_argop4 nfs_cb_argop4;
01658 
01659 struct nfs_cb_resop4
01660 {
01661   u_int resop;
01662   union
01663   {
01664     CB_GETATTR4res opcbgetattr;
01665     CB_RECALL4res opcbrecall;
01666     CB_ILLEGAL4res opcbillegal;
01667   } nfs_cb_resop4_u;
01668 };
01669 typedef struct nfs_cb_resop4 nfs_cb_resop4;
01670 
01671 struct CB_COMPOUND4args
01672 {
01673   utf8str_cs tag;
01674   uint32_t minorversion;
01675   uint32_t callback_ident;
01676   struct
01677   {
01678     u_int argarray_len;
01679     nfs_cb_argop4 *argarray_val;
01680   } argarray;
01681 };
01682 typedef struct CB_COMPOUND4args CB_COMPOUND4args;
01683 
01684 struct CB_COMPOUND4res
01685 {
01686   nfsstat4 status;
01687   utf8str_cs tag;
01688   struct
01689   {
01690     u_int resarray_len;
01691     nfs_cb_resop4 *resarray_val;
01692   } resarray;
01693 };
01694 typedef struct CB_COMPOUND4res CB_COMPOUND4res;
01695 
01696 #define NFS4_PROGRAM    100003
01697 #define NFS_V4  4
01698 #define NFSPROC4_NULL   0
01699 #define NFSPROC4_COMPOUND       1
01700 
01701 #define NFS4_CALLBACK   0x40000000
01702 #define NFS_CB  1
01703 #define CB_NULL 0
01704 #define CB_COMPOUND     1
01705 
01706 #ifndef _USE_SWIG
01707 /* the xdr functions */
01708 extern bool_t xdr_int32_t();
01709 extern bool_t xdr_uint32_t();
01710 extern bool_t xdr_int64_t();
01711 extern bool_t xdr_uint64_t();
01712 extern bool_t xdr_nfs_ftype4();
01713 extern bool_t xdr_nfsstat4();
01714 extern bool_t xdr_bitmap4();
01715 extern bool_t xdr_offset4();
01716 extern bool_t xdr_count4();
01717 extern bool_t xdr_length4();
01718 extern bool_t xdr_clientid4();
01719 extern bool_t xdr_seqid4();
01720 extern bool_t xdr_utf8string();
01721 extern bool_t xdr_utf8str_cis();
01722 extern bool_t xdr_utf8str_cs();
01723 extern bool_t xdr_utf8str_mixed();
01724 extern bool_t xdr_component4();
01725 extern bool_t xdr_pathname4();
01726 extern bool_t xdr_nfs_lockid4();
01727 extern bool_t xdr_nfs_cookie4();
01728 extern bool_t xdr_linktext4();
01729 extern bool_t xdr_sec_oid4();
01730 extern bool_t xdr_qop4();
01731 extern bool_t xdr_mode4();
01732 extern bool_t xdr_changeid4();
01733 extern bool_t xdr_verifier4();
01734 extern bool_t xdr_nfstime4();
01735 extern bool_t xdr_time_how4();
01736 extern bool_t xdr_settime4();
01737 extern bool_t xdr_nfs_fh4();
01738 extern bool_t xdr_fsid4();
01739 extern bool_t xdr_fs_location4();
01740 extern bool_t xdr_fs_locations4();
01741 extern bool_t xdr_acetype4();
01742 extern bool_t xdr_aceflag4();
01743 extern bool_t xdr_acemask4();
01744 extern bool_t xdr_nfsace4();
01745 extern bool_t xdr_specdata4();
01746 extern bool_t xdr_fattr4_supported_attrs();
01747 extern bool_t xdr_fattr4_type();
01748 extern bool_t xdr_fattr4_fh_expire_type();
01749 extern bool_t xdr_fattr4_change();
01750 extern bool_t xdr_fattr4_size();
01751 extern bool_t xdr_fattr4_link_support();
01752 extern bool_t xdr_fattr4_symlink_support();
01753 extern bool_t xdr_fattr4_named_attr();
01754 extern bool_t xdr_fattr4_fsid();
01755 extern bool_t xdr_fattr4_unique_handles();
01756 extern bool_t xdr_fattr4_lease_time();
01757 extern bool_t xdr_fattr4_rdattr_error();
01758 extern bool_t xdr_fattr4_acl();
01759 extern bool_t xdr_fattr4_aclsupport();
01760 extern bool_t xdr_fattr4_archive();
01761 extern bool_t xdr_fattr4_cansettime();
01762 extern bool_t xdr_fattr4_case_insensitive();
01763 extern bool_t xdr_fattr4_case_preserving();
01764 extern bool_t xdr_fattr4_chown_restricted();
01765 extern bool_t xdr_fattr4_fileid();
01766 extern bool_t xdr_fattr4_files_avail();
01767 extern bool_t xdr_fattr4_filehandle();
01768 extern bool_t xdr_fattr4_files_free();
01769 extern bool_t xdr_fattr4_files_total();
01770 extern bool_t xdr_fattr4_fs_locations();
01771 extern bool_t xdr_fattr4_hidden();
01772 extern bool_t xdr_fattr4_homogeneous();
01773 extern bool_t xdr_fattr4_maxfilesize();
01774 extern bool_t xdr_fattr4_maxlink();
01775 extern bool_t xdr_fattr4_maxname();
01776 extern bool_t xdr_fattr4_maxread();
01777 extern bool_t xdr_fattr4_maxwrite();
01778 extern bool_t xdr_fattr4_mimetype();
01779 extern bool_t xdr_fattr4_mode();
01780 extern bool_t xdr_fattr4_mounted_on_fileid();
01781 extern bool_t xdr_fattr4_no_trunc();
01782 extern bool_t xdr_fattr4_numlinks();
01783 extern bool_t xdr_fattr4_owner();
01784 extern bool_t xdr_fattr4_owner_group();
01785 extern bool_t xdr_fattr4_quota_avail_hard();
01786 extern bool_t xdr_fattr4_quota_avail_soft();
01787 extern bool_t xdr_fattr4_quota_used();
01788 extern bool_t xdr_fattr4_rawdev();
01789 extern bool_t xdr_fattr4_space_avail();
01790 extern bool_t xdr_fattr4_space_free();
01791 extern bool_t xdr_fattr4_space_total();
01792 extern bool_t xdr_fattr4_space_used();
01793 extern bool_t xdr_fattr4_system();
01794 extern bool_t xdr_fattr4_time_access();
01795 extern bool_t xdr_fattr4_time_access_set();
01796 extern bool_t xdr_fattr4_time_backup();
01797 extern bool_t xdr_fattr4_time_create();
01798 extern bool_t xdr_fattr4_time_delta();
01799 extern bool_t xdr_fattr4_time_metadata();
01800 extern bool_t xdr_fattr4_time_modify();
01801 extern bool_t xdr_fattr4_time_modify_set();
01802 extern bool_t xdr_attrlist4();
01803 extern bool_t xdr_fattr4();
01804 extern bool_t xdr_change_info4();
01805 extern bool_t xdr_clientaddr4();
01806 extern bool_t xdr_cb_client4();
01807 extern bool_t xdr_stateid4();
01808 extern bool_t xdr_nfs_client_id4();
01809 extern bool_t xdr_open_owner4();
01810 extern bool_t xdr_lock_owner4();
01811 extern bool_t xdr_nfs_lock_type4();
01812 extern bool_t xdr_ACCESS4args();
01813 extern bool_t xdr_ACCESS4resok();
01814 extern bool_t xdr_ACCESS4res();
01815 extern bool_t xdr_CLOSE4args();
01816 extern bool_t xdr_CLOSE4res();
01817 extern bool_t xdr_COMMIT4args();
01818 extern bool_t xdr_COMMIT4resok();
01819 extern bool_t xdr_COMMIT4res();
01820 extern bool_t xdr_createtype4();
01821 extern bool_t xdr_CREATE4args();
01822 extern bool_t xdr_CREATE4resok();
01823 extern bool_t xdr_CREATE4res();
01824 extern bool_t xdr_DELEGPURGE4args();
01825 extern bool_t xdr_DELEGPURGE4res();
01826 extern bool_t xdr_DELEGRETURN4args();
01827 extern bool_t xdr_DELEGRETURN4res();
01828 extern bool_t xdr_GETATTR4args();
01829 extern bool_t xdr_GETATTR4resok();
01830 extern bool_t xdr_GETATTR4res();
01831 extern bool_t xdr_GETFH4resok();
01832 extern bool_t xdr_GETFH4res();
01833 extern bool_t xdr_LINK4args();
01834 extern bool_t xdr_LINK4resok();
01835 extern bool_t xdr_LINK4res();
01836 extern bool_t xdr_open_to_lock_owner4();
01837 extern bool_t xdr_exist_lock_owner4();
01838 extern bool_t xdr_locker4();
01839 extern bool_t xdr_LOCK4args();
01840 extern bool_t xdr_LOCK4denied();
01841 extern bool_t xdr_LOCK4resok();
01842 extern bool_t xdr_LOCK4res();
01843 extern bool_t xdr_LOCKT4args();
01844 extern bool_t xdr_LOCKT4res();
01845 extern bool_t xdr_LOCKU4args();
01846 extern bool_t xdr_LOCKU4res();
01847 extern bool_t xdr_LOOKUP4args();
01848 extern bool_t xdr_LOOKUP4res();
01849 extern bool_t xdr_LOOKUPP4res();
01850 extern bool_t xdr_NVERIFY4args();
01851 extern bool_t xdr_NVERIFY4res();
01852 extern bool_t xdr_createmode4();
01853 extern bool_t xdr_createhow4();
01854 extern bool_t xdr_opentype4();
01855 extern bool_t xdr_openflag4();
01856 extern bool_t xdr_limit_by4();
01857 extern bool_t xdr_nfs_modified_limit4();
01858 extern bool_t xdr_nfs_space_limit4();
01859 extern bool_t xdr_open_delegation_type4();
01860 extern bool_t xdr_open_claim_type4();
01861 extern bool_t xdr_open_claim_delegate_cur4();
01862 extern bool_t xdr_open_claim4();
01863 extern bool_t xdr_OPEN4args();
01864 extern bool_t xdr_open_read_delegation4();
01865 extern bool_t xdr_open_write_delegation4();
01866 extern bool_t xdr_open_delegation4();
01867 extern bool_t xdr_OPEN4resok();
01868 extern bool_t xdr_OPEN4res();
01869 extern bool_t xdr_OPENATTR4args();
01870 extern bool_t xdr_OPENATTR4res();
01871 extern bool_t xdr_OPEN_CONFIRM4args();
01872 extern bool_t xdr_OPEN_CONFIRM4resok();
01873 extern bool_t xdr_OPEN_CONFIRM4res();
01874 extern bool_t xdr_OPEN_DOWNGRADE4args();
01875 extern bool_t xdr_OPEN_DOWNGRADE4resok();
01876 extern bool_t xdr_OPEN_DOWNGRADE4res();
01877 extern bool_t xdr_PUTFH4args();
01878 extern bool_t xdr_PUTFH4res();
01879 extern bool_t xdr_PUTPUBFH4res();
01880 extern bool_t xdr_PUTROOTFH4res();
01881 extern bool_t xdr_READ4args();
01882 extern bool_t xdr_READ4resok();
01883 extern bool_t xdr_READ4res();
01884 extern bool_t xdr_READDIR4args();
01885 extern bool_t xdr_entry4();
01886 extern bool_t xdr_dirlist4();
01887 extern bool_t xdr_READDIR4resok();
01888 extern bool_t xdr_READDIR4res();
01889 extern bool_t xdr_READLINK4resok();
01890 extern bool_t xdr_READLINK4res();
01891 extern bool_t xdr_REMOVE4args();
01892 extern bool_t xdr_REMOVE4resok();
01893 extern bool_t xdr_REMOVE4res();
01894 extern bool_t xdr_RENAME4args();
01895 extern bool_t xdr_RENAME4resok();
01896 extern bool_t xdr_RENAME4res();
01897 extern bool_t xdr_RENEW4args();
01898 extern bool_t xdr_RENEW4res();
01899 extern bool_t xdr_RESTOREFH4res();
01900 extern bool_t xdr_SAVEFH4res();
01901 extern bool_t xdr_SECINFO4args();
01902 extern bool_t xdr_rpc_gss_svc_t();
01903 extern bool_t xdr_rpcsec_gss_info();
01904 extern bool_t xdr_secinfo4();
01905 extern bool_t xdr_SECINFO4resok();
01906 extern bool_t xdr_SECINFO4res();
01907 extern bool_t xdr_SETATTR4args();
01908 extern bool_t xdr_SETATTR4res();
01909 extern bool_t xdr_SETCLIENTID4args();
01910 extern bool_t xdr_SETCLIENTID4resok();
01911 extern bool_t xdr_SETCLIENTID4res();
01912 extern bool_t xdr_SETCLIENTID_CONFIRM4args();
01913 extern bool_t xdr_SETCLIENTID_CONFIRM4res();
01914 extern bool_t xdr_VERIFY4args();
01915 extern bool_t xdr_VERIFY4res();
01916 extern bool_t xdr_stable_how4();
01917 extern bool_t xdr_WRITE4args();
01918 extern bool_t xdr_WRITE4resok();
01919 extern bool_t xdr_WRITE4res();
01920 extern bool_t xdr_RELEASE_LOCKOWNER4args();
01921 extern bool_t xdr_RELEASE_LOCKOWNER4res();
01922 extern bool_t xdr_ILLEGAL4res();
01923 extern bool_t xdr_nfs_opnum4();
01924 extern bool_t xdr_nfs_argop4();
01925 extern bool_t xdr_nfs_resop4();
01926 extern bool_t xdr_COMPOUND4args();
01927 extern bool_t xdr_COMPOUND4res();
01928 extern bool_t xdr_CB_GETATTR4args();
01929 extern bool_t xdr_CB_GETATTR4resok();
01930 extern bool_t xdr_CB_GETATTR4res();
01931 extern bool_t xdr_CB_RECALL4args();
01932 extern bool_t xdr_CB_RECALL4res();
01933 extern bool_t xdr_CB_ILLEGAL4res();
01934 extern bool_t xdr_nfs_cb_opnum4();
01935 extern bool_t xdr_nfs_cb_argop4();
01936 extern bool_t xdr_nfs_cb_resop4();
01937 extern bool_t xdr_CB_COMPOUND4args();
01938 extern bool_t xdr_CB_COMPOUND4res();
01939 #endif                          /* SWIG */
01940 
01941 #endif                          /* !_NFS4_H_RPCGEN */