/// union createhow4 switch (createmode4 mode) { /// case UNCHECKED4: /// case GUARDED4: /// fattr4 createattrs; /// case EXCLUSIVE4: /// verifier4 createverf; /// case EXCLUSIVE4_1: /// creatverfattr ch_createboth; /// }; /// /// enum opentype4 { /// OPEN4_NOCREATE = 0, /// OPEN4_CREATE = 1 /// }; /// /// union openflag4 switch (opentype4 opentype) { /// case OPEN4_CREATE: /// createhow4 how; /// default: /// void; /// }; /// /// /* Next definitions used for OPEN delegation */ /// enum limit_by4 { /// NFS_LIMIT_SIZE = 1, /// NFS_LIMIT_BLOCKS = 2 /// /* Others as needed */ /// }; /// /// struct nfs_modified_limit4 { /// uint32_t num_blocks; /// uint32_t bytes_per_block; /// }; /// /// union nfs_space_limit4 switch (limit_by4 limitby) { /// /* Limit specified as file size */ /// case NFS_LIMIT_SIZE: /// uint64_t filesize; /// /* Limit specified by number of blocks */ /// case NFS_LIMIT_BLOCKS: /// nfs_modified_limit4 mod_blocks; /// }; ///
/// /* /// * Share Access and Deny constants for open argument /// */ /// const OPEN4_SHARE_ACCESS_READ = 0x00000001; /// const OPEN4_SHARE_ACCESS_WRITE = 0x00000002; /// const OPEN4_SHARE_ACCESS_BOTH = 0x00000003; /// /// const OPEN4_SHARE_DENY_NONE = 0x00000000; /// const OPEN4_SHARE_DENY_READ = 0x00000001; /// const OPEN4_SHARE_DENY_WRITE = 0x00000002; /// const OPEN4_SHARE_DENY_BOTH = 0x00000003; /// /// /// /* New flags for share_access field of OPEN4args */ /// const OPEN4_SHARE_ACCESS_WANT_DELEG_MASK = 0xFF00; /// const OPEN4_SHARE_ACCESS_WANT_NO_PREFERENCE = 0x0000; /// const OPEN4_SHARE_ACCESS_WANT_READ_DELEG = 0x0100; /// const OPEN4_SHARE_ACCESS_WANT_WRITE_DELEG = 0x0200; /// const OPEN4_SHARE_ACCESS_WANT_ANY_DELEG = 0x0300; /// const OPEN4_SHARE_ACCESS_WANT_NO_DELEG = 0x0400; /// const OPEN4_SHARE_ACCESS_WANT_CANCEL = 0x0500; /// /// const /// OPEN4_SHARE_ACCESS_WANT_SIGNAL_DELEG_WHEN_RESRC_AVAIL /// = 0x10000; /// /// const /// OPEN4_SHARE_ACCESS_WANT_PUSH_DELEG_WHEN_UNCONTENDED /// = 0x20000; /// /// enum open_delegation_type4 { /// OPEN_DELEGATE_NONE = 0, /// OPEN_DELEGATE_READ = 1, /// OPEN_DELEGATE_WRITE = 2, /// OPEN_DELEGATE_NONE_EXT = 3 /* New to NFSv4.1 */ /// }; ///
/// enum open_claim_type4 { /// /* /// * Not a reclaim /// */ /// CLAIM_NULL = 0, /// /// CLAIM_PREVIOUS = 1, /// CLAIM_DELEGATE_CUR = 2, /// CLAIM_DELEGATE_PREV = 3, /// /// /* /// * Not a reclaim /// * /// * Like CLAIM_NULL, but object identified /// * by the current filehandle /// */ /// CLAIM_FH = 4, /* New to NFSv4.1 */ /// /// /* /// * Like CLAIM_DELEGATE_CUR, but object identified /// * by current filehandle /// */ /// CLAIM_DELEG_CUR_FH = 5, /* New to NFSv4.1 */ /// /// /* /// * Like CLAIM_DELEGATE_PREV, but object identified /// * by current filehandle /// */ /// CLAIM_DELEG_PREV_FH = 6 /* New to NFSv4.1 */ /// }; /// /// struct open_claim_delegate_cur4 { /// stateid4 delegate_stateid; /// component4 file; /// }; /// /// union open_claim4 switch (open_claim_type4 claim) { /// /* /// * No special rights to file. /// * Ordinary OPEN of the specified file. /// */ /// case CLAIM_NULL: /// /* CURRENT_FH: directory */ /// component4 file;
/// /* /// * Right to the file established by an /// * open previous to server reboot. File /// * identified by filehandle obtained at /// * that time rather than by name. /// */ /// case CLAIM_PREVIOUS: /// /* CURRENT_FH: file being reclaimed */ /// open_delegation_type4 delegate_type; /// /// /* /// * Right to file based on a delegation /// * granted by the server. File is /// * specified by name. /// */ /// case CLAIM_DELEGATE_CUR: /// /* CURRENT_FH: directory */ /// open_claim_delegate_cur4 delegate_cur_info; /// /// /* /// * Right to file based on a delegation /// * granted to a previous boot instance /// * of the client. File is specified by name. /// */ /// case CLAIM_DELEGATE_PREV: /// /* CURRENT_FH: directory */ /// component4 file_delegate_prev; /// /// /* /// * Like CLAIM_NULL. No special rights /// * to file. Ordinary OPEN of the /// * specified file by current filehandle. /// */ /// case CLAIM_FH: /* New to NFSv4.1 */ /// /* CURRENT_FH: regular file to open */ /// void; /// /// /* /// * Like CLAIM_DELEGATE_PREV. Right to file based on a /// * delegation granted to a previous boot /// * instance of the client. File is identified /// * by filehandle. /// */ /// case CLAIM_DELEG_PREV_FH: /* New to NFSv4.1 */ /// /* CURRENT_FH: file being opened */ /// void; ///
/// /* /// * Like CLAIM_DELEGATE_CUR. Right to file based on /// * a delegation granted by the server. /// * File is identified by filehandle. /// */ /// case CLAIM_DELEG_CUR_FH: /* New to NFSv4.1 */ /// /* CURRENT_FH: file being opened */ /// stateid4 oc_delegate_stateid; /// /// }; /// /// /* /// * OPEN: Open a file, potentially receiving an open delegation. /// */ /// struct OPEN4args { /// seqid4 seqid; /// uint32_t share_access; /// uint32_t share_deny; /// open_owner4 owner; /// openflag4 openhow; /// open_claim4 claim; /// }; /// /// struct open_read_delegation4 { /// stateid4 stateid; /* Stateid for delegation */ /// bool recall; /* Pre-recalled flag for /// delegations obtained /// by reclaim (CLAIM_PREVIOUS) */ /// /// nfsace4 permissions; /* Defines users who don't /// need an ACCESS call to /// open for read */ /// }; /// /// struct open_write_delegation4 { /// stateid4 stateid; /* Stateid for delegation */ /// bool recall; /* Pre-recalled flag for /// delegations obtained /// by reclaim /// (CLAIM_PREVIOUS) */ /// /// nfs_space_limit4 /// space_limit; /* Defines condition that /// the client must check to /// determine whether the /// file needs to be flushed /// to the server on close */ ///
/// nfsace4 permissions; /* Defines users who don't /// need an ACCESS call as /// part of a delegated /// open */ /// }; /// /// /// enum why_no_delegation4 { /* New to NFSv4.1 */ /// WND4_NOT_WANTED = 0, /// WND4_CONTENTION = 1, /// WND4_RESOURCE = 2, /// WND4_NOT_SUPP_FTYPE = 3, /// WND4_WRITE_DELEG_NOT_SUPP_FTYPE = 4, /// WND4_NOT_SUPP_UPGRADE = 5, /// WND4_NOT_SUPP_DOWNGRADE = 6, /// WND4_CANCELLED = 7, /// WND4_IS_DIR = 8 /// }; /// /// union open_none_delegation4 /* New to NFSv4.1 */ /// switch (why_no_delegation4 ond_why) { /// case WND4_CONTENTION: /// bool ond_server_will_push_deleg; /// case WND4_RESOURCE: /// bool ond_server_will_signal_avail; /// default: /// void; /// }; /// /// union open_delegation4 /// switch (open_delegation_type4 delegation_type) { /// case OPEN_DELEGATE_NONE: /// void; /// case OPEN_DELEGATE_READ: /// open_read_delegation4 read; /// case OPEN_DELEGATE_WRITE: /// open_write_delegation4 write; /// case OPEN_DELEGATE_NONE_EXT: /* New to NFSv4.1 */ /// open_none_delegation4 od_whynone; /// }; /// /// /* /// * Result flags /// */ ///
/// /* Client must confirm open. */ /// const OPEN4_RESULT_CONFIRM = 0x00000002; /// /* Type of file-locking behavior at the server */ /// const OPEN4_RESULT_LOCKTYPE_POSIX = 0x00000004; /// /* Server will preserve file if removed while open. */ /// const OPEN4_RESULT_PRESERVE_UNLINKED = 0x00000008; /// /// /* /// * Server may use CB_NOTIFY_LOCK on locks /// * derived from this open. /// */ /// const OPEN4_RESULT_MAY_NOTIFY_LOCK = 0x00000020; /// /// struct OPEN4resok { /// stateid4 stateid; /* Stateid for open */ /// change_info4 cinfo; /* Directory change info */ /// uint32_t rflags; /* Result flags */ /// bitmap4 attrset; /* Attribute set for create */ /// open_delegation4 delegation; /* Info on any open /// delegation */ /// }; /// /// union OPEN4res switch (nfsstat4 status) { /// case NFS4_OK: /// /* New CURRENT_FH: opened file */ /// OPEN4resok resok4; /// default: /// void; /// }; /// /// struct OPENATTR4args { /// /* CURRENT_FH: object */ /// bool createdir; /// }; /// /// struct OPENATTR4res { /// /* /// * If status is NFS4_OK, /// * New CURRENT_FH: named attribute /// * directory /// */ /// nfsstat4 status; /// }; ///
/// /* Obsolete in NFSv4.1 */ /// struct OPEN_CONFIRM4args { /// /* CURRENT_FH: opened file */ /// stateid4 open_stateid; /// seqid4 seqid; /// }; /// /// struct OPEN_CONFIRM4resok { /// stateid4 open_stateid; /// }; /// /// union OPEN_CONFIRM4res switch (nfsstat4 status) { /// case NFS4_OK: /// OPEN_CONFIRM4resok resok4; /// default: /// void; /// }; /// /// struct OPEN_DOWNGRADE4args { /// /* CURRENT_FH: opened file */ /// stateid4 open_stateid; /// seqid4 seqid; /// uint32_t share_access; /// uint32_t share_deny; /// }; /// /// struct OPEN_DOWNGRADE4resok { /// stateid4 open_stateid; /// }; /// /// union OPEN_DOWNGRADE4res switch (nfsstat4 status) { /// case NFS4_OK: /// OPEN_DOWNGRADE4resok resok4; /// default: /// void; /// }; /// /// struct PUTFH4args { /// nfs_fh4 object; /// }; /// /// struct PUTFH4res { /// /* /// * If status is NFS4_OK, /// * New CURRENT_FH: argument to PUTFH /// */ /// nfsstat4 status; /// };
/// /// struct PUTPUBFH4res { /// /* /// * If status is NFS4_OK, /// * New CURRENT_FH: public fh /// */ /// nfsstat4 status; /// }; /// /// struct PUTROOTFH4res { /// /* /// * If status is NFS4_OK, /// * New CURRENT_FH: root fh /// */ /// nfsstat4 status; /// }; /// /// struct READ4args { /// /* CURRENT_FH: file */ /// stateid4 stateid; /// offset4 offset; /// count4 count; /// }; /// /// struct READ4resok { /// bool eof; /// opaque data<>; /// }; /// /// union READ4res switch (nfsstat4 status) { /// case NFS4_OK: /// READ4resok resok4; /// default: /// void; /// }; /// /// struct READDIR4args { /// /* CURRENT_FH: directory */ /// nfs_cookie4 cookie; /// verifier4 cookieverf; /// count4 dircount; /// count4 maxcount; /// bitmap4 attr_request; /// }; ///
/// struct entry4 { /// nfs_cookie4 cookie; /// component4 name; /// fattr4 attrs; /// entry4 *nextentry; /// }; /// /// struct dirlist4 { /// entry4 *entries; /// bool eof; /// }; /// /// struct READDIR4resok { /// verifier4 cookieverf; /// dirlist4 reply; /// }; /// /// /// union READDIR4res switch (nfsstat4 status) { /// case NFS4_OK: /// READDIR4resok resok4; /// default: /// void; /// }; /// /// /// struct READLINK4resok { /// linktext4 link; /// }; /// /// union READLINK4res switch (nfsstat4 status) { /// case NFS4_OK: /// READLINK4resok resok4; /// default: /// void; /// }; /// /// struct REMOVE4args { /// /* CURRENT_FH: directory */ /// component4 target; /// }; /// /// struct REMOVE4resok { /// change_info4 cinfo; /// }; ///
/// union REMOVE4res switch (nfsstat4 status) { /// case NFS4_OK: /// REMOVE4resok resok4; /// default: /// void; /// }; /// /// struct RENAME4args { /// /* SAVED_FH: source directory */ /// component4 oldname; /// /* CURRENT_FH: target directory */ /// component4 newname; /// }; /// /// struct RENAME4resok { /// change_info4 source_cinfo; /// change_info4 target_cinfo; /// }; /// /// union RENAME4res switch (nfsstat4 status) { /// case NFS4_OK: /// RENAME4resok resok4; /// default: /// void; /// }; /// /// /* Obsolete in NFSv4.1 */ /// struct RENEW4args { /// clientid4 clientid; /// }; /// /// struct RENEW4res { /// nfsstat4 status; /// }; /// /// struct RESTOREFH4res { /// /* /// * If status is NFS4_OK, /// * New CURRENT_FH: value of saved fh /// */ /// nfsstat4 status; /// }; ///
/// struct SAVEFH4res { /// /* /// * If status is NFS4_OK, /// * New SAVED_FH: value of current fh /// */ /// nfsstat4 status; /// }; /// /// struct SECINFO4args { /// /* CURRENT_FH: directory */ /// component4 name; /// }; /// /// /* /// * From RFC 2203 /// */ /// enum rpc_gss_svc_t { /// RPC_GSS_SVC_NONE = 1, /// RPC_GSS_SVC_INTEGRITY = 2, /// RPC_GSS_SVC_PRIVACY = 3 /// }; /// /// struct rpcsec_gss_info { /// sec_oid4 oid; /// qop4 qop; /// rpc_gss_svc_t service; /// }; /// /// /* RPCSEC_GSS has a value of "6". See RFC 2203. */ /// union secinfo4 switch (uint32_t flavor) { /// case RPCSEC_GSS: /// rpcsec_gss_info flavor_info; /// default: /// void; /// }; /// /// typedef secinfo4 SECINFO4resok<>; /// /// union SECINFO4res switch (nfsstat4 status) { /// case NFS4_OK: /// /* CURRENTFH: consumed */ /// SECINFO4resok resok4; /// default: /// void; /// }; ///
/// struct SETATTR4args { /// /* CURRENT_FH: target object */ /// stateid4 stateid; /// fattr4 obj_attributes; /// }; /// /// struct SETATTR4res { /// nfsstat4 status; /// bitmap4 attrsset; /// }; /// /// /* Obsolete in NFSv4.1 */ /// struct SETCLIENTID4args { /// nfs_client_id4 client; /// cb_client4 callback; /// uint32_t callback_ident; /// }; /// /// struct SETCLIENTID4resok { /// clientid4 clientid; /// verifier4 setclientid_confirm; /// }; /// /// union SETCLIENTID4res switch (nfsstat4 status) { /// case NFS4_OK: /// SETCLIENTID4resok resok4; /// case NFS4ERR_CLID_INUSE: /// clientaddr4 client_using; /// default: /// void; /// }; /// /// /* Obsolete in NFSv4.1 */ /// struct SETCLIENTID_CONFIRM4args { /// clientid4 clientid; /// verifier4 setclientid_confirm; /// }; /// /// struct SETCLIENTID_CONFIRM4res { /// nfsstat4 status; /// }; /// /// struct VERIFY4args { /// /* CURRENT_FH: object */ /// fattr4 obj_attributes; /// }; ///
/// struct VERIFY4res { /// nfsstat4 status; /// }; /// /// struct WRITE4args { /// /* CURRENT_FH: file */ /// stateid4 stateid; /// offset4 offset; /// stable_how4 stable; /// opaque data<>; /// }; /// /// struct WRITE4resok { /// count4 count; /// stable_how4 committed; /// verifier4 writeverf; /// }; /// /// union WRITE4res switch (nfsstat4 status) { /// case NFS4_OK: /// WRITE4resok resok4; /// default: /// void; /// }; /// /// /* Obsolete in NFSv4.1 */ /// struct RELEASE_LOCKOWNER4args { /// lock_owner4 lock_owner; /// }; /// /// struct RELEASE_LOCKOWNER4res { /// nfsstat4 status; /// }; /// /// struct ILLEGAL4res { /// nfsstat4 status; /// }; /// /// typedef opaque gsshandle4_t<>; /// /// struct gss_cb_handles4 { /// rpc_gss_svc_t gcbp_service; /* RFC 2203 */ /// gsshandle4_t gcbp_handle_from_server; /// gsshandle4_t gcbp_handle_from_client; /// }; ///
/// union callback_sec_parms4 switch (uint32_t cb_secflavor) { /// case AUTH_NONE: /// void; /// case AUTH_SYS: /// authsys_parms cbsp_sys_cred; /* RFC 5531 */ /// case RPCSEC_GSS: /// gss_cb_handles4 cbsp_gss_handles; /// }; /// /// struct BACKCHANNEL_CTL4args { /// uint32_t bca_cb_program; /// callback_sec_parms4 bca_sec_parms<>; /// }; /// /// struct BACKCHANNEL_CTL4res { /// nfsstat4 bcr_status; /// }; /// /// enum channel_dir_from_client4 { /// CDFC4_FORE = 0x1, /// CDFC4_BACK = 0x2, /// CDFC4_FORE_OR_BOTH = 0x3, /// CDFC4_BACK_OR_BOTH = 0x7 /// }; /// /// struct BIND_CONN_TO_SESSION4args { /// sessionid4 bctsa_sessid; /// /// channel_dir_from_client4 /// bctsa_dir; /// /// bool bctsa_use_conn_in_rdma_mode; /// }; /// /// enum channel_dir_from_server4 { /// CDFS4_FORE = 0x1, /// CDFS4_BACK = 0x2, /// CDFS4_BOTH = 0x3 /// }; /// /// struct BIND_CONN_TO_SESSION4resok { /// sessionid4 bctsr_sessid; /// /// channel_dir_from_server4 /// bctsr_dir; /// /// bool bctsr_use_conn_in_rdma_mode; /// };
/// /// union BIND_CONN_TO_SESSION4res /// switch (nfsstat4 bctsr_status) { /// case NFS4_OK: /// BIND_CONN_TO_SESSION4resok bctsr_resok4; /// default: /// void; /// }; /// /// const EXCHGID4_FLAG_SUPP_MOVED_REFER = 0x00000001; /// const EXCHGID4_FLAG_SUPP_MOVED_MIGR = 0x00000002; /// const EXCHGID4_FLAG_SUPP_FENCE_OPS = 0x00000004; /// /// const EXCHGID4_FLAG_BIND_PRINC_STATEID = 0x00000100; /// /// const EXCHGID4_FLAG_USE_NON_PNFS = 0x00010000; /// const EXCHGID4_FLAG_USE_PNFS_MDS = 0x00020000; /// const EXCHGID4_FLAG_USE_PNFS_DS = 0x00040000; /// /// const EXCHGID4_FLAG_MASK_PNFS = 0x00070000; /// /// const EXCHGID4_FLAG_UPD_CONFIRMED_REC_A = 0x40000000; /// const EXCHGID4_FLAG_CONFIRMED_R = 0x80000000; /// /// struct state_protect_ops4 { /// bitmap4 spo_must_enforce; /// bitmap4 spo_must_allow; /// }; /// /// struct ssv_sp_parms4 { /// state_protect_ops4 ssp_ops; /// sec_oid4 ssp_hash_algs<>; /// sec_oid4 ssp_encr_algs<>; /// uint32_t ssp_window; /// uint32_t ssp_num_gss_handles; /// }; /// /// enum state_protect_how4 { /// SP4_NONE = 0, /// SP4_MACH_CRED = 1, /// SP4_SSV = 2 /// }; ///
/// union state_protect4_a switch (state_protect_how4 spa_how) { /// case SP4_NONE: /// void; /// case SP4_MACH_CRED: /// state_protect_ops4 spa_mach_ops; /// case SP4_SSV: /// ssv_sp_parms4 spa_ssv_parms; /// }; /// /// struct EXCHANGE_ID4args { /// client_owner4 eia_clientowner; /// uint32_t eia_flags; /// state_protect4_a eia_state_protect; /// nfs_impl_id4 eia_client_impl_id<1>; /// }; /// /// struct ssv_prot_info4 { /// state_protect_ops4 spi_ops; /// uint32_t spi_hash_alg; /// uint32_t spi_encr_alg; /// uint32_t spi_ssv_len; /// uint32_t spi_window; /// gsshandle4_t spi_handles<>; /// }; /// /// union state_protect4_r switch (state_protect_how4 spr_how) { /// case SP4_NONE: /// void; /// case SP4_MACH_CRED: /// state_protect_ops4 spr_mach_ops; /// case SP4_SSV: /// ssv_prot_info4 spr_ssv_info; /// }; /// /// struct EXCHANGE_ID4resok { /// clientid4 eir_clientid; /// sequenceid4 eir_sequenceid; /// uint32_t eir_flags; /// state_protect4_r eir_state_protect; /// server_owner4 eir_server_owner; /// opaque eir_server_scope<NFS4_OPAQUE_LIMIT>; /// nfs_impl_id4 eir_server_impl_id<1>; /// }; ///
/// union EXCHANGE_ID4res switch (nfsstat4 eir_status) { /// case NFS4_OK: /// EXCHANGE_ID4resok eir_resok4; /// /// default: /// void; /// }; /// /// struct channel_attrs4 { /// count4 ca_headerpadsize; /// count4 ca_maxrequestsize; /// count4 ca_maxresponsesize; /// count4 ca_maxresponsesize_cached; /// count4 ca_maxoperations; /// count4 ca_maxrequests; /// uint32_t ca_rdma_ird<1>; /// }; /// /// const CREATE_SESSION4_FLAG_PERSIST = 0x00000001; /// const CREATE_SESSION4_FLAG_CONN_BACK_CHAN = 0x00000002; /// const CREATE_SESSION4_FLAG_CONN_RDMA = 0x00000004; /// /// struct CREATE_SESSION4args { /// clientid4 csa_clientid; /// sequenceid4 csa_sequence; /// /// uint32_t csa_flags; /// /// channel_attrs4 csa_fore_chan_attrs; /// channel_attrs4 csa_back_chan_attrs; /// /// uint32_t csa_cb_program; /// callback_sec_parms4 csa_sec_parms<>; /// }; /// /// struct CREATE_SESSION4resok { /// sessionid4 csr_sessionid; /// sequenceid4 csr_sequence; /// /// uint32_t csr_flags; /// /// channel_attrs4 csr_fore_chan_attrs; /// channel_attrs4 csr_back_chan_attrs; /// }; ///
/// union CREATE_SESSION4res switch (nfsstat4 csr_status) { /// case NFS4_OK: /// CREATE_SESSION4resok csr_resok4; /// default: /// void; /// }; /// /// struct DESTROY_SESSION4args { /// sessionid4 dsa_sessionid; /// }; /// /// struct DESTROY_SESSION4res { /// nfsstat4 dsr_status; /// }; /// /// struct FREE_STATEID4args { /// stateid4 fsa_stateid; /// }; /// /// struct FREE_STATEID4res { /// nfsstat4 fsr_status; /// }; /// /// /// typedef nfstime4 attr_notice4; /// /// struct GET_DIR_DELEGATION4args { /// /* CURRENT_FH: delegated directory */ /// bool gdda_signal_deleg_avail; /// bitmap4 gdda_notification_types; /// attr_notice4 gdda_child_attr_delay; /// attr_notice4 gdda_dir_attr_delay; /// bitmap4 gdda_child_attributes; /// bitmap4 gdda_dir_attributes; /// }; /// struct GET_DIR_DELEGATION4resok { /// verifier4 gddr_cookieverf; /// /* Stateid for get_dir_delegation */ /// stateid4 gddr_stateid; /// /* Which notifications can the server support? */ /// bitmap4 gddr_notification; /// bitmap4 gddr_child_attributes; /// bitmap4 gddr_dir_attributes; /// }; ///
/// enum gddrnf4_status { /// GDD4_OK = 0, /// GDD4_UNAVAIL = 1 /// }; /// /// union GET_DIR_DELEGATION4res_non_fatal /// switch (gddrnf4_status gddrnf_status) { /// case GDD4_OK: /// GET_DIR_DELEGATION4resok gddrnf_resok4; /// case GDD4_UNAVAIL: /// bool gddrnf_will_signal_deleg_avail; /// }; /// /// union GET_DIR_DELEGATION4res /// switch (nfsstat4 gddr_status) { /// case NFS4_OK: /// GET_DIR_DELEGATION4res_non_fatal gddr_res_non_fatal4; /// default: /// void; /// }; /// /// struct GETDEVICEINFO4args { /// deviceid4 gdia_device_id; /// layouttype4 gdia_layout_type; /// count4 gdia_maxcount; /// bitmap4 gdia_notify_types; /// }; /// /// struct GETDEVICEINFO4resok { /// device_addr4 gdir_device_addr; /// bitmap4 gdir_notification; /// }; /// /// union GETDEVICEINFO4res switch (nfsstat4 gdir_status) { /// case NFS4_OK: /// GETDEVICEINFO4resok gdir_resok4; /// case NFS4ERR_TOOSMALL: /// count4 gdir_mincount; /// default: /// void; /// }; ///
/// struct GETDEVICELIST4args { /// /* CURRENT_FH: object belonging to the file system */ /// layouttype4 gdla_layout_type; /// /// /* Number of device IDs to return */ /// count4 gdla_maxdevices; /// /// nfs_cookie4 gdla_cookie; /// verifier4 gdla_cookieverf; /// }; /// /// struct GETDEVICELIST4resok { /// nfs_cookie4 gdlr_cookie; /// verifier4 gdlr_cookieverf; /// deviceid4 gdlr_deviceid_list<>; /// bool gdlr_eof; /// }; /// /// union GETDEVICELIST4res switch (nfsstat4 gdlr_status) { /// case NFS4_OK: /// GETDEVICELIST4resok gdlr_resok4; /// default: /// void; /// }; /// /// union newtime4 switch (bool nt_timechanged) { /// case TRUE: /// nfstime4 nt_time; /// case FALSE: /// void; /// }; /// /// union newoffset4 switch (bool no_newoffset) { /// case TRUE: /// offset4 no_offset; /// case FALSE: /// void; /// }; ///