diff options
Diffstat (limited to 'src/perl/PMDA/typemap')
-rw-r--r-- | src/perl/PMDA/typemap | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/perl/PMDA/typemap b/src/perl/PMDA/typemap new file mode 100644 index 0000000..5846f97 --- /dev/null +++ b/src/perl/PMDA/typemap @@ -0,0 +1,27 @@ +###################################################################### +# INPUT/OUTPUT maps +# O_OBJECT -> links an opaque C object to a blessed Perl object. +# +TYPEMAP +pmdaInterface * O_OBJECT +pmdaInstid * T_PTROBJ + +###################################################################### +OUTPUT + +O_OBJECT + sv_setref_pv( $arg, CLASS, (void*)$var ); + + +###################################################################### +INPUT + +O_OBJECT + if (sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG)) + $var = ($type)SvIV((SV *)SvRV($arg)); + else { + warn(\"${Package}::$func_name() -- $var is not a blessed SV reference\"); + XSRETURN_UNDEF; + } + +###################################################################### |