TDB_CONTEXT *					T_PTROBJ_CLASS
TDB_DATA					T_TDB_DATA
mone_on_fail					T_TDB_MONE_ON_FAIL
const char *					T_PV
enum TDB_ERROR					T_UV
mode_t						T_UV
tdb_log_func					T_SV
tdb_traverse_func				T_SV
#############################################################################
INPUT
T_TDB_DATA
	if (SvOK($arg)) {
		STRLEN len;
		$var.dptr = SvPV($arg, len);
		$var.dsize = len;
	} else {
		$var.dptr = NULL;
		$var.dsize = 0;
	}
T_PTROBJ_CLASS
	if (sv_derived_from($arg, \"$Package\")) {
	    IV tmp = SvIV((SV*)SvRV($arg));
	    $var = INT2PTR($type,tmp);
	}
	else
	    croak(\"$var is not of type $Package\")
T_TDB_MONE_ON_FAIL
	NOT IMPLEMENTED

#############################################################################
OUTPUT
T_TDB_DATA
	if ($var.dptr)
		sv_setpvn((SV*)$arg, $var.dptr, $var.dsize);
	else
		$arg = &PL_sv_undef;
# note use of "class" string:
T_PTROBJ_CLASS
        sv_setref_pv($arg, class, (void*)$var);
T_TDB_MONE_ON_FAIL
	if ($var == -1) {
		$arg = &PL_sv_no;
	} else
		$arg = &PL_sv_yes;
