11
unsigned char T_U_CHAR
21
unsigned long * T_OPAQUEPTR
50
#############################################################################
55
if (sv_isa($arg, \"${ntype}\"))
56
$var = (SV*)SvRV($arg);
58
croak(\"$var is not of type ${ntype}\")
60
if (sv_isa($arg, \"${ntype}\"))
61
$var = (AV*)SvRV($arg);
63
croak(\"$var is not of type ${ntype}\")
65
if (sv_isa($arg, \"${ntype}\"))
66
$var = (HV*)SvRV($arg);
68
croak(\"$var is not of type ${ntype}\")
70
if (sv_isa($arg, \"${ntype}\"))
71
$var = (CV*)SvRV($arg);
73
croak(\"$var is not of type ${ntype}\")
77
$var = ($type)SvUV($arg)
79
$var = ($type)SvIV($arg)
81
$var = (int)SvIV($arg)
83
$var = ($type)SvIV($arg)
85
$var = (int)SvIV($arg)
87
$var = (unsigned int)SvUV($arg)
89
$var = (short)SvIV($arg)
91
$var = (unsigned short)SvUV($arg)
93
$var = (long)SvIV($arg)
95
$var = (unsigned long)SvUV($arg)
97
$var = (char)*SvPV($arg,PL_na)
99
$var = (unsigned char)SvUV($arg)
101
$var = (float)SvNV($arg)
103
$var = ($type)SvNV($arg)
105
$var = (double)SvNV($arg)
107
$var = ($type)SvPV($arg,PL_na)
109
$var = ($type)SvIV($arg)
112
IV tmp = SvIV((SV*)SvRV($arg));
116
croak(\"$var is not a reference\")
118
if (sv_isa($arg, \"${type}\")) {
119
IV tmp = SvIV((SV*)SvRV($arg));
120
$var = *($type *) tmp;
123
croak(\"$var is not of type ${ntype}\")
125
if (sv_isa($arg, \"${type}\")) {
126
IV tmp = SvIV((SV*)SvRV($arg));
130
croak(\"$var is not of type ${ntype}\")
132
if (sv_derived_from($arg, \"${ntype}\")) {
133
IV tmp = SvIV((SV*)SvRV($arg));
137
croak(\"$var is not of type ${ntype}\")
139
if (sv_isa($arg, \"${ntype}\")) {
140
IV tmp = SvIV((SV*)SvRV($arg));
141
${type}_desc = (\U${type}_DESC\E*) tmp;
142
$var = ${type}_desc->ptr;
145
croak(\"$var is not of type ${ntype}\")
148
IV tmp = SvIV((SV*)SvRV($arg));
152
croak(\"$var is not a reference\")
154
if (sv_isa($arg, \"${ntype}\")) {
155
IV tmp = SvIV((SV*)SvRV($arg));
159
croak(\"$var is not of type ${ntype}\")
163
$var = ($type)SvPV($arg,PL_na)
165
$var = XS_unpack_$ntype($arg)
167
$var = XS_unpack_$ntype($arg)
169
$var = make_perl_cb_$type($arg)
171
$var = $ntype(items -= $argoff);
172
U32 ix_$var = $argoff;
177
$var = IoIFP(sv_2io($arg))
179
$var = IoIFP(sv_2io($arg))
181
$var = IoOFP(sv_2io($arg))
182
#############################################################################
187
$arg = newRV((SV*)$var);
189
$arg = newRV((SV*)$var);
191
$arg = newRV((SV*)$var);
193
$arg = newRV((SV*)$var);
195
sv_setiv($arg, (IV)$var);
197
sv_setuv($arg, (UV)$var);
199
sv_setiv($arg, (IV)$var);
203
sv_setpvn($arg, "0 but true", 10);
205
sv_setiv($arg, (IV)$var);
208
sv_setiv($arg, (IV)$var);
212
sv_setuv($arg, (UV)$var);
214
sv_setiv($arg, (IV)$var);
216
sv_setuv($arg, (UV)$var);
218
sv_setiv($arg, (IV)$var);
220
sv_setuv($arg, (UV)$var);
222
sv_setpvn($arg, (char *)&$var, 1);
224
sv_setuv($arg, (UV)$var);
226
sv_setnv($arg, (double)$var);
228
sv_setnv($arg, (double)$var);
230
sv_setnv($arg, (double)$var);
232
sv_setpv((SV*)$arg, $var);
234
sv_setiv($arg, (IV)$var);
236
sv_setref_pv($arg, Nullch, (void*)$var);
238
sv_setref_pv($arg, \"${ntype}\", (void*)new $ntype($var));
240
sv_setref_pv($arg, \"${ntype}\", (void*)$var);
242
sv_setref_pv($arg, \"${ntype}\", (void*)$var);
244
sv_setref_pv($arg, \"${ntype}\", (void*)new\U${type}_DESC\E($var));
246
sv_setrefref($arg, \"${ntype}\", XS_service_$ntype,
247
($var ? (void*)new $ntype($var) : 0));
251
sv_setpvn($arg, (char *)&$var, sizeof($var));
253
sv_setpvn($arg, (char *)$var, sizeof(*$var)), XFree((char *)$var);
255
XS_pack_$ntype($arg, $var);
257
XS_pack_$ntype($arg, $var, count_$ntype);
259
sv_setpvn($arg, $var.chp(), $var.size());
261
sv_setpvn($arg, $var.context.value().chp(),
262
$var.context.value().size());
264
ST_EXTEND($var.size);
265
for (U32 ix_$var = 0; ix_$var < $var.size; ix_$var++) {
266
ST(ix_$var) = sv_newmortal();
272
GV *gv = newGVgen("$Package");
273
if ( do_open(gv, "<&", 2, FALSE, 0, 0, $var) )
274
sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));
280
GV *gv = newGVgen("$Package");
281
if ( do_open(gv, "+<&", 3, FALSE, 0, 0, $var) )
282
sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));
288
GV *gv = newGVgen("$Package");
289
if ( do_open(gv, "+>&", 3, FALSE, 0, 0, $var) )
290
sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));
306
$var = PDL->SvPDLV($arg)
312
PDL->SetSV_PDL($arg,$var);