TYPEMAP
TskFsDir       *   O_OBJECT
TskFsBlock     *   O_OBJECT
TskImgInfo     *   O_OBJECT
TskVsInfo      *   O_OBJECT
TskVsPartInfo  *   O_OBJECT
TskFsInfo      *   O_OBJECT
TskFsFile      *   O_FS_FILE
TskFsName      *   O_OBJECT
TskStack       *   O_OBJECT
TskFsMeta      *   O_OBJECT
TskFsAttribute *   O_OBJECT
TSK_FS_BLOCK_FLAG_ENUM  T_IV
TSK_IMG_TYPE_ENUM       T_IV
TSK_VS_TYPE_ENUM        T_IV
TSK_FS_TYPE_ENUM        T_IV
TSK_DADDR_T             T_IV
TSK_INUM_T              T_IV
TSK_OFF_T               T_IV
TSK_FS_META_TYPE_ENUM   T_IV
TSK_FS_META_FLAG_ENUM   T_IV
TSK_FS_ATTR_TYPE_ENUM   T_IV
TSK_FS_NAME_FLAG_ENUM   T_IV
size_t                  T_IV
time_t                  T_IV
uint32_t                T_IV
uint16_t                T_IV
uint8_t                 T_IV

INPUT
O_FS_FILE
    if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) ) {
        $var = INT2PTR($type,SvIV((SV*)SvRV( $arg )));
    } else{
        warn( \"${Package}::$func_name() -- $var is not a blessed SV reference\" );
        XSRETURN_UNDEF;
    }

O_OBJECT
    if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) ) {
        $var = INT2PTR($type,SvIV((SV*)SvRV( $arg )));
    } else{
        warn( \"${Package}::$func_name() -- $var is not a blessed SV reference\" );
        XSRETURN_UNDEF;
    }

OUTPUT
O_FS_FILE
        sv_setref_pv( $arg, (char *)"Tsk::Fs::File", (void*)$var );

O_OBJECT
        sv_setref_pv( $arg, (char *)CLASS, (void*)$var );
