/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2015 Nexenta Systems, Inc. All rights reserved.
*/
/*
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _NFS4_KPROT_H
#define _NFS4_KPROT_H
/*
* Kernel specific version.
* NFS Version 4 protocol definitions. From nfs4_prot.x rev 1.119.
*/
#ifdef __cplusplus
extern "C" {
#endif
#ifdef _KERNEL
#include <rpc/rpc_rdma.h>
#endif
/*
* Reasonable upper bounds to catch badly behaving partners
*/
enum nfs_ftype4 {
};
enum nfsstat4 {
NFS4_OK = 0,
};
/*
* A bitmap can only be 56 bits, treat it as a uint64_t for now
*/
typedef struct {
char *utf8string_val;
} utf8string;
typedef struct {
} pathname4;
typedef struct {
char *linktext4_val;
} linktext4;
typedef struct {
char *sec_oid4_val;
} sec_oid4;
struct nfstime4 {
};
enum time_how4 {
SET_TO_SERVER_TIME4 = 0,
};
struct settime4 {
};
typedef struct {
char *nfs_fh4_val;
} nfs_fh4;
struct fsid4 {
};
struct fs_location4 {
};
struct fs_locations4 {
};
/*
* This structure is declared in nfs4.h
*/
struct nfs_fsl_info;
/*
* ACL support
*/
/*
* This defines all valid flag bits, as defined by RFC 3530. If
* any additional flag bits are deemed part of the NFSv4 spec,
* you must also add them to the definition below.
*/
#define ACE4_VALID_FLAG_BITS (\
/*
* This defines all valid access mask bits, as defined by RFC 3530. If
* any additional access mask bits are deemed part of the NFSv4 spec,
* you must also add them to the definition below.
*/
#define ACE4_VALID_MASK_BITS (\
ACE4_READ_DATA | \
ACE4_WRITE_DATA | \
ACE4_ADD_FILE | \
ACE4_APPEND_DATA | \
ACE4_EXECUTE | \
ACE4_DELETE | \
ACE4_READ_ACL | \
ACE4_WRITE_ACL | \
ACE4_WRITE_OWNER | \
/* Used to signify an undefined value for an acemask4 */
struct nfsace4 {
};
/*
* ACL conversion helpers
*/
typedef enum {
typedef struct ace4vals {
int aent_type;
} ace4vals_t;
typedef struct ace4_list {
int numusers;
int numgroups;
int hasmask;
int dfacl_flag;
} ace4_list_t;
struct specdata4 {
};
typedef struct {
} fattr4_acl;
#define FATTR4_SUPPORTED_ATTRS 0
struct fattr4 {
char *attrlist4;
};
struct change_info4 {
};
struct clientaddr4 {
char *r_netid;
char *r_addr;
};
struct cb_client4 {
};
struct stateid4 {
};
struct nfs_client_id4 {
char *id_val;
};
struct open_owner4 {
char *owner_val;
};
struct lock_owner4 {
char *owner_val;
};
enum nfs_lock_type4 {
};
struct ACCESS4args {
};
struct ACCESS4res {
};
struct CLOSE4args {
};
struct CLOSE4res {
};
struct COMMIT4args {
};
struct COMMIT4res {
};
struct CREATE4args {
union {
} ftype4_u;
};
struct CREATE4cargs {
union {
char *clinkdata;
} ftype4_u;
char *cname;
};
struct CREATE4res {
};
struct DELEGPURGE4args {
};
struct DELEGPURGE4res {
};
struct DELEGRETURN4args {
};
struct DELEGRETURN4res {
};
struct mntinfo4;
struct GETATTR4args {
};
struct nfs4_ga_ext_res;
struct nfs4_ga_res {
};
struct GETATTR4res {
};
struct GETFH4res {
};
struct LINK4args {
};
struct LINK4cargs {
char *cnewname;
};
struct LINK4res {
};
struct open_to_lock_owner4 {
};
struct exist_lock_owner4 {
};
struct locker4 {
union {
} locker4_u;
};
struct LOCK4args {
};
struct LOCK4denied {
};
struct LOCK4res {
union {
} LOCK4res_u;
};
struct LOCKT4args {
};
struct LOCKT4res {
};
struct LOCKU4args {
};
struct LOCKU4res {
};
struct LOOKUP4args {
};
struct LOOKUP4cargs {
char *cname;
};
struct LOOKUP4res {
};
struct LOOKUPP4res {
};
struct NVERIFY4args {
};
struct NVERIFY4res {
};
enum createmode4 {
UNCHECKED4 = 0,
};
enum opentype4 {
OPEN4_NOCREATE = 0,
};
enum limit_by4 {
};
struct nfs_modified_limit4 {
};
struct nfs_space_limit4 {
union {
};
enum open_delegation_type4 {
OPEN_DELEGATE_NONE = 0,
};
enum open_claim_type4 {
CLAIM_NULL = 0,
};
struct open_claim_delegate_cur4 {
};
struct copen_claim_delegate_cur4 {
char *cfile;
};
struct OPEN4args {
union {
} createhow4_u;
union {
};
struct OPEN4cargs {
union {
} createhow4_u;
union {
char *cfile;
char *cfile_delegate_prev;
};
struct open_read_delegation4 {
};
struct open_write_delegation4 {
};
struct open_delegation4 {
union {
};
struct OPEN4res {
};
struct OPENATTR4args {
};
struct OPENATTR4res {
};
struct OPEN_CONFIRM4args {
};
struct OPEN_CONFIRM4res {
};
struct OPEN_DOWNGRADE4args {
};
struct OPEN_DOWNGRADE4res {
};
struct PUTFH4args {
};
/*
* Client only side PUTFH arguments
* This is really a nfs4_sharedfh_t * but the forward declaration
* is problematic;
*/
struct PUTFH4cargs {
void *sfh;
};
struct PUTFH4res {
};
struct PUTPUBFH4res {
};
struct PUTROOTFH4res {
};
struct READ4args {
/* The following are used for the XDR decode path */
char *res_data_val_alt;
#ifdef _KERNEL
#endif
};
struct READ4res {
char *data_val;
#ifdef _KERNEL
#endif
};
struct rddir4_cache;
struct READDIR4args {
hrtime_t t;
};
struct READDIR4res_clnt {
};
struct READDIR4res {
};
struct READLINK4res {
};
struct REMOVE4args {
};
struct REMOVE4cargs {
char *ctarget;
};
struct REMOVE4res {
};
struct RENAME4args {
};
struct RENAME4cargs {
char *coldname;
char *cnewname;
};
struct RENAME4res {
};
struct RENEW4args {
};
struct RENEW4res {
};
struct RESTOREFH4res {
};
struct SAVEFH4res {
};
struct SECINFO4args {
};
struct SECINFO4cargs {
char *cname;
};
enum rpc_gss_svc_t {
};
struct rpcsec_gss_info {
};
struct secinfo4 {
};
struct SECINFO4res {
};
struct SETATTR4args {
};
struct SETATTR4res {
};
struct SETCLIENTID4args {
};
struct SETCLIENTID4resok {
};
struct SETCLIENTID4res {
union {
};
struct SETCLIENTID_CONFIRM4args {
};
struct SETCLIENTID_CONFIRM4res {
};
struct VERIFY4args {
};
struct VERIFY4res {
};
enum stable_how4 {
UNSTABLE4 = 0,
};
/*
* mblk doesn't go over the wire. If non-NULL, it points to an mblk chain
* for the write data.
*/
struct WRITE4args {
char *data_val;
#ifdef _KERNEL
#endif
};
struct WRITE4res {
};
struct RELEASE_LOCKOWNER4args {
};
struct RELEASE_LOCKOWNER4res {
};
struct ILLEGAL4res {
};
enum nfs_opnum4 {
/*
* These are internal client pseudo ops that *MUST* never go over the wire
*/
};
struct nfs_argop4 {
union {
} nfs_argop4_u;
};
struct nfs_resop4 {
union {
} nfs_resop4_u;
};
/*
* Fixed size tag string for easy client encoding
*/
struct _ctag {
int ct_type;
char *ct_str;
};
/*
* Client-only encode-only version
*/
struct COMPOUND4args_clnt {
int ctag;
};
struct COMPOUND4args {
};
struct COMPOUND4res_clnt {
};
struct COMPOUND4res {
};
struct CB_GETATTR4args {
};
struct CB_GETATTR4res {
};
struct CB_RECALL4args {
};
struct CB_RECALL4res {
};
struct CB_ILLEGAL4res {
};
enum nfs_cb_opnum4 {
};
struct nfs_cb_argop4 {
union {
};
struct nfs_cb_resop4 {
union {
};
struct CB_COMPOUND4args {
};
struct CB_COMPOUND4res {
};
#define NFSPROC4_NULL 0
#define CB_NULL 0
/*
* xdr for referrrals upcall
*/
#ifdef __cplusplus
}
#endif
#endif /* _NFS4_KPROT_H */