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

#include "./gncRpc.h"
#ifndef xdr_enum_t
#define xdr_enum_t xdr_enum
#endif

bool_t
xdr_gncGUID (XDR *xdrs, gncGUID objp)
{
	register int32_t *buf;

	 if (!xdr_opaque (xdrs, objp, 16))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gnc_guidlist (XDR *xdrs, gnc_guidlist *objp)
{
	register int32_t *buf;

	 if (!xdr_pointer (xdrs, (char **)&objp->guid, sizeof (gncGUID), (xdrproc_t) xdr_gncGUID))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->next, sizeof (gnc_guidlist), (xdrproc_t) xdr_gnc_guidlist))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gnc_vers_list (XDR *xdrs, gnc_vers_list *objp)
{
	register int32_t *buf;

	 if (!xdr_pointer (xdrs, (char **)&objp->guid, sizeof (gncGUID), (xdrproc_t) xdr_gncGUID))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->vers))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->next, sizeof (gnc_vers_list), (xdrproc_t) xdr_gnc_vers_list))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncTimespec (XDR *xdrs, gncTimespec *objp)
{
	register int32_t *buf;

	 if (!xdr_int64_t (xdrs, &objp->tv_sec))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->tv_nsec))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncNumeric (XDR *xdrs, gncNumeric *objp)
{
	register int32_t *buf;

	 if (!xdr_int64_t (xdrs, &objp->num))
		 return FALSE;
	 if (!xdr_int64_t (xdrs, &objp->denom))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gnc_kvp_valuelist (XDR *xdrs, gnc_kvp_valuelist *objp)
{
	register int32_t *buf;

	 if (!xdr_pointer (xdrs, (char **)&objp->val, sizeof (struct gnc_kvp_value), (xdrproc_t) xdr_gnc_kvp_value))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->next, sizeof (gnc_kvp_valuelist), (xdrproc_t) xdr_gnc_kvp_valuelist))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gnc_kvp_value (XDR *xdrs, gnc_kvp_value *objp)
{
	register int32_t *buf;

	 if (!xdr_enum_t (xdrs, &objp->type))
		 return FALSE;
	switch (objp->type) {
	case KVP_TYPE_GINT64:
		 if (!xdr_int64_t (xdrs, &objp->gnc_kvp_value_u.int64))
			 return FALSE;
		break;
	case KVP_TYPE_DOUBLE:
		 if (!xdr_double (xdrs, &objp->gnc_kvp_value_u.dbl))
			 return FALSE;
		break;
	case KVP_TYPE_NUMERIC:
		 if (!xdr_gncNumeric (xdrs, &objp->gnc_kvp_value_u.numeric))
			 return FALSE;
		break;
	case KVP_TYPE_STRING:
		 if (!xdr_string (xdrs, &objp->gnc_kvp_value_u.str, ~0))
			 return FALSE;
		break;
	case KVP_TYPE_GUID:
		 if (!xdr_gncGUID (xdrs, objp->gnc_kvp_value_u.guid))
			 return FALSE;
		break;
	case KVP_TYPE_BINARY:
		 if (!xdr_bytes (xdrs, (char **)&objp->gnc_kvp_value_u.binary.binary_val, (u_int *) &objp->gnc_kvp_value_u.binary.binary_len, ~0))
			 return FALSE;
		break;
	case KVP_TYPE_GLIST:
		 if (!xdr_pointer (xdrs, (char **)&objp->gnc_kvp_value_u.glist, sizeof (gnc_kvp_valuelist), (xdrproc_t) xdr_gnc_kvp_valuelist))
			 return FALSE;
		break;
	case KVP_TYPE_FRAME:
		 if (!xdr_pointer (xdrs, (char **)&objp->gnc_kvp_value_u.frame, sizeof (struct gnc_kvp_frame), (xdrproc_t) xdr_gnc_kvp_frame))
			 return FALSE;
		break;
	default:
		return FALSE;
	}
	return TRUE;
}

