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

#include "rpc.h"
#include "xdr_impl_inline.h"

bool_t
xdr_rpc_auth_flavor (XDR *xdrs, rpc_auth_flavor *objp)
{
	
	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_rpc_msg_type (XDR *xdrs, rpc_msg_type *objp)
{
	
	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_rpc_reply_stat (XDR *xdrs, rpc_reply_stat *objp)
{
	
	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_rpc_accept_stat (XDR *xdrs, rpc_accept_stat *objp)
{
	
	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_rpc_reject_stat (XDR *xdrs, rpc_reject_stat *objp)
{
	
	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_rpc_auth_stat (XDR *xdrs, rpc_auth_stat *objp)
{
	
	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_rpc_opaque_auth (XDR *xdrs, rpc_opaque_auth *objp)
{
	
	 if (!xdr_rpc_auth_flavor (xdrs, &objp->flavor))
		 return FALSE;
	 if (!xdr_bytes(xdrs, &objp->body, 400))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_rpc_call_body (XDR *xdrs, rpc_call_body *objp)
{
	

	if (xdrs->x_op == XDR_ENCODE) {
				if (1) {
			 if (!xdr_u_int (xdrs, &objp->rpcvers))
				 return FALSE;
			 if (!xdr_u_int (xdrs, &objp->prog))
				 return FALSE;
			 if (!xdr_u_int (xdrs, &objp->vers))
				 return FALSE;
			 if (!xdr_u_int (xdrs, &objp->proc))
				 return FALSE;

		} else {
		IXDR_PUT_U_LONG(buf, objp->rpcvers);
		IXDR_PUT_U_LONG(buf, objp->prog);
		IXDR_PUT_U_LONG(buf, objp->vers);
		IXDR_PUT_U_LONG(buf, objp->proc);
		}
		 if (!xdr_rpc_opaque_auth (xdrs, &objp->cred))
			 return FALSE;
		 if (!xdr_rpc_opaque_auth (xdrs, &objp->verf))
			 return FALSE;
		return TRUE;
	} else if (xdrs->x_op == XDR_DECODE) {
				if (1) {
			 if (!xdr_u_int (xdrs, &objp->rpcvers))
				 return FALSE;
			 if (!xdr_u_int (xdrs, &objp->prog))
				 return FALSE;
			 if (!xdr_u_int (xdrs, &objp->vers))
				 return FALSE;
			 if (!xdr_u_int (xdrs, &objp->proc))
				 return FALSE;

		} else {
		objp->rpcvers = IXDR_GET_U_LONG(buf);
		objp->prog = IXDR_GET_U_LONG(buf);
		objp->vers = IXDR_GET_U_LONG(buf);
		objp->proc = IXDR_GET_U_LONG(buf);
		}
		 if (!xdr_rpc_opaque_auth (xdrs, &objp->cred))
			 return FALSE;
		 if (!xdr_rpc_opaque_auth (xdrs, &objp->verf))
			 return FALSE;
	 return TRUE;
	}

	 if (!xdr_u_int (xdrs, &objp->rpcvers))
		 return FALSE;
	 if (!xdr_u_int (xdrs, &objp->prog))
		 return FALSE;
	 if (!xdr_u_int (xdrs, &objp->vers))
		 return FALSE;
	 if (!xdr_u_int (xdrs, &objp->proc))
		 return FALSE;
	 if (!xdr_rpc_opaque_auth (xdrs, &objp->cred))
		 return FALSE;
	 if (!xdr_rpc_opaque_auth (xdrs, &objp->verf))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_rpc_mismatch_info (XDR *xdrs, rpc_mismatch_info *objp)
{
	
	 if (!xdr_u_int (xdrs, &objp->min_version))
		 return FALSE;
	 if (!xdr_u_int (xdrs, &objp->max_version))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_rpc_accepted_reply_body (XDR *xdrs, rpc_accepted_reply_body *objp)
{
	
	 if (!xdr_rpc_accept_stat (xdrs, &objp->stat))
		 return FALSE;
	switch (objp->stat) {
	case RPC_SUCCESS:
		break;
	case RPC_PROG_MISMATCH:
		 if (!xdr_rpc_mismatch_info (xdrs, &objp->mismatch_info))
			 return FALSE;
		break;
	default:
		break;
	}
	return TRUE;
}

bool_t
xdr_rpc_accepted_reply (XDR *xdrs, rpc_accepted_reply *objp)
{
	
	 if (!xdr_rpc_opaque_auth (xdrs, &objp->verf))
		 return FALSE;
	 if (!xdr_rpc_accepted_reply_body (xdrs, &objp->reply_data))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_rpc_rejected_reply (XDR *xdrs, rpc_rejected_reply *objp)
{
	
	 if (!xdr_rpc_reject_stat (xdrs, &objp->stat))
		 return FALSE;
	switch (objp->stat) {
	case RPC_MISMATCH:
		 if (!xdr_rpc_mismatch_info (xdrs, &objp->mismatch_info))
			 return FALSE;
		break;
	case RPC_AUTH_ERROR:
		 if (!xdr_rpc_auth_stat (xdrs, &objp->auth_stat))
			 return FALSE;
		break;
	default:
		return FALSE;
	}
	return TRUE;
}

bool_t
xdr_rpc_reply_body (XDR *xdrs, rpc_reply_body *objp)
{
	
	 if (!xdr_rpc_reply_stat (xdrs, &objp->stat))
		 return FALSE;
	switch (objp->stat) {
	case RPC_MSG_ACCEPTED:
		 if (!xdr_rpc_accepted_reply (xdrs, &objp->areply))
			 return FALSE;
		break;
	case RPC_MSG_DENIED:
		 if (!xdr_rpc_rejected_reply (xdrs, &objp->rreply))
			 return FALSE;
		break;
	default:
		return FALSE;
	}
	return TRUE;
}

bool_t
xdr_rpc_msg_body (XDR *xdrs, rpc_msg_body *objp)
{
	
	 if (!xdr_rpc_msg_type (xdrs, &objp->dir))
		 return FALSE;
	switch (objp->dir) {
	case RPC_CALL:
		 if (!xdr_rpc_call_body (xdrs, &objp->cbody))
			 return FALSE;
		break;
	case RPC_REPLY:
		 if (!xdr_rpc_reply_body (xdrs, &objp->rbody))
			 return FALSE;
		break;
	default:
		return FALSE;
	}
	return TRUE;
}

bool_t
xdr_rpc_msg (XDR *xdrs, rpc_msg *objp)
{
	
	 if (!xdr_u_int (xdrs, &objp->xid))
		 return FALSE;
	 if (!xdr_rpc_msg_body (xdrs, &objp->body))
		 return FALSE;
	return TRUE;
}
