/* Do not edit: automatically built by gen_rpc.awk. */
#include "db_config.h"

#ifdef HAVE_RPC
#ifndef NO_SYSTEM_INCLUDES
#include <sys/types.h>
#include <rpc/rpc.h>

#include <errno.h>
#include <string.h>
#endif
#include "db_server.h"

#include "db_int.h"
#include "db_page.h"
#include "db_ext.h"
#include "txn.h"

#include "gen_client_ext.h"

int
__dbcl_env_close_ret(dbenv, flags, replyp)
	DB_ENV * dbenv;
	u_int32_t flags;
	__env_close_reply *replyp;
{
	int ret;

	if (replyp->status != 0)
		return (replyp->status);

	/*
	 * XXX Code goes here
	 */

	return (replyp->status);
}

int
__dbcl_env_open_ret(dbenv, home, flags, mode, replyp)
	DB_ENV * dbenv;
	const char * home;
	u_int32_t flags;
	int mode;
	__env_open_reply *replyp;
{
	int ret;

	if (replyp->status != 0)
		return (replyp->status);

	/*
	 * XXX Code goes here
	 */

	return (replyp->status);
}

int
__dbcl_env_remove_ret(dbenv, home, flags, replyp)
	DB_ENV * dbenv;
	const char * home;
	u_int32_t flags;
	__env_remove_reply *replyp;
{
	int ret;

	if (replyp->status != 0)
		return (replyp->status);

	/*
	 * XXX Code goes here
	 */

	return (replyp->status);
}

int
__dbcl_txn_abort_ret(txnp, replyp)
	DB_TXN * txnp;
	__txn_abort_reply *replyp;
{
	int ret;

	if (replyp->status != 0)
		return (replyp->status);

	/*
	 * XXX Code goes here
	 */

	return (replyp->status);
}

int
__dbcl_txn_begin_ret(envp, parent, txnpp, flags, replyp)
	DB_ENV * envp;
	DB_TXN * parent;
	DB_TXN ** txnpp;
	u_int32_t flags;
	__txn_begin_reply *replyp;
{
	int ret;
	long txnid;

	if (replyp->status != 0)
		return (replyp->status);
	txnid = replyp->txnidcl_id;

	/*
	 * XXX Code goes here
	 */

	return (replyp->status);
}

int
__dbcl_txn_commit_ret(txnp, flags, replyp)
	DB_TXN * txnp;
	u_int32_t flags;
	__txn_commit_reply *replyp;
{
	int ret;

	if (replyp->status != 0)
		return (replyp->status);

	/*
	 * XXX Code goes here
	 */

	return (replyp->status);
}

int
__dbcl_db_close_ret(dbp, flags, replyp)
	DB * dbp;
	u_int32_t flags;
	__db_close_reply *replyp;
{
	int ret;

	if (replyp->status != 0)
		return (replyp->status);

	/*
	 * XXX Code goes here
	 */

	return (replyp->status);
}

int
__dbcl_db_get_ret(dbp, txnp, key, data, flags, replyp)
	DB * dbp;
	DB_TXN * txnp;
	DBT * key;
	DBT * data;
	u_int32_t flags;
	__db_get_reply *replyp;
{
	int ret;
	/* DBT key; */
	/* DBT data; */

	if (replyp->status != 0)
		return (replyp->status);
	/* Handle replyp->keydata; */
	/* Handle replyp->datadata; */

	/*
	 * XXX Code goes here
	 */

	return (replyp->status);
}

int
__dbcl_db_key_range_ret(dbp, txnp, key, range, flags, replyp)
	DB * dbp;
	DB_TXN * txnp;
	DBT * key;
	DB_KEY_RANGE * range;
	u_int32_t flags;
	__db_key_range_reply *replyp;
{
	int ret;
	double less;
	double equal;
	double greater;

	if (replyp->status != 0)
		return (replyp->status);
	less = replyp->less;
	equal = replyp->equal;
	greater = replyp->greater;

	/*
	 * XXX Code goes here
	 */

	return (replyp->status);
}

int
__dbcl_db_open_ret(dbp, name, subdb, type, flags, mode, replyp)
	DB * dbp;
	const char * name;
	const char * subdb;
	DBTYPE type;
	u_int32_t flags;
	int mode;
	__db_open_reply *replyp;
{
	int ret;
	DBTYPE type;
	u_int32_t dbflags;

	if (replyp->status != 0)
		return (replyp->status);
	type = replyp->type;
	dbflags = replyp->dbflags;

	/*
	 * XXX Code goes here
	 */

	return (replyp->status);
}

int
__dbcl_db_put_ret(dbp, txnp, key, data, flags, replyp)
	DB * dbp;
	DB_TXN * txnp;
	DBT * key;
	DBT * data;
	u_int32_t flags;
	__db_put_reply *replyp;
{
	int ret;
	/* DBT key; */

	if (replyp->status != 0)
		return (replyp->status);
	/* Handle replyp->keydata; */

	/*
	 * XXX Code goes here
	 */

	return (replyp->status);
}

int
__dbcl_db_remove_ret(dbp, name, subdb, flags, replyp)
	DB * dbp;
	const char * name;
	const char * subdb;
	u_int32_t flags;
	__db_remove_reply *replyp;
{
	int ret;

	if (replyp->status != 0)
		return (replyp->status);

	/*
	 * XXX Code goes here
	 */

	return (replyp->status);
}