bool_t
xdr_gnc_kvp (XDR *xdrs, gnc_kvp *objp)
{
	register int32_t *buf;

	 if (!xdr_string (xdrs, &objp->key, ~0))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->value, sizeof (gnc_kvp_value), (xdrproc_t) xdr_gnc_kvp_value))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gnc_kvp_frame (XDR *xdrs, gnc_kvp_frame *objp)
{
	register int32_t *buf;

	 if (!xdr_pointer (xdrs, (char **)&objp->data, sizeof (gnc_kvp), (xdrproc_t) xdr_gnc_kvp))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->next, sizeof (gnc_kvp_frame), (xdrproc_t) xdr_gnc_kvp_frame))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncCommodity (XDR *xdrs, gncCommodity *objp)
{
	register int32_t *buf;

	 if (!xdr_string (xdrs, &objp->fullname, ~0))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->namespace, ~0))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->mnemonic, ~0))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->printname, ~0))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->exchange_code, ~0))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->fraction))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gnc_commoditylist (XDR *xdrs, gnc_commoditylist *objp)
{
	register int32_t *buf;

	 if (!xdr_pointer (xdrs, (char **)&objp->commodity, sizeof (gncCommodity), (xdrproc_t) xdr_gncCommodity))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->next, sizeof (gnc_commoditylist), (xdrproc_t) xdr_gnc_commoditylist))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncCommodityPtr (XDR *xdrs, gncCommodityPtr *objp)
{
	register int32_t *buf;

	 if (!xdr_string (xdrs, &objp->namespace, ~0))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->mnemonic, ~0))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncAccount (XDR *xdrs, gncAccount *objp)
{
	register int32_t *buf;

	 if (!xdr_gncGUID (xdrs, objp->guid))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->name, ~0))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->code, ~0))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->desc, ~0))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->kvp_data, sizeof (gnc_kvp_frame), (xdrproc_t) xdr_gnc_kvp_frame))
		 return FALSE;
	 if (!xdr_enum_t (xdrs, &objp->type))
		 return FALSE;
	 if (!xdr_gncCommodityPtr (xdrs, &objp->commodity))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->parent, sizeof (gncGUID), (xdrproc_t) xdr_gncGUID))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->vers))
		 return FALSE;
	 if (!xdr_gncNumeric (xdrs, &objp->balance))
		 return FALSE;
	 if (!xdr_gncNumeric (xdrs, &objp->cleared_balance))
		 return FALSE;
	 if (!xdr_gncNumeric (xdrs, &objp->reconciled_balance))
		 return FALSE;
	 if (!xdr_gncNumeric (xdrs, &objp->share_balance))
		 return FALSE;
	 if (!xdr_gncNumeric (xdrs, &objp->share_cleared_balance))
		 return FALSE;
	 if (!xdr_gncNumeric (xdrs, &objp->share_reconciled_balance))
		 return FALSE;
	 if (!xdr_bool (xdrs, &objp->core_dirty))
		 return FALSE;
	 if (!xdr_bool (xdrs, &objp->do_free))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gnc_acctlist (XDR *xdrs, gnc_acctlist *objp)
{
	register int32_t *buf;

	 if (!xdr_pointer (xdrs, (char **)&objp->acct, sizeof (gncAccount), (xdrproc_t) xdr_gncAccount))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->next, sizeof (gnc_acctlist), (xdrproc_t) xdr_gnc_acctlist))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncDatePredicateData (XDR *xdrs, gncDatePredicateData *objp)
{
	register int32_t *buf;

	 if (!xdr_enum_t (xdrs, &objp->term_type))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->sense))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->usestart))
		 return FALSE;
	 if (!xdr_gncTimespec (xdrs, &objp->start))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->useend))
		 return FALSE;
	 if (!xdr_gncTimespec (xdrs, &objp->end))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncAmountPredicateData (XDR *xdrs, gncAmountPredicateData *objp)
{
	register int32_t *buf;

	 if (!xdr_enum_t (xdrs, &objp->term_type))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->sense))
		 return FALSE;
	 if (!xdr_enum_t (xdrs, &objp->how))
		 return FALSE;
	 if (!xdr_enum_t (xdrs, &objp->amt_sgn))
		 return FALSE;
	 if (!xdr_double (xdrs, &objp->amount))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncAccountPredicateData (XDR *xdrs, gncAccountPredicateData *objp)
{
	register int32_t *buf;

	 if (!xdr_enum_t (xdrs, &objp->term_type))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->sense))
		 return FALSE;
	 if (!xdr_enum_t (xdrs, &objp->how))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->acct_guids, sizeof (gnc_guidlist), (xdrproc_t) xdr_gnc_guidlist))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncStringPredicateData (XDR *xdrs, gncStringPredicateData *objp)
{
	register int32_t *buf;


	if (xdrs->x_op == XDR_ENCODE) {
		 if (!xdr_enum_t (xdrs, &objp->term_type))
			 return FALSE;
		buf = XDR_INLINE (xdrs, 3 * BYTES_PER_XDR_UNIT);
		if (buf == NULL) {
			 if (!xdr_int (xdrs, &objp->sense))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->case_sens))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->use_regexp))
				 return FALSE;

		} else {
		IXDR_PUT_LONG(buf, objp->sense);
		IXDR_PUT_LONG(buf, objp->case_sens);
		IXDR_PUT_LONG(buf, objp->use_regexp);
		}
		 if (!xdr_string (xdrs, &objp->matchstring, ~0))
			 return FALSE;
		return TRUE;
	} else if (xdrs->x_op == XDR_DECODE) {
		 if (!xdr_enum_t (xdrs, &objp->term_type))
			 return FALSE;
		buf = XDR_INLINE (xdrs, 3 * BYTES_PER_XDR_UNIT);
		if (buf == NULL) {
			 if (!xdr_int (xdrs, &objp->sense))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->case_sens))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->use_regexp))
				 return FALSE;

		} else {
		objp->sense = IXDR_GET_LONG(buf);
		objp->case_sens = IXDR_GET_LONG(buf);
		objp->use_regexp = IXDR_GET_LONG(buf);
		}
		 if (!xdr_string (xdrs, &objp->matchstring, ~0))
			 return FALSE;
	 return TRUE;
	}

	 if (!xdr_enum_t (xdrs, &objp->term_type))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->sense))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->case_sens))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->use_regexp))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->matchstring, ~0))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncClearedPredicateData (XDR *xdrs, gncClearedPredicateData *objp)
{
	register int32_t *buf;

	 if (!xdr_enum_t (xdrs, &objp->term_type))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->sense))
		 return FALSE;
	 if (!xdr_enum_t (xdrs, &objp->how))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncBalancePredicateData (XDR *xdrs, gncBalancePredicateData *objp)
{
	register int32_t *buf;

	 if (!xdr_enum_t (xdrs, &objp->term_type))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->sense))
		 return FALSE;
	 if (!xdr_enum_t (xdrs, &objp->how))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncMiscPredicateData (XDR *xdrs, gncMiscPredicateData *objp)
{
	register int32_t *buf;

	 if (!xdr_enum_t (xdrs, &objp->term_type))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->sense))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->how))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->data))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncPredicateData (XDR *xdrs, gncPredicateData *objp)
{
	register int32_t *buf;

	 if (!xdr_enum_t (xdrs, &objp->type))
		 return FALSE;
	switch (objp->type) {
	case PD_DATE:
		 if (!xdr_gncDatePredicateData (xdrs, &objp->gncPredicateData_u.date))
			 return FALSE;
		break;
	case PD_AMOUNT:
		 if (!xdr_gncAmountPredicateData (xdrs, &objp->gncPredicateData_u.amount))
			 return FALSE;
		break;
	case PD_ACCOUNT:
		 if (!xdr_gncAccountPredicateData (xdrs, &objp->gncPredicateData_u.acct))
			 return FALSE;
		break;
	case PD_STRING:
		 if (!xdr_gncStringPredicateData (xdrs, &objp->gncPredicateData_u.str))
			 return FALSE;
		break;
	case PD_CLEARED:
		 if (!xdr_gncClearedPredicateData (xdrs, &objp->gncPredicateData_u.cleared))
			 return FALSE;
		break;
	case PD_BALANCE:
		 if (!xdr_gncBalancePredicateData (xdrs, &objp->gncPredicateData_u.balance))
			 return FALSE;
		break;
	case PD_MISC:
		 if (!xdr_gncMiscPredicateData (xdrs, &objp->gncPredicateData_u.misc))
			 return FALSE;
		break;
	default:
		return FALSE;
	}
	return TRUE;
}

