10 unsigned char T_U_CHAR
17 # bool_t is defined in <rpc/rpc.h>
22 unsigned long * T_OPAQUEPTR
56 #############################################################################
62 $var = (SV*)SvRV($arg);
64 Perl_croak(aTHX_ \"%s: %s is not a reference\",
65 ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
68 if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVAV)
69 $var = (AV*)SvRV($arg);
71 Perl_croak(aTHX_ \"%s: %s is not an array reference\",
72 ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
75 if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVHV)
76 $var = (HV*)SvRV($arg);
78 Perl_croak(aTHX_ \"%s: %s is not a hash reference\",
79 ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
82 if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVCV)
83 $var = (CV*)SvRV($arg);
85 Perl_croak(aTHX_ \"%s: %s is not a code reference\",
86 ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
91 $var = ($type)SvUV($arg)
93 $var = ($type)SvIV($arg)
95 $var = (int)SvIV($arg)
97 $var = ($type)SvIV($arg)
99 $var = (bool)SvTRUE($arg)
101 $var = (unsigned int)SvUV($arg)
103 $var = (short)SvIV($arg)
105 $var = (unsigned short)SvUV($arg)
107 $var = (long)SvIV($arg)
109 $var = (unsigned long)SvUV($arg)
111 $var = (char)*SvPV_nolen($arg)
113 $var = (unsigned char)SvUV($arg)
115 $var = (float)SvNV($arg)
117 $var = ($type)SvNV($arg)
119 $var = (double)SvNV($arg)
121 $var = ($type)SvPV_nolen($arg)
123 $var = INT2PTR($type,SvIV($arg))
126 IV tmp = SvIV((SV*)SvRV($arg));
127 $var = INT2PTR($type,tmp);
130 Perl_croak(aTHX_ \"%s: %s is not a reference\",
131 ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
134 if (sv_isa($arg, \"${ntype}\")) {
135 IV tmp = SvIV((SV*)SvRV($arg));
136 $var = *INT2PTR($type *, tmp);
139 Perl_croak(aTHX_ \"%s: %s is not of type %s\",
140 ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
141 \"$var\", \"$ntype\")
143 if (sv_isa($arg, \"${ntype}\")) {
144 IV tmp = SvIV((SV*)SvRV($arg));
145 $var = INT2PTR($type, tmp);
148 Perl_croak(aTHX_ \"%s: %s is not of type %s\",
149 ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
150 \"$var\", \"$ntype\")
152 if (SvROK($arg) && sv_derived_from($arg, \"${ntype}\")) {
153 IV tmp = SvIV((SV*)SvRV($arg));
154 $var = INT2PTR($type,tmp);
157 Perl_croak(aTHX_ \"%s: %s is not of type %s\",
158 ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
159 \"$var\", \"$ntype\")
161 if (sv_isa($arg, \"${ntype}\")) {
162 IV tmp = SvIV((SV*)SvRV($arg));
163 ${type}_desc = (\U${type}_DESC\E*) tmp;
164 $var = ${type}_desc->ptr;
167 Perl_croak(aTHX_ \"%s: %s is not of type %s\",
168 ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
169 \"$var\", \"$ntype\")
172 IV tmp = SvIV((SV*)SvRV($arg));
173 $var = *INT2PTR($type,tmp);
176 Perl_croak(aTHX_ \"%s: %s is not a reference\",
177 ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
180 if (sv_isa($arg, \"${ntype}\")) {
181 IV tmp = SvIV((SV*)SvRV($arg));
182 $var = *INT2PTR($type,tmp);
185 Perl_croak(aTHX_ \"%s: %s is not of type %s\",
186 ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
187 \"$var\", \"$ntype\")
189 $var = *($type *)SvPV_nolen($arg)
191 $var = ($type)SvPV_nolen($arg)
193 $var = XS_unpack_$ntype($arg)
195 $var = XS_unpack_$ntype($arg)
197 $var = make_perl_cb_$type($arg)
199 U32 ix_$var = $argoff;
200 $var = $ntype(items -= $argoff);
205 /* this is the number of elements in the array */
208 $var = PerlIO_findFILE(IoIFP(sv_2io($arg)))
210 $var = IoIFP(sv_2io($arg))
212 $var = IoIFP(sv_2io($arg))
214 $var = IoOFP(sv_2io($arg))
215 #############################################################################
220 $arg = newRV((SV*)$var);
222 $arg = newRV((SV*)$var);
224 $arg = newRV((SV*)$var);
226 $arg = newRV((SV*)$var);
228 sv_setiv($arg, (IV)$var);
230 sv_setuv($arg, (UV)$var);
232 sv_setiv($arg, (IV)$var);
236 sv_setpvn($arg, "0 but true", 10);
238 sv_setiv($arg, (IV)$var);
241 sv_setiv($arg, (IV)$var);
245 sv_setuv($arg, (UV)$var);
247 sv_setiv($arg, (IV)$var);
249 sv_setuv($arg, (UV)$var);
251 sv_setiv($arg, (IV)$var);
253 sv_setuv($arg, (UV)$var);
255 sv_setpvn($arg, (char *)&$var, 1);
257 sv_setuv($arg, (UV)$var);
259 sv_setnv($arg, (double)$var);
261 sv_setnv($arg, (NV)$var);
263 sv_setnv($arg, (double)$var);
265 sv_setpv((SV*)$arg, $var);
267 sv_setiv($arg, PTR2IV($var));
269 sv_setref_pv($arg, Nullch, (void*)$var);
271 sv_setref_pv($arg, \"${ntype}\", (void*)new $ntype($var));
273 sv_setref_pv($arg, \"${ntype}\", (void*)$var);
275 sv_setref_pv($arg, \"${ntype}\", (void*)$var);
277 sv_setref_pv($arg, \"${ntype}\", (void*)new\U${type}_DESC\E($var));
283 sv_setpvn($arg, (char *)&$var, sizeof($var));
285 sv_setpvn($arg, (char *)$var, sizeof(*$var));
287 XS_pack_$ntype($arg, $var);
289 XS_pack_$ntype($arg, $var, count_$ntype);
291 sv_setpvn($arg, $var.chp(), $var.size());
293 sv_setpvn($arg, $var.context.value().chp(),
294 $var.context.value().size());
298 EXTEND(SP,size_$var);
299 for (ix_$var = 0; ix_$var < size_$var; ix_$var++) {
300 ST(ix_$var) = sv_newmortal();
306 GV *gv = newGVgen("$Package");
307 PerlIO *fp = PerlIO_importFILE($var,0);
308 if ( fp && do_open(gv, "+<&", 3, FALSE, 0, 0, fp) )
309 sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));
315 GV *gv = newGVgen("$Package");
316 if ( do_open(gv, "<&", 2, FALSE, 0, 0, $var) )
317 sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));
323 GV *gv = newGVgen("$Package");
324 if ( do_open(gv, "+<&", 3, FALSE, 0, 0, $var) )
325 sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));
331 GV *gv = newGVgen("$Package");
332 if ( do_open(gv, "+>&", 3, FALSE, 0, 0, $var) )
333 sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));