summaryrefslogtreecommitdiff
path: root/src/perl/PMDA/typemap
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2014-10-26 12:33:50 +0400
committerIgor Pashev <pashev.igor@gmail.com>2014-10-26 12:33:50 +0400
commit47e6e7c84f008a53061e661f31ae96629bc694ef (patch)
tree648a07f3b5b9d67ce19b0fd72e8caa1175c98f1a /src/perl/PMDA/typemap
downloadpcp-debian.tar.gz
Debian 3.9.10debian/3.9.10debian
Diffstat (limited to 'src/perl/PMDA/typemap')
-rw-r--r--src/perl/PMDA/typemap27
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;
+ }
+
+######################################################################