int
__dbcl_db_rename_ret(dbp, name, subdb, newname, flags, replyp)
	DB * dbp;
	const char * name;
	const char * subdb;
	const char * newname;
	u_int32_t flags;
	__db_rename_reply *replyp;
{
	int ret;

	if (replyp->status != 0)
		return (replyp->status);

	/*
	 * XXX Code goes here
	 */

	return (replyp->status);
}

int __db_db_stat_statsreplist __P((__db_stat_statsreplist, u_int32_t **));
void __db_db_stat_statsfree __P((u_int32_t *));

int
__dbcl_db_stat_ret(dbp, sp, func0, flags, replyp)
	DB * dbp;
	void * sp;
	void *(*func0) __P((size_t));
	u_int32_t flags;
	__db_stat_reply *replyp;
{
	int ret;
	u_int32_t *__db_statslist;

	if (replyp->status != 0)
		return (replyp->status);

	if ((ret = __db_db_stat_statslist(replyp->statslist, &__db_statslist)) != 0)
		return (ret);

	/*
	 * XXX Handle list
	 */

	__db_db_stat_statsfree(__db_statslist);

	/*
	 * XXX Code goes here
	 */

	return (replyp->status);
}

int
__db_db_stat_statsreplist(locp, ppp)
	__db_stat_statsreplist *locp;
	u_int32_t **ppp;
{
	u_int32_t *pp;
	int cnt, ret, size;
	__db_stat_statsreplist *nl;

	for (cnt = 0, nl = locp; nl != NULL; cnt++, nl = nl->next)
		;

	if (cnt == 0) {
		*ppp = NULL;
		return (0);
	}
	size = sizeof(*pp) * cnt;
	if ((ret = __os_malloc(NULL, size, NULL, ppp)) != 0)
		return (ret);
	memset(*ppp, 0, size);
	for (pp = *ppp, nl = locp; nl != NULL; nl = nl->next, pp++) {
		*pp = *(u_int32_t *)nl->ent.ent_val;
	}
	return (0);
out:
	__db_db_stat_statsfree(*ppp);
	return (ret);
}

void
__db_db_stat_statsfree(pp)
	u_int32_t *pp;
{
	size_t size;
	u_int32_t *p;

	if (pp == NULL)
		return;
	size = sizeof(*p);
	for (p = pp; *p != 0; p++) {
		size += sizeof(*p);
	}
	__os_free(pp, size);
}

int
__dbcl_db_cursor_ret(dbp, txnp, dbcpp, flags, replyp)
	DB * dbp;
	DB_TXN * txnp;
	DBC ** dbcpp;
	u_int32_t flags;
	__db_cursor_reply *replyp;
{
	int ret;
	long dbcid;

	if (replyp->status != 0)
		return (replyp->status);
	dbcid = replyp->dbcidcl_id;

	/*
	 * XXX Code goes here
	 */

	return (replyp->status);
}

int
__dbcl_db_join_ret(dbp, curs, dbcp, flags, replyp)
	DB * dbp;
	DBC ** curs;
	DBC ** dbcp;
	u_int32_t flags;
	__db_join_reply *replyp;
{
	int ret;
	long dbcid;

	if (replyp->status != 0)
		return (replyp->status);
	dbcid = replyp->dbcidcl_id;

	/*
	 * XXX Code goes here
	 */

	return (replyp->status);
}

int
__dbcl_dbc_close_ret(dbc, replyp)
	DBC * dbc;
	__dbc_close_reply *replyp;
{
	int ret;

	if (replyp->status != 0)
		return (replyp->status);

	/*
	 * XXX Code goes here
	 */

	return (replyp->status);
}

int
__dbcl_dbc_count_ret(dbc, countp, flags, replyp)
	DBC * dbc;
	db_recno_t * countp;
	u_int32_t flags;
	__dbc_count_reply *replyp;
{
	int ret;
	db_recno_t dupcount;

	if (replyp->status != 0)
		return (replyp->status);
	dupcount = replyp->dupcount;

	/*
	 * XXX Code goes here
	 */

	return (replyp->status);
}

int
__dbcl_dbc_dup_ret(dbc, dbcp, flags, replyp)
	DBC * dbc;
	DBC ** dbcp;
	u_int32_t flags;
	__dbc_dup_reply *replyp;
{
	int ret;
	long dbcid;

	if (replyp->status != 0)
		return (replyp->status);
	dbcid = replyp->dbcidcl_id;

	/*
	 * XXX Code goes here
	 */

	return (replyp->status);
}

int
__dbcl_dbc_get_ret(dbc, key, data, flags, replyp)
	DBC * dbc;
	DBT * key;
	DBT * data;
	u_int32_t flags;
	__dbc_get_reply *replyp;
{
	int ret;
	/* DBT key; */
	/* DBT data; */

	if (replyp->status != 0)
		return (replyp->status);
	/* Handle replyp->keydata; */
	/* Handle replyp->datadata; */

	/*
	 * XXX Code goes here
	 */

	return (replyp->status);
}

int
__dbcl_dbc_put_ret(dbc, key, data, flags, replyp)
	DBC * dbc;
	DBT * key;
	DBT * data;
	u_int32_t flags;
	__dbc_put_reply *replyp;
{
	int ret;
	/* DBT key; */

	if (replyp->status != 0)
		return (replyp->status);
	/* Handle replyp->keydata; */

	/*
	 * XXX Code goes here
	 */

	return (replyp->status);
}

#endif /* HAVE_RPC */
