TYPEMAP
struct ar *	T_AR_ARCHIVE
__LA_INT64_T	T_INT64
struct aix_big_fl_hdr *	T_AIX_BIG_FL_HDR
struct aix_big_ar_hdr *	T_AIX_BIG_AR_HDR
int64_t	T_INT64
uint64_t	T_UINT64

INPUT
T_AR_ARCHIVE
  if (sv_isobject($arg) && sv_derived_from($arg, \"Archive::Ar::Libarchive\"))
    $var = INT2PTR($type, SvIV((SV *) SvRV($arg)));
  else
    Perl_croak(aTHX_ \"$var is not of type Archive::Ar::Libarchive\");
T_AIX_BIG_FL_HDR
  if (sv_isobject($arg) && sv_derived_from($arg, \"Archive::Ar::Libarchive::AixBig::fl_hdr\"))
    $var = INT2PTR($type, SvIV((SV *) SvRV($arg)));
  else
    Perl_croak(aTHX_ \"$var is not of type Archive::Ar::Libarchive::AixBig::fl_hdr\");
T_AIX_BIG_AR_HDR
  if (sv_isobject($arg) && sv_derived_from($arg, \"Archive::Ar::Libarchive::AixBig::ar_hdr\"))
    $var = INT2PTR($type, SvIV((SV *) SvRV($arg)));
  else
    Perl_croak(aTHX_ \"$var is not of type Archive::Ar::Libarchive::AixBig::ar_hdr\");

T_INT64
        $var = SvI64($arg);
T_UINT64
        $var = SvU64($arg);

OUTPUT
T_AR_ARCHIVE
  sv_setref_pv($arg, \"Archive::Ar::Libarchive\", (void *) $var);
T_AIX_BIG_FL_HDR
  sv_setref_pv($arg, \"Archive::Ar::Libarchive::AixBig::fl_hdr\", (void *) $var);
T_AIX_BIG_AR_HDR
  $var != NULL ? sv_setref_pv($arg, \"Archive::Ar::Libarchive::AixBig::ar_hdr\", (void *) $var) : sv_setsv((SV*)$arg, &PL_sv_undef);
T_INT64
        $arg = newSVi64($var);
T_UINT64
        $arg = newSVu64($var);
