DB_ENV *		DB_ENV
DB_ENV_ornull *		DB_ENV_ornull
DB_ENV_ornuked *	DB_ENV_ornuked
DB_TXN *		DB_TXN
DB_TXN_ornull *		DB_TXN_ornull
DB_TXN_ornuked *	DB_TXN_ornuked
DB *			DB
DB_ornull *		DB_ornull
DB_ornuked *		DB_ornuked
DBC *			DBC
DBC_ornull *		DBC_ornull
DBC_ornuked *		DBC_ornuked
DB_SEQUENCE *  		DB_SEQUENCE
DB_SEQUENCE_ornull *	DB_SEQUENCE_ornull
DB_SEQUENCE_ornuked *	DB_SEQUENCE_ornuked

SV8 *		T_SV8
bdb_filename	BDB_FILENAME
db_seq_t	DB_SEQ


INPUT

T_SV8
	($var) = $arg;
        if (SvPOKp ($var) && !sv_utf8_downgrade ($var, 1))
          croak (\"\\\"%s\\\" argument must be byte/octet-encoded\", \"$var\")

BDB_FILENAME
        ($var) = get_bdb_filename ($arg);

DB_SEQ
	$var = sizeof (IV) > 4 ? SvIV ($arg) : SvNV ($arg);

DB_ENV
        SvPTR ($var, $arg, DB_ENV *, BDB::Env, 0);

DB_TXN
        SvPTR ($var, $arg, DB_TXN *, BDB::Txn, 0);

DBC
        SvPTR ($var, $arg, DBC *, BDB::Cursor, 0);

DB
        SvPTR ($var, $arg, DB *, BDB::Db, 0);

DB_SEQUENCE
        SvPTR ($var, $arg, DB_SEQUENCE *, BDB::Sequence, 0);


DB_ENV_ornull
        SvPTR ($var, $arg, DB_ENV *, BDB::Env, 1);

DB_TXN_ornull
        SvPTR ($var, $arg, DB_TXN *, BDB::Txn, 1);

DBC_ornull
        SvPTR ($var, $arg, DBC *, BDB::Cursor, 1);

DB_ornull
        SvPTR ($var, $arg, DB *, BDB::Db, 1);

DB_SEQUENCE_ornull
        SvPTR ($var, $arg, DB_SEQUENCE *, BDB::Sequence, 1);


DB_ENV_ornuked
        SvPTR ($var, $arg, DB_ENV *, BDB::Env, 2);

DB_TXN_ornuked
        SvPTR ($var, $arg, DB_TXN *, BDB::Txn, 2);

DBC_ornuked
        SvPTR ($var, $arg, DBC *, BDB::Cursor, 2);

DB_ornuked
        SvPTR ($var, $arg, DB *, BDB::Db, 2);

DB_SEQUENCE_ornuked
        SvPTR ($var, $arg, DB_SEQUENCE *, BDB::Sequence, 2);


OUTPUT

DB_ENV
	sv_setref_pv ($arg, "BDB::Env", (void *)$var);

DB_TXN
	sv_setref_pv ($arg, "BDB::Txn", (void *)$var);

DBC
	sv_setref_pv ($arg, "BDB::Cursor", (void *)$var);

DB
	sv_setref_pv ($arg, "BDB::Db", (void *)$var);

DB_SEQUENCE
	sv_setref_pv ($arg, "BDB::Sequence", (void *)$var);
