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

#ifndef _RPC_H_RPCGEN
#define _RPC_H_RPCGEN

#include "xdr_impl.h"


#ifdef __cplusplus
extern "C" {
#endif

#define RPC_MSG_VERSION 2

enum rpc_auth_flavor {
	RPC_AUTH_NONE = 0,
	RPC_AUTH_SYS = 1,
	RPC_AUTH_SHORT = 2,
	RPC_AUTH_DH = 3,
	RPC_RPCSEC_GSS = 6,
};
typedef enum rpc_auth_flavor rpc_auth_flavor;

enum rpc_msg_type {
	RPC_CALL = 0,
	RPC_REPLY = 1,
};
typedef enum rpc_msg_type rpc_msg_type;

enum rpc_reply_stat {
	RPC_MSG_ACCEPTED = 0,
	RPC_MSG_DENIED = 1,
};
typedef enum rpc_reply_stat rpc_reply_stat;

enum rpc_accept_stat {
	RPC_SUCCESS = 0,
	RPC_PROG_UNAVAIL = 1,
	RPC_PROG_MISMATCH = 2,
	RPC_PROC_UNAVAIL = 3,
	RPC_GARBAGE_ARGS = 4,
	RPC_SYSTEM_ERR = 5,
};
typedef enum rpc_accept_stat rpc_accept_stat;

enum rpc_reject_stat {
	RPC_MISMATCH = 0,
	RPC_AUTH_ERROR = 1,
};
typedef enum rpc_reject_stat rpc_reject_stat;

enum rpc_auth_stat {
	RPC_AUTH_OK = 0,
	RPC_AUTH_BADCRED = 1,
	RPC_AUTH_REJECTEDCRED = 2,
	RPC_AUTH_BADVERF = 3,
	RPC_AUTH_REJECTEDVERF = 4,
	RPC_AUTH_TOOWEAK = 5,
	RPC_AUTH_INVALIDRESP = 6,
	RPC_AUTH_FAILED = 7,
};
typedef enum rpc_auth_stat rpc_auth_stat;

struct rpc_opaque_auth {
	rpc_auth_flavor flavor;
	xdr_string_t body;
};
typedef struct rpc_opaque_auth rpc_opaque_auth;

struct rpc_call_body {
	u_int rpcvers;
	u_int prog;
	u_int vers;
	u_int proc;
	rpc_opaque_auth cred;
	rpc_opaque_auth verf;
};
typedef struct rpc_call_body rpc_call_body;

struct rpc_mismatch_info {
	u_int min_version;
	u_int max_version;
};
typedef struct rpc_mismatch_info rpc_mismatch_info;

struct rpc_accepted_reply_body {
	rpc_accept_stat stat;
	union {
		rpc_mismatch_info mismatch_info;
	};
};
typedef struct rpc_accepted_reply_body rpc_accepted_reply_body;

struct rpc_accepted_reply {
	rpc_opaque_auth verf;
	rpc_accepted_reply_body reply_data;
};
typedef struct rpc_accepted_reply rpc_accepted_reply;

struct rpc_rejected_reply {
	rpc_reject_stat stat;
	union {
		rpc_mismatch_info mismatch_info;
		rpc_auth_stat auth_stat;
	};
};
typedef struct rpc_rejected_reply rpc_rejected_reply;

struct rpc_reply_body {
	rpc_reply_stat stat;
	union {
		rpc_accepted_reply areply;
		rpc_rejected_reply rreply;
	};
};
typedef struct rpc_reply_body rpc_reply_body;

struct rpc_msg_body {
	rpc_msg_type dir;
	union {
		rpc_call_body cbody;
		rpc_reply_body rbody;
	};
};
typedef struct rpc_msg_body rpc_msg_body;

struct rpc_msg {
	u_int xid;
	rpc_msg_body body;
};
typedef struct rpc_msg rpc_msg;

/* the xdr functions */


extern  bool_t xdr_rpc_auth_flavor (XDR *, rpc_auth_flavor*);
extern  bool_t xdr_rpc_msg_type (XDR *, rpc_msg_type*);
extern  bool_t xdr_rpc_reply_stat (XDR *, rpc_reply_stat*);
extern  bool_t xdr_rpc_accept_stat (XDR *, rpc_accept_stat*);
extern  bool_t xdr_rpc_reject_stat (XDR *, rpc_reject_stat*);
extern  bool_t xdr_rpc_auth_stat (XDR *, rpc_auth_stat*);
extern  bool_t xdr_rpc_opaque_auth (XDR *, rpc_opaque_auth*);
extern  bool_t xdr_rpc_call_body (XDR *, rpc_call_body*);
extern  bool_t xdr_rpc_mismatch_info (XDR *, rpc_mismatch_info*);
extern  bool_t xdr_rpc_accepted_reply_body (XDR *, rpc_accepted_reply_body*);
extern  bool_t xdr_rpc_accepted_reply (XDR *, rpc_accepted_reply*);
extern  bool_t xdr_rpc_rejected_reply (XDR *, rpc_rejected_reply*);
extern  bool_t xdr_rpc_reply_body (XDR *, rpc_reply_body*);
extern  bool_t xdr_rpc_msg_body (XDR *, rpc_msg_body*);
extern  bool_t xdr_rpc_msg (XDR *, rpc_msg*);


#ifdef __cplusplus
}
#endif

#endif /* !_RPC_H_RPCGEN */