bool_t
xdr_gncQueryTerm (XDR *xdrs, gncQueryTerm *objp)
{
	register int32_t *buf;

	 if (!xdr_gncPredicateData (xdrs, &objp->data))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->p, sizeof (int), (xdrproc_t) xdr_int))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncQTList (XDR *xdrs, gncQTList *objp)
{
	register int32_t *buf;

	 if (!xdr_pointer (xdrs, (char **)&objp->qt, sizeof (gncQueryTerm), (xdrproc_t) xdr_gncQueryTerm))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->next, sizeof (gncQTList), (xdrproc_t) xdr_gncQTList))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncQTOrlist (XDR *xdrs, gncQTOrlist *objp)
{
	register int32_t *buf;

	 if (!xdr_pointer (xdrs, (char **)&objp->andlist, sizeof (gncQTList), (xdrproc_t) xdr_gncQTList))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->next, sizeof (gncQTOrlist), (xdrproc_t) xdr_gncQTOrlist))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncQuery (XDR *xdrs, gncQuery *objp)
{
	register int32_t *buf;


	if (xdrs->x_op == XDR_ENCODE) {
		 if (!xdr_pointer (xdrs, (char **)&objp->terms, sizeof (gncQTOrlist), (xdrproc_t) xdr_gncQTOrlist))
			 return FALSE;
		 if (!xdr_enum_t (xdrs, &objp->primary_sort))
			 return FALSE;
		 if (!xdr_enum_t (xdrs, &objp->secondary_sort))
			 return FALSE;
		 if (!xdr_enum_t (xdrs, &objp->tertiary_sort))
			 return FALSE;
		buf = XDR_INLINE (xdrs, 5 * BYTES_PER_XDR_UNIT);
		if (buf == NULL) {
			 if (!xdr_bool (xdrs, &objp->primary_increasing))
				 return FALSE;
			 if (!xdr_bool (xdrs, &objp->secondary_increasing))
				 return FALSE;
			 if (!xdr_bool (xdrs, &objp->tertiary_increasing))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->max_splits))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->changed))
				 return FALSE;

		} else {
		IXDR_PUT_BOOL(buf, objp->primary_increasing);
		IXDR_PUT_BOOL(buf, objp->secondary_increasing);
		IXDR_PUT_BOOL(buf, objp->tertiary_increasing);
		IXDR_PUT_LONG(buf, objp->max_splits);
		IXDR_PUT_LONG(buf, objp->changed);
		}
		 if (!xdr_enum_t (xdrs, &objp->last_run_type))
			 return FALSE;
		 if (!xdr_pointer (xdrs, (char **)&objp->acct_group, sizeof (int), (xdrproc_t) xdr_int))
			 return FALSE;
		 if (!xdr_pointer (xdrs, (char **)&objp->split_list, sizeof (int), (xdrproc_t) xdr_int))
			 return FALSE;
		 if (!xdr_pointer (xdrs, (char **)&objp->xtn_list, sizeof (int), (xdrproc_t) xdr_int))
			 return FALSE;
		return TRUE;
	} else if (xdrs->x_op == XDR_DECODE) {
		 if (!xdr_pointer (xdrs, (char **)&objp->terms, sizeof (gncQTOrlist), (xdrproc_t) xdr_gncQTOrlist))
			 return FALSE;
		 if (!xdr_enum_t (xdrs, &objp->primary_sort))
			 return FALSE;
		 if (!xdr_enum_t (xdrs, &objp->secondary_sort))
			 return FALSE;
		 if (!xdr_enum_t (xdrs, &objp->tertiary_sort))
			 return FALSE;
		buf = XDR_INLINE (xdrs, 5 * BYTES_PER_XDR_UNIT);
		if (buf == NULL) {
			 if (!xdr_bool (xdrs, &objp->primary_increasing))
				 return FALSE;
			 if (!xdr_bool (xdrs, &objp->secondary_increasing))
				 return FALSE;
			 if (!xdr_bool (xdrs, &objp->tertiary_increasing))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->max_splits))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->changed))
				 return FALSE;

		} else {
		objp->primary_increasing = IXDR_GET_BOOL(buf);
		objp->secondary_increasing = IXDR_GET_BOOL(buf);
		objp->tertiary_increasing = IXDR_GET_BOOL(buf);
		objp->max_splits = IXDR_GET_LONG(buf);
		objp->changed = IXDR_GET_LONG(buf);
		}
		 if (!xdr_enum_t (xdrs, &objp->last_run_type))
			 return FALSE;
		 if (!xdr_pointer (xdrs, (char **)&objp->acct_group, sizeof (int), (xdrproc_t) xdr_int))
			 return FALSE;
		 if (!xdr_pointer (xdrs, (char **)&objp->split_list, sizeof (int), (xdrproc_t) xdr_int))
			 return FALSE;
		 if (!xdr_pointer (xdrs, (char **)&objp->xtn_list, sizeof (int), (xdrproc_t) xdr_int))
			 return FALSE;
	 return TRUE;
	}

	 if (!xdr_pointer (xdrs, (char **)&objp->terms, sizeof (gncQTOrlist), (xdrproc_t) xdr_gncQTOrlist))
		 return FALSE;
	 if (!xdr_enum_t (xdrs, &objp->primary_sort))
		 return FALSE;
	 if (!xdr_enum_t (xdrs, &objp->secondary_sort))
		 return FALSE;
	 if (!xdr_enum_t (xdrs, &objp->tertiary_sort))
		 return FALSE;
	 if (!xdr_bool (xdrs, &objp->primary_increasing))
		 return FALSE;
	 if (!xdr_bool (xdrs, &objp->secondary_increasing))
		 return FALSE;
	 if (!xdr_bool (xdrs, &objp->tertiary_increasing))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->max_splits))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->changed))
		 return FALSE;
	 if (!xdr_enum_t (xdrs, &objp->last_run_type))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->acct_group, sizeof (int), (xdrproc_t) xdr_int))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->split_list, sizeof (int), (xdrproc_t) xdr_int))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->xtn_list, sizeof (int), (xdrproc_t) xdr_int))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncSplit (XDR *xdrs, gncSplit *objp)
{
	register int32_t *buf;

	 if (!xdr_gncGUID (xdrs, objp->guid))
		 return FALSE;
	 if (!xdr_gncGUID (xdrs, objp->acct_guid))
		 return FALSE;
	 if (!xdr_gncGUID (xdrs, objp->txn_guid))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->memo, ~0))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->action, ~0))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->kvp_data, sizeof (gnc_kvp_frame), (xdrproc_t) xdr_gnc_kvp_frame))
		 return FALSE;
	 if (!xdr_char (xdrs, &objp->reconciled))
		 return FALSE;
	 if (!xdr_gncTimespec (xdrs, &objp->date_reconciled))
		 return FALSE;
	 if (!xdr_gncNumeric (xdrs, &objp->value))
		 return FALSE;
	 if (!xdr_gncNumeric (xdrs, &objp->damount))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gnc_splitlist (XDR *xdrs, gnc_splitlist *objp)
{
	register int32_t *buf;

	 if (!xdr_pointer (xdrs, (char **)&objp->split, sizeof (gncSplit), (xdrproc_t) xdr_gncSplit))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->next, sizeof (gnc_splitlist), (xdrproc_t) xdr_gnc_splitlist))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncTransaction (XDR *xdrs, gncTransaction *objp)
{
	register int32_t *buf;

	 if (!xdr_gncGUID (xdrs, objp->guid))
		 return FALSE;
	 if (!xdr_gncTimespec (xdrs, &objp->date_entered))
		 return FALSE;
	 if (!xdr_gncTimespec (xdrs, &objp->date_posted))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->num, ~0))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->desc, ~0))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->kvp_data, sizeof (gnc_kvp_frame), (xdrproc_t) xdr_gnc_kvp_frame))
		 return FALSE;
	 if (!xdr_gncCommodityPtr (xdrs, &objp->common_currency))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->vers))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->splits, sizeof (gnc_splitlist), (xdrproc_t) xdr_gnc_splitlist))
		 return FALSE;
	 if (!xdr_bool (xdrs, &objp->do_free))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gnc_txnlist (XDR *xdrs, gnc_txnlist *objp)
{
	register int32_t *buf;

	 if (!xdr_pointer (xdrs, (char **)&objp->txn, sizeof (gncTransaction), (xdrproc_t) xdr_gncTransaction))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->next, sizeof (gnc_txnlist), (xdrproc_t) xdr_gnc_txnlist))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncrpc_ptr (XDR *xdrs, gncrpc_ptr objp)
{
	register int32_t *buf;

	 if (!xdr_opaque (xdrs, objp, 8))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncrpc_book_begin_args (XDR *xdrs, gncrpc_book_begin_args *objp)
{
	register int32_t *buf;

	 if (!xdr_gncrpc_ptr (xdrs, objp->book))
		 return FALSE;
	 if (!xdr_gncrpc_ptr (xdrs, objp->backend))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->book_id, ~0))
		 return FALSE;
	 if (!xdr_bool (xdrs, &objp->ignore_lock))
		 return FALSE;
	 if (!xdr_bool (xdrs, &objp->create))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncrpc_book_load_ret (XDR *xdrs, gncrpc_book_load_ret *objp)
{
	register int32_t *buf;

	 if (!xdr_int (xdrs, &objp->error))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->commodities, sizeof (gnc_commoditylist), (xdrproc_t) xdr_gnc_commoditylist))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->acctlist, sizeof (gnc_acctlist), (xdrproc_t) xdr_gnc_acctlist))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncrpc_backend_guid (XDR *xdrs, gncrpc_backend_guid *objp)
{
	register int32_t *buf;

	 if (!xdr_gncrpc_ptr (xdrs, objp->backend))
		 return FALSE;
	 if (!xdr_gncGUID (xdrs, objp->guid))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncrpc_backend_txn (XDR *xdrs, gncrpc_backend_txn *objp)
{
	register int32_t *buf;

	 if (!xdr_gncrpc_ptr (xdrs, objp->backend))
		 return FALSE;
	 if (!xdr_gncTransaction (xdrs, &objp->txn))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncrpc_commit_acct_args (XDR *xdrs, gncrpc_commit_acct_args *objp)
{
	register int32_t *buf;

	 if (!xdr_gncrpc_ptr (xdrs, objp->backend))
		 return FALSE;
	 if (!xdr_gncAccount (xdrs, &objp->acct))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->commodity, sizeof (gncCommodity), (xdrproc_t) xdr_gncCommodity))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncrpc_commit_txn_args (XDR *xdrs, gncrpc_commit_txn_args *objp)
{
	register int32_t *buf;

	 if (!xdr_gncrpc_ptr (xdrs, objp->backend))
		 return FALSE;
	 if (!xdr_gncTransaction (xdrs, &objp->new))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncrpc_sync1_args (XDR *xdrs, gncrpc_sync1_args *objp)
{
	register int32_t *buf;

	 if (!xdr_gncrpc_ptr (xdrs, objp->backend))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->commodities, sizeof (gnc_commoditylist), (xdrproc_t) xdr_gnc_commoditylist))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->acctlist, sizeof (gnc_vers_list), (xdrproc_t) xdr_gnc_vers_list))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->txnlist, sizeof (gnc_vers_list), (xdrproc_t) xdr_gnc_vers_list))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncrpc_sync1_ret (XDR *xdrs, gncrpc_sync1_ret *objp)
{
	register int32_t *buf;

	 if (!xdr_int (xdrs, &objp->error))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->send_acctlist, sizeof (gnc_vers_list), (xdrproc_t) xdr_gnc_vers_list))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->send_txnlist, sizeof (gnc_vers_list), (xdrproc_t) xdr_gnc_vers_list))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->acctlist, sizeof (gnc_acctlist), (xdrproc_t) xdr_gnc_acctlist))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->txnlist, sizeof (gnc_txnlist), (xdrproc_t) xdr_gnc_txnlist))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->commodities, sizeof (gnc_commoditylist), (xdrproc_t) xdr_gnc_commoditylist))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncrpc_sync2_args (XDR *xdrs, gncrpc_sync2_args *objp)
{
	register int32_t *buf;

	 if (!xdr_gncrpc_ptr (xdrs, objp->backend))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->acctlist, sizeof (gnc_acctlist), (xdrproc_t) xdr_gnc_acctlist))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->txnlist, sizeof (gnc_txnlist), (xdrproc_t) xdr_gnc_txnlist))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncrpc_query_args (XDR *xdrs, gncrpc_query_args *objp)
{
	register int32_t *buf;

	 if (!xdr_gncrpc_ptr (xdrs, objp->backend))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->group_parent_guid, sizeof (gncGUID), (xdrproc_t) xdr_gncGUID))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->query, sizeof (gncQuery), (xdrproc_t) xdr_gncQuery))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncrpc_query_ret (XDR *xdrs, gncrpc_query_ret *objp)
{
	register int32_t *buf;

	 if (!xdr_int (xdrs, &objp->error))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->txnlist, sizeof (gnc_vers_list), (xdrproc_t) xdr_gnc_vers_list))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncrpc_get_txns_args (XDR *xdrs, gncrpc_get_txns_args *objp)
{
	register int32_t *buf;

	 if (!xdr_gncrpc_ptr (xdrs, objp->backend))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->guids, sizeof (gnc_vers_list), (xdrproc_t) xdr_gnc_vers_list))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_gncrpc_get_txns_ret (XDR *xdrs, gncrpc_get_txns_ret *objp)
{
	register int32_t *buf;

	 if (!xdr_int (xdrs, &objp->error))
		 return FALSE;
	 if (!xdr_pointer (xdrs, (char **)&objp->txnlist, sizeof (gnc_txnlist), (xdrproc_t) xdr_gnc_txnlist))
		 return FALSE;
	return TRUE;
}
