10 unsigned char T_U_CHAR
21 unsigned long * T_OPAQUEPTR
55 #############################################################################
61 $var = (SV*)SvRV($arg);
63 Perl_croak(aTHX_ \"$var is not a reference\")
65 if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVAV)
66 $var = (AV*)SvRV($arg);
68 Perl_croak(aTHX_ \"$var is not an array reference\")
70 if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVHV)
71 $var = (HV*)SvRV($arg);
73 Perl_croak(aTHX_ \"$var is not a hash reference\")
75 if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVCV)
76 $var = (CV*)SvRV($arg);
78 Perl_croak(aTHX_ \"$var is not a code reference\")
82 $var = ($type)SvUV($arg)
84 $var = ($type)SvIV($arg)
86 $var = (int)SvIV($arg)
88 $var = ($type)SvIV($arg)
90 $var = (bool)SvTRUE($arg)
92 $var = (unsigned int)SvUV($arg)
94 $var = (short)SvIV($arg)
96 $var = (unsigned short)SvUV($arg)
98 $var = (long)SvIV($arg)
100 $var = (unsigned long)SvUV($arg)
102 $var = (char)*SvPV_nolen($arg)
104 $var = (unsigned char)SvUV($arg)
106 $var = (float)SvNV($arg)
108 $var = ($type)SvNV($arg)
110 $var = (double)SvNV($arg)
112 $var = ($type)SvPV_nolen($arg)
114 $var = INT2PTR($type,SvIV($arg))
117 IV tmp = SvIV((SV*)SvRV($arg));
118 $var = INT2PTR($type,tmp);
121 Perl_croak(aTHX_ \"$var is not a reference\")
123 if (sv_isa($arg, \"${ntype}\")) {
124 IV tmp = SvIV((SV*)SvRV($arg));
125 $var = *INT2PTR($type *, tmp);
128 Perl_croak(aTHX_ \"$var is not of type ${ntype}\")
130 if (sv_isa($arg, \"${ntype}\")) {
131 IV tmp = SvIV((SV*)SvRV($arg));
132 $var = INT2PTR($type, tmp);
135 Perl_croak(aTHX_ \"$var is not of type ${ntype}\")
137 if (sv_derived_from($arg, \"${ntype}\")) {
138 IV tmp = SvIV((SV*)SvRV($arg));
139 $var = INT2PTR($type,tmp);
142 Perl_croak(aTHX_ \"$var is not of type ${ntype}\")
144 if (sv_isa($arg, \"${ntype}\")) {
145 IV tmp = SvIV((SV*)SvRV($arg));
146 ${type}_desc = (\U${type}_DESC\E*) tmp;
147 $var = ${type}_desc->ptr;
150 Perl_croak(aTHX_ \"$var is not of type ${ntype}\")
153 IV tmp = SvIV((SV*)SvRV($arg));
154 $var = *INT2PTR($type,tmp);
157 Perl_croak(aTHX_ \"$var is not a reference\")
159 if (sv_isa($arg, \"${ntype}\")) {
160 IV tmp = SvIV((SV*)SvRV($arg));
161 $var = *INT2PTR($type,tmp);
164 Perl_croak(aTHX_ \"$var is not of type ${ntype}\")
166 $var = *($type *)SvPV_nolen($arg)
168 $var = ($type)SvPV_nolen($arg)
170 $var = XS_unpack_$ntype($arg)
172 $var = XS_unpack_$ntype($arg)
174 $var = make_perl_cb_$type($arg)
176 U32 ix_$var = $argoff;
177 $var = $ntype(items -= $argoff);
182 /* this is the number of elements in the array */
185 $var = PerlIO_findFILE(IoIFP(sv_2io($arg)))
187 $var = IoIFP(sv_2io($arg))
189 $var = IoIFP(sv_2io($arg))
191 $var = IoOFP(sv_2io($arg))
192 #############################################################################
197 $arg = newRV((SV*)$var);
199 $arg = newRV((SV*)$var);
201 $arg = newRV((SV*)$var);
203 $arg = newRV((SV*)$var);
205 sv_setiv($arg, (IV)$var);
207 sv_setuv($arg, (UV)$var);
209 sv_setiv($arg, (IV)$var);
213 sv_setpvn($arg, "0 but true", 10);
215 sv_setiv($arg, (IV)$var);
218 sv_setiv($arg, (IV)$var);
222 sv_setuv($arg, (UV)$var);
224 sv_setiv($arg, (IV)$var);
226 sv_setuv($arg, (UV)$var);
228 sv_setiv($arg, (IV)$var);
230 sv_setuv($arg, (UV)$var);
232 sv_setpvn($arg, (char *)&$var, 1);
234 sv_setuv($arg, (UV)$var);
236 sv_setnv($arg, (double)$var);
238 sv_setnv($arg, (NV)$var);
240 sv_setnv($arg, (double)$var);
242 sv_setpv((SV*)$arg, $var);
244 sv_setiv($arg, PTR2IV($var));
246 sv_setref_pv($arg, Nullch, (void*)$var);
248 sv_setref_pv($arg, \"${ntype}\", (void*)new $ntype($var));
250 sv_setref_pv($arg, \"${ntype}\", (void*)$var);
252 sv_setref_pv($arg, \"${ntype}\", (void*)$var);
254 sv_setref_pv($arg, \"${ntype}\", (void*)new\U${type}_DESC\E($var));
260 sv_setpvn($arg, (char *)&$var, sizeof($var));
262 sv_setpvn($arg, (char *)$var, sizeof(*$var));
264 XS_pack_$ntype($arg, $var);
266 XS_pack_$ntype($arg, $var, count_$ntype);
268 sv_setpvn($arg, $var.chp(), $var.size());
270 sv_setpvn($arg, $var.context.value().chp(),
271 $var.context.value().size());
275 EXTEND(SP,size_$var);
276 for (ix_$var = 0; ix_$var < size_$var; ix_$var++) {
277 ST(ix_$var) = sv_newmortal();
283 GV *gv = newGVgen("$Package");
284 PerlIO *fp = PerlIO_importFILE($var,0);
285 if ( fp && do_open(gv, "+<&", 3, FALSE, 0, 0, fp) )
286 sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));
292 GV *gv = newGVgen("$Package");
293 if ( do_open(gv, "<&", 2, FALSE, 0, 0, $var) )
294 sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));
300 GV *gv = newGVgen("$Package");
301 if ( do_open(gv, "+<&", 3, FALSE, 0, 0, $var) )
302 sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));
308 GV *gv = newGVgen("$Package");
309 if ( do_open(gv, "+>&", 3, FALSE, 0, 0, $var) )
310 sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));