TYPEMAP
char * T_PV
unsigned char * T_PV
const char * T_PV
AV * T_AVREF
time_t T_TIME_T
size_t T_SIZE_T
long T_LONG
SSH2 * O_SESSION
SSH2_CHANNEL * O_CHANNEL
SSH2_LISTENER * O_LISTENER
SSH2_SFTP * O_SFTP
SSH2_FILE * O_FILE
SSH2_DIR * O_DIR
SSH2_PUBLICKEY* O_PUBLICKEY
SSH2_KNOWNHOSTS* O_KNOWNHOSTS
SSH2_RC T_SSH2_RC
SSH2_ERROR T_SSH2_ERROR
SSH2_NERROR T_SSH2_NERROR
SSH2_BYTES T_SSH2_BYTES
SSH2_BYTES64 T_SSH2_BYTES64
SSH2_BYTESU64 T_SSH2_BYTESU64
SSH2_BOOL T_SSH2_BOOL
SSH2_METHOD T_SSH2_METHOD
SSH2_FLAG T_SSH2_FLAG
SSH2_CALLBACK T_SSH2_CALLBACK
SSH2_HOSTKEY_HASH T_SSH2_HOSTKEY_HASH
SSH2_CHANNEL_EXTENDED_DATA T_SSH2_CHANNEL_EXTENDED_DATA
SSH2_CHARP T_SSH2_CHARP
SSH2_CHARP_OR_NULL T_SSH2_CHARP_OR_NULL
SSH2_STREAM_ID T_SSH2_STREAM_ID
OUTPUT
T_PV
sv_setpv((SV*)$arg, $var);
T_AVREF
$arg = newRV((SV*)$var);
T_SSH2_BYTES
$arg = ( (($var) < 0) ? &PL_sv_undef : newSVuv($var) );
T_SSH2_BYTES64
$arg = ( (($var) < 0) ? &PL_sv_undef : ((IVSIZE >= 8) ? newSVuv($var) : newSVnv($var)) );
T_SSH2_BYTESU64
$arg = ((IVSIZE >= 8) ? newSVuv($var) : newSVnv($var));
T_SSH2_BOOL
$arg = (($var) ? &PL_sv_yes : &PL_sv_no);
T_SSH2_RC
$arg = (($var) ? &PL_sv_yes : &PL_sv_undef);
T_SSH2_ERROR
$arg = newSViv($var);
T_SSH2_NERROR
$arg = ( (($var) < 0) ? &PL_sv_undef : &PL_sv_yes );
T_SSH2_CHARP_OR_NULL
$arg = ($var ? newSVpv($var, 0) : &PL_sv_undef);
O_SESSION
sv_setref_pv($arg, "Net::SSH2", (void *)$var);
O_CHANNEL
wrap_tied_into($arg, "Net::SSH2::Channel", (void *)$var);
O_LISTENER
sv_setref_pv($arg, "Net::SSH2::Listener", (void *)$var);
O_SFTP
sv_setref_pv($arg, "Net::SSH2::SFTP", (void *)$var);
O_FILE
wrap_tied_into($arg, "Net::SSH2::File", (void *)$var);
O_DIR
sv_setref_pv($arg, "Net::SSH2::Dir", (void *)$var);
O_PUBLICKEY
sv_setref_pv($arg, "Net::SSH2::PublicKey", (void *)$var);
O_KNOWNHOSTS
sv_setref_pv($arg, "Net::SSH2::KnownHosts", (void *)$var);
INPUT
T_PV
$var = ($type)SvPV_nolen($arg)
T_AVREF
if(SvROK($arg) && SvTYPE(SvRV($arg)) == SVt_PVAV)
$var = (AV*)SvRV($arg);
else
croak(\"$var is not an array reference\");
O_SESSION
$var = INT2PTR($type, unwrap($arg, \"$Package\", \"$func_name\"));
O_CHANNEL
$var = INT2PTR($type, unwrap_tied($arg, \"$Package\", \"$func_name\"));
O_LISTENER
$var = INT2PTR($type, unwrap($arg, \"$Package\", \"$func_name\"));
O_SFTP
$var = INT2PTR($type, unwrap($arg, \"$Package\", \"$func_name\"));
O_FILE
$var = INT2PTR($type, unwrap_tied($arg, \"$Package\", \"$func_name\"));
O_DIR
$var = INT2PTR($type, unwrap($arg, \"$Package\", \"$func_name\"));
O_PUBLICKEY
$var = INT2PTR($type, unwrap($arg, \"$Package\", \"$func_name\"));
O_KNOWNHOSTS
$var = INT2PTR($type, unwrap($arg, \"$Package\", \"$func_name\"));
T_SSH2_BOOL
$var = SvTRUE($arg);
T_SSH2_METHOD
$var = sv2iv_constant_or_croak(\"METHOD\", $arg);
T_SSH2_FLAG
$var = sv2iv_constant_or_croak(\"FLAG\", $arg);
T_SSH2_CALLBACK
$var = sv2iv_constant_or_croak(\"CALLBACK\", $arg);
T_SSH2_HOSTKEY_HASH
$var = sv2iv_constant_or_croak(\"HOSTKEY_HASH\", $arg);
T_SSH2_CHANNEL_EXTENDED_DATA
$var = sv2iv_constant_or_croak(\"CHANNEL_EXTENDED_DATA\", $arg);
T_SSH2_CHARP
$var = SvPVbyte_nolen($arg);
T_SSH2_CHARP_OR_NULL
$var = (SvOK($arg) ? SvPVbyte_nolen($arg) : NULL);
T_TIME_T
$var = SV2TYPE($arg, time_t);
T_SIZE_T
$var = SV2TYPE($arg, size_t);
T_INT
$var = my_sv2int($arg);
T_LONG
$var = SV2TYPE($arg, long);
T_SSH2_BYTES64
$var = SV2TYPE($arg, SSH2_BYTES64);
T_SSH2_BYTESU64
$var = SV2UTYPE($arg, SSH2_BYTESU64);
T_SSH2_STREAM_ID
$var = sv2iv_constant_or_croak(\"CHANNEL_FLUSH\", $arg);