/*
 * Please do not edit this file.
 * It was generated using rpcgen.
 */

#ifndef _GLUSTERFS4_XDR_H_RPCGEN
#define _GLUSTERFS4_XDR_H_RPCGEN

#include <rpc/rpc.h>


#ifdef __cplusplus
extern "C" {
#endif

#include <glusterfs/compat.h>
#include "glusterfs-fops.h"
#include "glusterfs3-xdr.h"

struct gfx_iattx {
	char ia_gfid[16];
	u_quad_t ia_flags;
	u_quad_t ia_ino;
	u_quad_t ia_dev;
	u_quad_t ia_rdev;
	u_quad_t ia_size;
	u_quad_t ia_blocks;
	u_quad_t ia_attributes;
	u_quad_t ia_attributes_mask;
	quad_t ia_atime;
	quad_t ia_mtime;
	quad_t ia_ctime;
	quad_t ia_btime;
	u_int ia_atime_nsec;
	u_int ia_mtime_nsec;
	u_int ia_ctime_nsec;
	u_int ia_btime_nsec;
	u_int ia_nlink;
	u_int ia_uid;
	u_int ia_gid;
	u_int ia_blksize;
	u_int mode;
};
typedef struct gfx_iattx gfx_iattx;

struct gfx_value {
	gf_dict_data_type_t type;
	union {
		quad_t value_int;
		u_quad_t value_uint;
		double value_dbl;
		struct {
			u_int val_string_len;
			char *val_string_val;
		} val_string;
		gfx_iattx iatt;
		char uuid[16];
		struct {
			u_int other_len;
			char *other_val;
		} other;
	} gfx_value_u;
};
typedef struct gfx_value gfx_value;

struct auth_glusterfs_params_v3 {
	int pid;
	u_int uid;
	u_int gid;
	u_int flags;
	u_int ctime_nsec;
	u_quad_t ctime_sec;
	struct {
		u_int groups_len;
		u_int *groups_val;
	} groups;
	struct {
		u_int lk_owner_len;
		char *lk_owner_val;
	} lk_owner;
};
typedef struct auth_glusterfs_params_v3 auth_glusterfs_params_v3;

struct gfx_dict_pair {
	struct {
		u_int key_len;
		char *key_val;
	} key;
	gfx_value value;
};
typedef struct gfx_dict_pair gfx_dict_pair;

struct gfx_dict {
	u_int xdr_size;
	int count;
	struct {
		u_int pairs_len;
		gfx_dict_pair *pairs_val;
	} pairs;
};
typedef struct gfx_dict gfx_dict;

struct gfx_common_rsp {
	int op_ret;
	int op_errno;
	gfx_dict xdata;
};
typedef struct gfx_common_rsp gfx_common_rsp;

struct gfx_common_iatt_rsp {
	int op_ret;
	int op_errno;
	gfx_dict xdata;
	gfx_iattx stat;
};
typedef struct gfx_common_iatt_rsp gfx_common_iatt_rsp;

struct gfx_common_2iatt_rsp {
	int op_ret;
	int op_errno;
	gfx_dict xdata;
	gfx_iattx prestat;
	gfx_iattx poststat;
};
typedef struct gfx_common_2iatt_rsp gfx_common_2iatt_rsp;

struct gfx_common_3iatt_rsp {
	int op_ret;
	int op_errno;
	gfx_dict xdata;
	gfx_iattx stat;
	gfx_iattx preparent;
	gfx_iattx postparent;
};
typedef struct gfx_common_3iatt_rsp gfx_common_3iatt_rsp;

struct gfx_fsetattr_req {
	char gfid[16];
	quad_t fd;
	gfx_iattx stbuf;
	int valid;
	gfx_dict xdata;
};
typedef struct gfx_fsetattr_req gfx_fsetattr_req;

struct gfx_rchecksum_req {
	char gfid[16];
	quad_t fd;
	u_quad_t offset;
	u_int len;
	u_int flags;
	gfx_dict xdata;
};
typedef struct gfx_rchecksum_req gfx_rchecksum_req;

struct gfx_icreate_req {
	char gfid[16];
	u_int mode;
	gfx_dict xdata;
};
typedef struct gfx_icreate_req gfx_icreate_req;

struct gfx_put_req {
	char pargfid[16];
	char *bname;
	u_int mode;
	u_int umask;
	u_int flag;
	u_quad_t offset;
	u_int size;
	gfx_dict xattr;
	gfx_dict xdata;
};
typedef struct gfx_put_req gfx_put_req;

struct gfx_namelink_req {
	char pargfid[16];
	char *bname;
	gfx_dict xdata;
};
typedef struct gfx_namelink_req gfx_namelink_req;

struct gfx_stat_req {
	char gfid[16];
	gfx_dict xdata;
};
typedef struct gfx_stat_req gfx_stat_req;

struct gfx_readlink_req {
	char gfid[16];
	u_int size;
	gfx_dict xdata;
};
typedef struct gfx_readlink_req gfx_readlink_req;

struct gfx_readlink_rsp {
	int op_ret;
	int op_errno;
	gfx_dict xdata;
	gfx_iattx buf;
	char *path;
};
typedef struct gfx_readlink_rsp gfx_readlink_rsp;

struct gfx_mknod_req {
	char pargfid[16];
	u_quad_t dev;
	u_int mode;
	u_int umask;
	char *bname;
	gfx_dict xdata;
};
typedef struct gfx_mknod_req gfx_mknod_req;

struct gfx_mkdir_req {
	char pargfid[16];
	u_int mode;
	u_int umask;
	char *bname;
	gfx_dict xdata;
};
typedef struct gfx_mkdir_req gfx_mkdir_req;

struct gfx_unlink_req {
	char pargfid[16];
	char *bname;
	u_int xflags;
	gfx_dict xdata;
};
typedef struct gfx_unlink_req gfx_unlink_req;

struct gfx_rmdir_req {
	char pargfid[16];
	int xflags;
	char *bname;
	gfx_dict xdata;
};
typedef struct gfx_rmdir_req gfx_rmdir_req;

struct gfx_symlink_req {
	char pargfid[16];
	char *bname;
	u_int umask;
	char *linkname;
	gfx_dict xdata;
};
typedef struct gfx_symlink_req gfx_symlink_req;

struct gfx_rename_req {
	char oldgfid[16];
	char newgfid[16];
	char *oldbname;
	char *newbname;
	gfx_dict xdata;
};
typedef struct gfx_rename_req gfx_rename_req;

struct gfx_rename_rsp {
	int op_ret;
	int op_errno;
	gfx_dict xdata;
	gfx_iattx stat;
	gfx_iattx preoldparent;
	gfx_iattx postoldparent;
	gfx_iattx prenewparent;
	gfx_iattx postnewparent;
};
typedef struct gfx_rename_rsp gfx_rename_rsp;

struct gfx_link_req {
	char oldgfid[16];
	char newgfid[16];
	char *newbname;
	gfx_dict xdata;
};
typedef struct gfx_link_req gfx_link_req;

struct gfx_truncate_req {
	char gfid[16];
	u_quad_t offset;
	gfx_dict xdata;
};
typedef struct gfx_truncate_req gfx_truncate_req;

struct gfx_open_req {
	char gfid[16];
	u_int flags;
	gfx_dict xdata;
};
typedef struct gfx_open_req gfx_open_req;

struct gfx_open_rsp {
	int op_ret;
	int op_errno;
	gfx_dict xdata;
	quad_t fd;
};
typedef struct gfx_open_rsp gfx_open_rsp;

struct gfx_opendir_req {
	char gfid[16];
	gfx_dict xdata;
};
typedef struct gfx_opendir_req gfx_opendir_req;

struct gfx_read_req {
	char gfid[16];
	quad_t fd;
	u_quad_t offset;
	u_int size;
	u_int flag;
	gfx_dict xdata;
};
typedef struct gfx_read_req gfx_read_req;

struct gfx_read_rsp {
	int op_ret;
	int op_errno;
	gfx_iattx stat;
	u_int size;
	gfx_dict xdata;
};
typedef struct gfx_read_rsp gfx_read_rsp;

struct gfx_lookup_req {
	char gfid[16];
	char pargfid[16];
	u_int flags;
	char *bname;
	gfx_dict xdata;
};
typedef struct gfx_lookup_req gfx_lookup_req;

struct gfx_write_req {
	char gfid[16];
	quad_t fd;
	u_quad_t offset;
	u_int size;
	u_int flag;
	gfx_dict xdata;
};
typedef struct gfx_write_req gfx_write_req;

struct gfx_statfs_req {
	char gfid[16];
	gfx_dict xdata;
};
typedef struct gfx_statfs_req gfx_statfs_req;

struct gfx_statfs_rsp {
	int op_ret;
	int op_errno;
	gfx_dict xdata;
	gf_statfs statfs;
};
typedef struct gfx_statfs_rsp gfx_statfs_rsp;

struct gfx_lk_req {
	char gfid[16];
	int64_t fd;
	u_int cmd;
	u_int type;
	gf_proto_flock flock;
	gfx_dict xdata;
};
typedef struct gfx_lk_req gfx_lk_req;

struct gfx_lk_rsp {
	int op_ret;
	int op_errno;
	gfx_dict xdata;
	gf_proto_flock flock;
};
typedef struct gfx_lk_rsp gfx_lk_rsp;

struct gfx_lease_req {
	char gfid[16];
	gf_proto_lease lease;
	gfx_dict xdata;
};
typedef struct gfx_lease_req gfx_lease_req;

struct gfx_lease_rsp {
	int op_ret;
	int op_errno;
	gfx_dict xdata;
	gf_proto_lease lease;
};
typedef struct gfx_lease_rsp gfx_lease_rsp;

struct gfx_recall_lease_req {
	char gfid[16];
	u_int lease_type;
	char tid[16];
	gfx_dict xdata;
};
typedef struct gfx_recall_lease_req gfx_recall_lease_req;

struct gfx_inodelk_req {
	char gfid[16];
	u_int cmd;
	u_int type;
	gf_proto_flock flock;
	char *volume;
	gfx_dict xdata;
};
typedef struct gfx_inodelk_req gfx_inodelk_req;

struct gfx_finodelk_req {
	char gfid[16];
	quad_t fd;
	u_int cmd;
	u_int type;
	gf_proto_flock flock;
	char *volume;
	gfx_dict xdata;
};
typedef struct gfx_finodelk_req gfx_finodelk_req;

struct gfx_flush_req {
	char gfid[16];
	quad_t fd;
	gfx_dict xdata;
};
typedef struct gfx_flush_req gfx_flush_req;

struct gfx_fsync_req {
	char gfid[16];
	quad_t fd;
	u_int data;
	gfx_dict xdata;
};
typedef struct gfx_fsync_req gfx_fsync_req;

struct gfx_setxattr_req {
	char gfid[16];
	u_int flags;
	gfx_dict dict;
	gfx_dict xdata;
};
typedef struct gfx_setxattr_req gfx_setxattr_req;

struct gfx_fsetxattr_req {
	char gfid[16];
	int64_t fd;
	u_int flags;
	gfx_dict dict;
	gfx_dict xdata;
};
typedef struct gfx_fsetxattr_req gfx_fsetxattr_req;

struct gfx_xattrop_req {
	char gfid[16];
	u_int flags;
	gfx_dict dict;
	gfx_dict xdata;
};
typedef struct gfx_xattrop_req gfx_xattrop_req;

struct gfx_common_dict_rsp {
	int op_ret;
	int op_errno;
	gfx_dict xdata;
	gfx_dict dict;
	gfx_iattx prestat;
	gfx_iattx poststat;
};
typedef struct gfx_common_dict_rsp gfx_common_dict_rsp;

struct gfx_fxattrop_req {
	char gfid[16];
	quad_t fd;
	u_int flags;
	gfx_dict dict;
	gfx_dict xdata;
};
typedef struct gfx_fxattrop_req gfx_fxattrop_req;

struct gfx_getxattr_req {
	char gfid[16];
	u_int namelen;
	char *name;
	gfx_dict xdata;
};
typedef struct gfx_getxattr_req gfx_getxattr_req;

struct gfx_fgetxattr_req {
	char gfid[16];
	quad_t fd;
	u_int namelen;
	char *name;
	gfx_dict xdata;
};
typedef struct gfx_fgetxattr_req gfx_fgetxattr_req;

struct gfx_removexattr_req {
	char gfid[16];
	char *name;
	gfx_dict xdata;
};
typedef struct gfx_removexattr_req gfx_removexattr_req;

struct gfx_fremovexattr_req {
	char gfid[16];
	quad_t fd;
	char *name;
	gfx_dict xdata;
};
typedef struct gfx_fremovexattr_req gfx_fremovexattr_req;

struct gfx_fsyncdir_req {
	char gfid[16];
	quad_t fd;
	int data;
	gfx_dict xdata;
};
typedef struct gfx_fsyncdir_req gfx_fsyncdir_req;

struct gfx_readdir_req {
	char gfid[16];
	quad_t fd;
	u_quad_t offset;
	u_int size;
	gfx_dict xdata;
};
typedef struct gfx_readdir_req gfx_readdir_req;

struct gfx_readdirp_req {
	char gfid[16];
	quad_t fd;
	u_quad_t offset;
	u_int size;
	gfx_dict xdata;
};
typedef struct gfx_readdirp_req gfx_readdirp_req;

struct gfx_access_req {
	char gfid[16];
	u_int mask;
	gfx_dict xdata;
};
typedef struct gfx_access_req gfx_access_req;

struct gfx_create_req {
	char pargfid[16];
	u_int flags;
	u_int mode;
	u_int umask;
	char *bname;
	gfx_dict xdata;
};
typedef struct gfx_create_req gfx_create_req;

struct gfx_create_rsp {
	int op_ret;
	int op_errno;
	gfx_dict xdata;
	gfx_iattx stat;
	u_quad_t fd;
	gfx_iattx preparent;
	gfx_iattx postparent;
};
typedef struct gfx_create_rsp gfx_create_rsp;

struct gfx_ftruncate_req {
	char gfid[16];
	quad_t fd;
	u_quad_t offset;
	gfx_dict xdata;
};
typedef struct gfx_ftruncate_req gfx_ftruncate_req;

struct gfx_fstat_req {
	char gfid[16];
	quad_t fd;
	gfx_dict xdata;
};
typedef struct gfx_fstat_req gfx_fstat_req;

struct gfx_entrylk_req {
	char gfid[16];
	u_int cmd;
	u_int type;
	u_quad_t namelen;
	char *name;
	char *volume;
	gfx_dict xdata;
};
typedef struct gfx_entrylk_req gfx_entrylk_req;

struct gfx_fentrylk_req {
	char gfid[16];
	quad_t fd;
	u_int cmd;
	u_int type;
	u_quad_t namelen;
	char *name;
	char *volume;
	gfx_dict xdata;
};
typedef struct gfx_fentrylk_req gfx_fentrylk_req;

struct gfx_setattr_req {
	char gfid[16];
	gfx_iattx stbuf;
	int valid;
	gfx_dict xdata;
};
typedef struct gfx_setattr_req gfx_setattr_req;

struct gfx_fallocate_req {
	char gfid[16];
	quad_t fd;
	u_int flags;
	u_quad_t offset;
	u_quad_t size;
	gfx_dict xdata;
};
typedef struct gfx_fallocate_req gfx_fallocate_req;

struct gfx_discard_req {
	char gfid[16];
	quad_t fd;
	u_quad_t offset;
	u_quad_t size;
	gfx_dict xdata;
};
typedef struct gfx_discard_req gfx_discard_req;

struct gfx_zerofill_req {
	char gfid[16];
	quad_t fd;
	u_quad_t offset;
	u_quad_t size;
	gfx_dict xdata;
};
typedef struct gfx_zerofill_req gfx_zerofill_req;

struct gfx_rchecksum_rsp {
	int op_ret;
	int op_errno;
	gfx_dict xdata;
	u_int flags;
	u_int weak_checksum;
	struct {
		u_int strong_checksum_len;
		char *strong_checksum_val;
	} strong_checksum;
};
typedef struct gfx_rchecksum_rsp gfx_rchecksum_rsp;

struct gfx_ipc_req {
	int op;
	gfx_dict xdata;
};
typedef struct gfx_ipc_req gfx_ipc_req;

struct gfx_seek_req {
	char gfid[16];
	quad_t fd;
	u_quad_t offset;
	int what;
	gfx_dict xdata;
};
typedef struct gfx_seek_req gfx_seek_req;

struct gfx_seek_rsp {
	int op_ret;
	int op_errno;
	gfx_dict xdata;
	u_quad_t offset;
};
typedef struct gfx_seek_rsp gfx_seek_rsp;

struct gfx_setvolume_req {
	gfx_dict dict;
};
typedef struct gfx_setvolume_req gfx_setvolume_req;

struct gfx_copy_file_range_req {
	char gfid1[16];
	char gfid2[16];
	quad_t fd_in;
	quad_t fd_out;
	u_quad_t off_in;
	u_quad_t off_out;
	u_int size;
	u_int flag;
	gfx_dict xdata;
};
typedef struct gfx_copy_file_range_req gfx_copy_file_range_req;

struct gfx_setvolume_rsp {
	int op_ret;
	int op_errno;
	gfx_dict dict;
};
typedef struct gfx_setvolume_rsp gfx_setvolume_rsp;

struct gfx_getspec_req {
	u_int flags;
	char *key;
	gfx_dict xdata;
};
typedef struct gfx_getspec_req gfx_getspec_req;

struct gfx_getspec_rsp {
	int op_ret;
	int op_errno;
	char *spec;
	gfx_dict xdata;
};
typedef struct gfx_getspec_rsp gfx_getspec_rsp;

struct gfx_notify_req {
	u_int flags;
	char *buf;
	gfx_dict xdata;
};
typedef struct gfx_notify_req gfx_notify_req;

struct gfx_notify_rsp {
	int op_ret;
	int op_errno;
	u_int flags;
	char *buf;
	gfx_dict xdata;
};
typedef struct gfx_notify_rsp gfx_notify_rsp;

struct gfx_releasedir_req {
	char gfid[16];
	quad_t fd;
	gfx_dict xdata;
};
typedef struct gfx_releasedir_req gfx_releasedir_req;

struct gfx_release_req {
	char gfid[16];
	quad_t fd;
	gfx_dict xdata;
};
typedef struct gfx_release_req gfx_release_req;

struct gfx_dirlist {
	u_quad_t d_ino;
	u_quad_t d_off;
	u_int d_len;
	u_int d_type;
	char *name;
	struct gfx_dirlist *nextentry;
};
typedef struct gfx_dirlist gfx_dirlist;

struct gfx_readdir_rsp {
	int op_ret;
	int op_errno;
	gfx_dict xdata;
	gfx_dirlist *reply;
};
typedef struct gfx_readdir_rsp gfx_readdir_rsp;

struct gfx_dirplist {
	u_quad_t d_ino;
	u_quad_t d_off;
	u_int d_len;
	u_int d_type;
	char *name;
	gfx_iattx stat;
	gfx_dict dict;
	struct gfx_dirplist *nextentry;
};
typedef struct gfx_dirplist gfx_dirplist;

struct gfx_readdirp_rsp {
	int op_ret;
	int op_errno;
	gfx_dict xdata;
	gfx_dirplist *reply;
};
typedef struct gfx_readdirp_rsp gfx_readdirp_rsp;

struct gfx_set_lk_ver_rsp {
	int op_ret;
	int op_errno;
	gfx_dict xdata;
	int lk_ver;
};
typedef struct gfx_set_lk_ver_rsp gfx_set_lk_ver_rsp;

struct gfx_set_lk_ver_req {
	char *uid;
	int lk_ver;
};
typedef struct gfx_set_lk_ver_req gfx_set_lk_ver_req;

struct gfx_event_notify_req {
	int op;
	gfx_dict dict;
};
typedef struct gfx_event_notify_req gfx_event_notify_req;

struct gfx_getsnap_name_uuid_req {
	gfx_dict dict;
};
typedef struct gfx_getsnap_name_uuid_req gfx_getsnap_name_uuid_req;

struct gfx_getsnap_name_uuid_rsp {
	int op_ret;
	int op_errno;
	gfx_dict dict;
	char *op_errstr;
};
typedef struct gfx_getsnap_name_uuid_rsp gfx_getsnap_name_uuid_rsp;

struct gfx_getactivelk_rsp {
	int op_ret;
	int op_errno;
	gfx_dict xdata;
	gfs3_locklist *reply;
};
typedef struct gfx_getactivelk_rsp gfx_getactivelk_rsp;

struct gfx_getactivelk_req {
	char gfid[16];
	gfx_dict xdata;
};
typedef struct gfx_getactivelk_req gfx_getactivelk_req;

struct gfx_setactivelk_req {
	char gfid[16];
	gfs3_locklist *request;
	gfx_dict xdata;
};
typedef struct gfx_setactivelk_req gfx_setactivelk_req;

struct compound_req_v2 {
	glusterfs_fop_t fop_enum;
	union {
		gfx_stat_req compound_stat_req;
		gfx_readlink_req compound_readlink_req;
		gfx_mknod_req compound_mknod_req;
		gfx_mkdir_req compound_mkdir_req;
		gfx_unlink_req compound_unlink_req;
		gfx_rmdir_req compound_rmdir_req;
		gfx_symlink_req compound_symlink_req;
		gfx_rename_req compound_rename_req;
		gfx_link_req compound_link_req;
		gfx_truncate_req compound_truncate_req;
		gfx_open_req compound_open_req;
		gfx_read_req compound_read_req;
		gfx_write_req compound_write_req;
		gfx_statfs_req compound_statfs_req;
		gfx_flush_req compound_flush_req;
		gfx_fsync_req compound_fsync_req;
		gfx_getxattr_req compound_getxattr_req;
		gfx_setxattr_req compound_setxattr_req;
		gfx_removexattr_req compound_removexattr_req;
		gfx_opendir_req compound_opendir_req;
		gfx_fsyncdir_req compound_fsyncdir_req;
		gfx_access_req compound_access_req;
		gfx_create_req compound_create_req;
		gfx_ftruncate_req compound_ftruncate_req;
		gfx_fstat_req compound_fstat_req;
		gfx_lk_req compound_lk_req;
		gfx_lookup_req compound_lookup_req;
		gfx_readdir_req compound_readdir_req;
		gfx_inodelk_req compound_inodelk_req;
		gfx_finodelk_req compound_finodelk_req;
		gfx_entrylk_req compound_entrylk_req;
		gfx_fentrylk_req compound_fentrylk_req;
		gfx_xattrop_req compound_xattrop_req;
		gfx_fxattrop_req compound_fxattrop_req;
		gfx_fgetxattr_req compound_fgetxattr_req;
		gfx_fsetxattr_req compound_fsetxattr_req;
		gfx_rchecksum_req compound_rchecksum_req;
		gfx_setattr_req compound_setattr_req;
		gfx_fsetattr_req compound_fsetattr_req;
		gfx_readdirp_req compound_readdirp_req;
		gfx_release_req compound_release_req;
		gfx_releasedir_req compound_releasedir_req;
		gfx_fremovexattr_req compound_fremovexattr_req;
		gfx_fallocate_req compound_fallocate_req;
		gfx_discard_req compound_discard_req;
		gfx_zerofill_req compound_zerofill_req;
		gfx_ipc_req compound_ipc_req;
		gfx_seek_req compound_seek_req;
		gfx_lease_req compound_lease_req;
	} compound_req_v2_u;
};
typedef struct compound_req_v2 compound_req_v2;

struct gfx_compound_req {
	int compound_version;
	glusterfs_compound_fop_t compound_fop_enum;
	struct {
		u_int compound_req_array_len;
		compound_req_v2 *compound_req_array_val;
	} compound_req_array;
	gfx_dict xdata;
};
typedef struct gfx_compound_req gfx_compound_req;

struct compound_rsp_v2 {
	glusterfs_fop_t fop_enum;
	union {
		gfx_common_iatt_rsp compound_stat_rsp;
		gfx_readlink_rsp compound_readlink_rsp;
		gfx_common_3iatt_rsp compound_mknod_rsp;
		gfx_common_3iatt_rsp compound_mkdir_rsp;
		gfx_common_2iatt_rsp compound_unlink_rsp;
		gfx_common_2iatt_rsp compound_rmdir_rsp;
		gfx_common_3iatt_rsp compound_symlink_rsp;
		gfx_rename_rsp compound_rename_rsp;
		gfx_common_3iatt_rsp compound_link_rsp;
		gfx_common_2iatt_rsp compound_truncate_rsp;
		gfx_open_rsp compound_open_rsp;
		gfx_read_rsp compound_read_rsp;
		gfx_common_2iatt_rsp compound_write_rsp;
		gfx_statfs_rsp compound_statfs_rsp;
		gfx_common_rsp compound_flush_rsp;
		gfx_common_2iatt_rsp compound_fsync_rsp;
		gfx_common_dict_rsp compound_getxattr_rsp;
		gfx_common_rsp compound_setxattr_rsp;
		gfx_common_rsp compound_removexattr_rsp;
		gfx_open_rsp compound_opendir_rsp;
		gfx_common_rsp compound_fsyncdir_rsp;
		gfx_common_rsp compound_access_rsp;
		gfx_create_rsp compound_create_rsp;
		gfx_common_2iatt_rsp compound_ftruncate_rsp;
		gfx_common_iatt_rsp compound_fstat_rsp;
		gfx_lk_rsp compound_lk_rsp;
		gfx_common_2iatt_rsp compound_lookup_rsp;
		gfx_readdir_rsp compound_readdir_rsp;
		gfx_common_rsp compound_inodelk_rsp;
		gfx_common_rsp compound_finodelk_rsp;
		gfx_common_rsp compound_entrylk_rsp;
		gfx_common_rsp compound_fentrylk_rsp;
		gfx_common_dict_rsp compound_xattrop_rsp;
		gfx_common_dict_rsp compound_fxattrop_rsp;
		gfx_common_dict_rsp compound_fgetxattr_rsp;
		gfx_common_rsp compound_fsetxattr_rsp;
		gfx_rchecksum_rsp compound_rchecksum_rsp;
		gfx_common_2iatt_rsp compound_setattr_rsp;
		gfx_common_2iatt_rsp compound_fsetattr_rsp;
		gfx_readdirp_rsp compound_readdirp_rsp;
		gfx_common_rsp compound_release_rsp;
		gfx_common_rsp compound_releasedir_rsp;
		gfx_common_rsp compound_fremovexattr_rsp;
		gfx_common_2iatt_rsp compound_fallocate_rsp;
		gfx_common_2iatt_rsp compound_discard_rsp;
		gfx_common_2iatt_rsp compound_zerofill_rsp;
		gfx_common_rsp compound_ipc_rsp;
		gfx_seek_rsp compound_seek_rsp;
		gfx_lease_rsp compound_lease_rsp;
	} compound_rsp_v2_u;
};
typedef struct compound_rsp_v2 compound_rsp_v2;

struct gfx_compound_rsp {
	int op_ret;
	int op_errno;
	struct {
		u_int compound_rsp_array_len;
		compound_rsp_v2 *compound_rsp_array_val;
	} compound_rsp_array;
	gfx_dict xdata;
};
typedef struct gfx_compound_rsp gfx_compound_rsp;

struct gfs4_inodelk_contention_req {
	char gfid[16];
	struct gf_proto_flock flock;
	u_int pid;
	char *domain;
	struct {
		u_int xdata_len;
		char *xdata_val;
	} xdata;
};
typedef struct gfs4_inodelk_contention_req gfs4_inodelk_contention_req;

struct gfs4_entrylk_contention_req {
	char gfid[16];
	u_int type;
	u_int pid;
	char *name;
	char *domain;
	struct {
		u_int xdata_len;
		char *xdata_val;
	} xdata;
};
typedef struct gfs4_entrylk_contention_req gfs4_entrylk_contention_req;

/* the xdr functions */

#if defined(__STDC__) || defined(__cplusplus)
extern  bool_t xdr_gfx_iattx (XDR *, gfx_iattx*);
extern  bool_t xdr_gfx_value (XDR *, gfx_value*);
extern  bool_t xdr_auth_glusterfs_params_v3 (XDR *, auth_glusterfs_params_v3*);
extern  bool_t xdr_gfx_dict_pair (XDR *, gfx_dict_pair*);
extern  bool_t xdr_gfx_dict (XDR *, gfx_dict*);
extern  bool_t xdr_gfx_common_rsp (XDR *, gfx_common_rsp*);
extern  bool_t xdr_gfx_common_iatt_rsp (XDR *, gfx_common_iatt_rsp*);
extern  bool_t xdr_gfx_common_2iatt_rsp (XDR *, gfx_common_2iatt_rsp*);
extern  bool_t xdr_gfx_common_3iatt_rsp (XDR *, gfx_common_3iatt_rsp*);
extern  bool_t xdr_gfx_fsetattr_req (XDR *, gfx_fsetattr_req*);
extern  bool_t xdr_gfx_rchecksum_req (XDR *, gfx_rchecksum_req*);
extern  bool_t xdr_gfx_icreate_req (XDR *, gfx_icreate_req*);
extern  bool_t xdr_gfx_put_req (XDR *, gfx_put_req*);
extern  bool_t xdr_gfx_namelink_req (XDR *, gfx_namelink_req*);
extern  bool_t xdr_gfx_stat_req (XDR *, gfx_stat_req*);
extern  bool_t xdr_gfx_readlink_req (XDR *, gfx_readlink_req*);
extern  bool_t xdr_gfx_readlink_rsp (XDR *, gfx_readlink_rsp*);
extern  bool_t xdr_gfx_mknod_req (XDR *, gfx_mknod_req*);
extern  bool_t xdr_gfx_mkdir_req (XDR *, gfx_mkdir_req*);
extern  bool_t xdr_gfx_unlink_req (XDR *, gfx_unlink_req*);
extern  bool_t xdr_gfx_rmdir_req (XDR *, gfx_rmdir_req*);
extern  bool_t xdr_gfx_symlink_req (XDR *, gfx_symlink_req*);
extern  bool_t xdr_gfx_rename_req (XDR *, gfx_rename_req*);
extern  bool_t xdr_gfx_rename_rsp (XDR *, gfx_rename_rsp*);
extern  bool_t xdr_gfx_link_req (XDR *, gfx_link_req*);
extern  bool_t xdr_gfx_truncate_req (XDR *, gfx_truncate_req*);
extern  bool_t xdr_gfx_open_req (XDR *, gfx_open_req*);
extern  bool_t xdr_gfx_open_rsp (XDR *, gfx_open_rsp*);
extern  bool_t xdr_gfx_opendir_req (XDR *, gfx_opendir_req*);
extern  bool_t xdr_gfx_read_req (XDR *, gfx_read_req*);
extern  bool_t xdr_gfx_read_rsp (XDR *, gfx_read_rsp*);
extern  bool_t xdr_gfx_lookup_req (XDR *, gfx_lookup_req*);
extern  bool_t xdr_gfx_write_req (XDR *, gfx_write_req*);
extern  bool_t xdr_gfx_statfs_req (XDR *, gfx_statfs_req*);
extern  bool_t xdr_gfx_statfs_rsp (XDR *, gfx_statfs_rsp*);
extern  bool_t xdr_gfx_lk_req (XDR *, gfx_lk_req*);
extern  bool_t xdr_gfx_lk_rsp (XDR *, gfx_lk_rsp*);
extern  bool_t xdr_gfx_lease_req (XDR *, gfx_lease_req*);
extern  bool_t xdr_gfx_lease_rsp (XDR *, gfx_lease_rsp*);
extern  bool_t xdr_gfx_recall_lease_req (XDR *, gfx_recall_lease_req*);
extern  bool_t xdr_gfx_inodelk_req (XDR *, gfx_inodelk_req*);
extern  bool_t xdr_gfx_finodelk_req (XDR *, gfx_finodelk_req*);
extern  bool_t xdr_gfx_flush_req (XDR *, gfx_flush_req*);
extern  bool_t xdr_gfx_fsync_req (XDR *, gfx_fsync_req*);
extern  bool_t xdr_gfx_setxattr_req (XDR *, gfx_setxattr_req*);
extern  bool_t xdr_gfx_fsetxattr_req (XDR *, gfx_fsetxattr_req*);
extern  bool_t xdr_gfx_xattrop_req (XDR *, gfx_xattrop_req*);
extern  bool_t xdr_gfx_common_dict_rsp (XDR *, gfx_common_dict_rsp*);
extern  bool_t xdr_gfx_fxattrop_req (XDR *, gfx_fxattrop_req*);
extern  bool_t xdr_gfx_getxattr_req (XDR *, gfx_getxattr_req*);
extern  bool_t xdr_gfx_fgetxattr_req (XDR *, gfx_fgetxattr_req*);
extern  bool_t xdr_gfx_removexattr_req (XDR *, gfx_removexattr_req*);
extern  bool_t xdr_gfx_fremovexattr_req (XDR *, gfx_fremovexattr_req*);
extern  bool_t xdr_gfx_fsyncdir_req (XDR *, gfx_fsyncdir_req*);
extern  bool_t xdr_gfx_readdir_req (XDR *, gfx_readdir_req*);
extern  bool_t xdr_gfx_readdirp_req (XDR *, gfx_readdirp_req*);
extern  bool_t xdr_gfx_access_req (XDR *, gfx_access_req*);
extern  bool_t xdr_gfx_create_req (XDR *, gfx_create_req*);
extern  bool_t xdr_gfx_create_rsp (XDR *, gfx_create_rsp*);
extern  bool_t xdr_gfx_ftruncate_req (XDR *, gfx_ftruncate_req*);
extern  bool_t xdr_gfx_fstat_req (XDR *, gfx_fstat_req*);
extern  bool_t xdr_gfx_entrylk_req (XDR *, gfx_entrylk_req*);
extern  bool_t xdr_gfx_fentrylk_req (XDR *, gfx_fentrylk_req*);
extern  bool_t xdr_gfx_setattr_req (XDR *, gfx_setattr_req*);
extern  bool_t xdr_gfx_fallocate_req (XDR *, gfx_fallocate_req*);
extern  bool_t xdr_gfx_discard_req (XDR *, gfx_discard_req*);
extern  bool_t xdr_gfx_zerofill_req (XDR *, gfx_zerofill_req*);
extern  bool_t xdr_gfx_rchecksum_rsp (XDR *, gfx_rchecksum_rsp*);
extern  bool_t xdr_gfx_ipc_req (XDR *, gfx_ipc_req*);
extern  bool_t xdr_gfx_seek_req (XDR *, gfx_seek_req*);
extern  bool_t xdr_gfx_seek_rsp (XDR *, gfx_seek_rsp*);
extern  bool_t xdr_gfx_setvolume_req (XDR *, gfx_setvolume_req*);
extern  bool_t xdr_gfx_copy_file_range_req (XDR *, gfx_copy_file_range_req*);
extern  bool_t xdr_gfx_setvolume_rsp (XDR *, gfx_setvolume_rsp*);
extern  bool_t xdr_gfx_getspec_req (XDR *, gfx_getspec_req*);
extern  bool_t xdr_gfx_getspec_rsp (XDR *, gfx_getspec_rsp*);
extern  bool_t xdr_gfx_notify_req (XDR *, gfx_notify_req*);
extern  bool_t xdr_gfx_notify_rsp (XDR *, gfx_notify_rsp*);
extern  bool_t xdr_gfx_releasedir_req (XDR *, gfx_releasedir_req*);
extern  bool_t xdr_gfx_release_req (XDR *, gfx_release_req*);
extern  bool_t xdr_gfx_dirlist (XDR *, gfx_dirlist*);
extern  bool_t xdr_gfx_readdir_rsp (XDR *, gfx_readdir_rsp*);
extern  bool_t xdr_gfx_dirplist (XDR *, gfx_dirplist*);
extern  bool_t xdr_gfx_readdirp_rsp (XDR *, gfx_readdirp_rsp*);
extern  bool_t xdr_gfx_set_lk_ver_rsp (XDR *, gfx_set_lk_ver_rsp*);
extern  bool_t xdr_gfx_set_lk_ver_req (XDR *, gfx_set_lk_ver_req*);
extern  bool_t xdr_gfx_event_notify_req (XDR *, gfx_event_notify_req*);
extern  bool_t xdr_gfx_getsnap_name_uuid_req (XDR *, gfx_getsnap_name_uuid_req*);
extern  bool_t xdr_gfx_getsnap_name_uuid_rsp (XDR *, gfx_getsnap_name_uuid_rsp*);
extern  bool_t xdr_gfx_getactivelk_rsp (XDR *, gfx_getactivelk_rsp*);
extern  bool_t xdr_gfx_getactivelk_req (XDR *, gfx_getactivelk_req*);
extern  bool_t xdr_gfx_setactivelk_req (XDR *, gfx_setactivelk_req*);
extern  bool_t xdr_compound_req_v2 (XDR *, compound_req_v2*);
extern  bool_t xdr_gfx_compound_req (XDR *, gfx_compound_req*);
extern  bool_t xdr_compound_rsp_v2 (XDR *, compound_rsp_v2*);
extern  bool_t xdr_gfx_compound_rsp (XDR *, gfx_compound_rsp*);
extern  bool_t xdr_gfs4_inodelk_contention_req (XDR *, gfs4_inodelk_contention_req*);
extern  bool_t xdr_gfs4_entrylk_contention_req (XDR *, gfs4_entrylk_contention_req*);

#else /* K&R C */
extern bool_t xdr_gfx_iattx ();
extern bool_t xdr_gfx_value ();
extern bool_t xdr_auth_glusterfs_params_v3 ();
extern bool_t xdr_gfx_dict_pair ();
extern bool_t xdr_gfx_dict ();
extern bool_t xdr_gfx_common_rsp ();
extern bool_t xdr_gfx_common_iatt_rsp ();
extern bool_t xdr_gfx_common_2iatt_rsp ();
extern bool_t xdr_gfx_common_3iatt_rsp ();
extern bool_t xdr_gfx_fsetattr_req ();
extern bool_t xdr_gfx_rchecksum_req ();
extern bool_t xdr_gfx_icreate_req ();
extern bool_t xdr_gfx_put_req ();
extern bool_t xdr_gfx_namelink_req ();
extern bool_t xdr_gfx_stat_req ();
extern bool_t xdr_gfx_readlink_req ();
extern bool_t xdr_gfx_readlink_rsp ();
extern bool_t xdr_gfx_mknod_req ();
extern bool_t xdr_gfx_mkdir_req ();
extern bool_t xdr_gfx_unlink_req ();
extern bool_t xdr_gfx_rmdir_req ();
extern bool_t xdr_gfx_symlink_req ();
extern bool_t xdr_gfx_rename_req ();
extern bool_t xdr_gfx_rename_rsp ();
extern bool_t xdr_gfx_link_req ();
extern bool_t xdr_gfx_truncate_req ();
extern bool_t xdr_gfx_open_req ();
extern bool_t xdr_gfx_open_rsp ();
extern bool_t xdr_gfx_opendir_req ();
extern bool_t xdr_gfx_read_req ();
extern bool_t xdr_gfx_read_rsp ();
extern bool_t xdr_gfx_lookup_req ();
extern bool_t xdr_gfx_write_req ();
extern bool_t xdr_gfx_statfs_req ();
extern bool_t xdr_gfx_statfs_rsp ();
extern bool_t xdr_gfx_lk_req ();
extern bool_t xdr_gfx_lk_rsp ();
extern bool_t xdr_gfx_lease_req ();
extern bool_t xdr_gfx_lease_rsp ();
extern bool_t xdr_gfx_recall_lease_req ();
extern bool_t xdr_gfx_inodelk_req ();
extern bool_t xdr_gfx_finodelk_req ();
extern bool_t xdr_gfx_flush_req ();
extern bool_t xdr_gfx_fsync_req ();
extern bool_t xdr_gfx_setxattr_req ();
extern bool_t xdr_gfx_fsetxattr_req ();
extern bool_t xdr_gfx_xattrop_req ();
extern bool_t xdr_gfx_common_dict_rsp ();
extern bool_t xdr_gfx_fxattrop_req ();
extern bool_t xdr_gfx_getxattr_req ();
extern bool_t xdr_gfx_fgetxattr_req ();
extern bool_t xdr_gfx_removexattr_req ();
extern bool_t xdr_gfx_fremovexattr_req ();
extern bool_t xdr_gfx_fsyncdir_req ();
extern bool_t xdr_gfx_readdir_req ();
extern bool_t xdr_gfx_readdirp_req ();
extern bool_t xdr_gfx_access_req ();
extern bool_t xdr_gfx_create_req ();
extern bool_t xdr_gfx_create_rsp ();
extern bool_t xdr_gfx_ftruncate_req ();
extern bool_t xdr_gfx_fstat_req ();
extern bool_t xdr_gfx_entrylk_req ();
extern bool_t xdr_gfx_fentrylk_req ();
extern bool_t xdr_gfx_setattr_req ();
extern bool_t xdr_gfx_fallocate_req ();
extern bool_t xdr_gfx_discard_req ();
extern bool_t xdr_gfx_zerofill_req ();
extern bool_t xdr_gfx_rchecksum_rsp ();
extern bool_t xdr_gfx_ipc_req ();
extern bool_t xdr_gfx_seek_req ();
extern bool_t xdr_gfx_seek_rsp ();
extern bool_t xdr_gfx_setvolume_req ();
extern bool_t xdr_gfx_copy_file_range_req ();
extern bool_t xdr_gfx_setvolume_rsp ();
extern bool_t xdr_gfx_getspec_req ();
extern bool_t xdr_gfx_getspec_rsp ();
extern bool_t xdr_gfx_notify_req ();
extern bool_t xdr_gfx_notify_rsp ();
extern bool_t xdr_gfx_releasedir_req ();
extern bool_t xdr_gfx_release_req ();
extern bool_t xdr_gfx_dirlist ();
extern bool_t xdr_gfx_readdir_rsp ();
extern bool_t xdr_gfx_dirplist ();
extern bool_t xdr_gfx_readdirp_rsp ();
extern bool_t xdr_gfx_set_lk_ver_rsp ();
extern bool_t xdr_gfx_set_lk_ver_req ();
extern bool_t xdr_gfx_event_notify_req ();
extern bool_t xdr_gfx_getsnap_name_uuid_req ();
extern bool_t xdr_gfx_getsnap_name_uuid_rsp ();
extern bool_t xdr_gfx_getactivelk_rsp ();
extern bool_t xdr_gfx_getactivelk_req ();
extern bool_t xdr_gfx_setactivelk_req ();
extern bool_t xdr_compound_req_v2 ();
extern bool_t xdr_gfx_compound_req ();
extern bool_t xdr_compound_rsp_v2 ();
extern bool_t xdr_gfx_compound_rsp ();
extern bool_t xdr_gfs4_inodelk_contention_req ();
extern bool_t xdr_gfs4_entrylk_contention_req ();

#endif /* K&R C */

#ifdef __cplusplus
}
#endif

#endif /* !_GLUSTERFS4_XDR_H_RPCGEN */
