head	1.2;
access;
symbols
	RELENG_4_11_0_RELEASE:1.1.1.2
	RELENG_4_11:1.1.1.2.0.20
	RELENG_4_11_BP:1.1.1.2
	RELENG_4_10_0_RELEASE:1.1.1.2
	RELENG_4_10:1.1.1.2.0.18
	RELENG_4_10_BP:1.1.1.2
	RELENG_4_9_0_RELEASE:1.1.1.2
	RELENG_4_9:1.1.1.2.0.16
	RELENG_4_9_BP:1.1.1.2
	RELENG_4_8_0_RELEASE:1.1.1.2
	RELENG_4_8:1.1.1.2.0.14
	RELENG_4_8_BP:1.1.1.2
	RELENG_4_7_0_RELEASE:1.1.1.2
	RELENG_4_7:1.1.1.2.0.12
	RELENG_4_7_BP:1.1.1.2
	RELENG_4_6_2_RELEASE:1.1.1.2
	RELENG_4_6_1_RELEASE:1.1.1.2
	RELENG_4_6_0_RELEASE:1.1.1.2
	RELENG_4_6:1.1.1.2.0.10
	RELENG_4_6_BP:1.1.1.2
	v5_006_01:1.1.1.4
	RELENG_4_5_0_RELEASE:1.1.1.2
	RELENG_4_5:1.1.1.2.0.8
	RELENG_4_5_BP:1.1.1.2
	RELENG_4_4_0_RELEASE:1.1.1.2
	RELENG_4_4:1.1.1.2.0.6
	RELENG_4_4_BP:1.1.1.2
	RELENG_4_3_0_RELEASE:1.1.1.2
	RELENG_4_3:1.1.1.2.0.4
	RELENG_4_3_BP:1.1.1.2
	RELENG_4_2_0_RELEASE:1.1.1.2
	RELENG_4_1_1_RELEASE:1.1.1.2
	PRE_SMPNG:1.1.1.3
	RELENG_4_1_0_RELEASE:1.1.1.2
	v5_006:1.1.1.3
	RELENG_3_5_0_RELEASE:1.1.1.1.2.1
	RELENG_4_0_0_RELEASE:1.1.1.2
	RELENG_4:1.1.1.2.0.2
	RELENG_4_BP:1.1.1.2
	RELENG_3_4_0_RELEASE:1.1.1.1.2.1
	RELENG_3_3_0_RELEASE:1.1.1.1.2.1
	RELENG_3_2_PAO:1.1.1.1.2.1.0.2
	RELENG_3_2_PAO_BP:1.1.1.1.2.1
	RELENG_3_2_0_RELEASE:1.1.1.1.2.1
	v5_005_03:1.1.1.2
	RELENG_3_1_0_RELEASE:1.1.1.1
	RELENG_3:1.1.1.1.0.2
	RELENG_3_BP:1.1.1.1
	RELENG_3_0_0_RELEASE:1.1.1.1
	v5_005_02:1.1.1.1
	LWALL:1.1.1;
locks; strict;
comment	@# @;


1.2
date	2002.05.16.10.08.25;	author markm;	state dead;
branches;
next	1.1;

1.1
date	98.09.09.06.59.55;	author markm;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	98.09.09.06.59.55;	author markm;	state Exp;
branches
	1.1.1.1.2.1;
next	1.1.1.2;

1.1.1.2
date	99.05.02.14.25.46;	author markm;	state Exp;
branches;
next	1.1.1.3;

1.1.1.3
date	2000.06.25.11.03.28;	author markm;	state Exp;
branches;
next	1.1.1.4;

1.1.1.4
date	2002.03.16.20.14.06;	author markm;	state Exp;
branches;
next	;

1.1.1.1.2.1
date	99.05.05.13.16.46;	author markm;	state Exp;
branches;
next	;


desc
@@


1.2
log
@Perl is no longer in base. Long live the port!
@
text
@# $Header$ 
# basic C types
int			T_IV
unsigned		T_IV
unsigned int		T_IV
long			T_IV
unsigned long		T_IV
short			T_IV
unsigned short		T_IV
char			T_CHAR
unsigned char		T_U_CHAR
char *			T_PV
unsigned char *		T_PV
caddr_t			T_PV
wchar_t *		T_PV
wchar_t			T_IV
bool_t			T_IV
size_t			T_IV
ssize_t			T_IV
time_t			T_NV
unsigned long *		T_OPAQUEPTR
char **			T_PACKED
void *			T_PTR
Time_t *		T_PV
SV *			T_SV
SVREF			T_SVREF
AV *			T_AVREF
HV *			T_HVREF
CV *			T_CVREF

IV			T_IV
I32			T_IV
I16			T_IV
I8			T_IV
U32			T_U_LONG
U16			T_U_SHORT
U8			T_IV
Result			T_U_CHAR
Boolean			T_IV
double			T_DOUBLE
SysRet			T_SYSRET
SysRetLong		T_SYSRET
FILE *			T_IN
FileHandle		T_PTROBJ
InputStream		T_IN
InOutStream		T_INOUT
OutputStream		T_OUT
bool			T_BOOL

#############################################################################
INPUT
T_SV
	$var = $arg
T_SVREF
	if (sv_isa($arg, \"${ntype}\"))
	    $var = (SV*)SvRV($arg);
	else
	    croak(\"$var is not of type ${ntype}\")
T_AVREF
	if (sv_isa($arg, \"${ntype}\"))
	    $var = (AV*)SvRV($arg);
	else
	    croak(\"$var is not of type ${ntype}\")
T_HVREF
	if (sv_isa($arg, \"${ntype}\"))
	    $var = (HV*)SvRV($arg);
	else
	    croak(\"$var is not of type ${ntype}\")
T_CVREF
	if (sv_isa($arg, \"${ntype}\"))
	    $var = (CV*)SvRV($arg);
	else
	    croak(\"$var is not of type ${ntype}\")
T_SYSRET
	$var NOT IMPLEMENTED
T_IV
	$var = ($type)SvIV($arg)
T_INT
	$var = (int)SvIV($arg)
T_ENUM
	$var = ($type)SvIV($arg)
T_BOOL
	$var = (int)SvIV($arg)
T_U_INT
	$var = (unsigned int)SvIV($arg)
T_SHORT
	$var = (short)SvIV($arg)
T_U_SHORT
	$var = (unsigned short)SvIV($arg)
T_LONG
	$var = (long)SvIV($arg)
T_U_LONG
	$var = (unsigned long)SvIV($arg)
T_CHAR
	$var = (char)*SvPV($arg,PL_na)
T_U_CHAR
	$var = (unsigned char)SvIV($arg)
T_FLOAT
	$var = (float)SvNV($arg)
T_NV
	$var = ($type)SvNV($arg)
T_DOUBLE
	$var = (double)SvNV($arg)
T_PV
	$var = ($type)SvPV($arg,PL_na)
T_PTR
	$var = ($type)SvIV($arg)
T_PTRREF
	if (SvROK($arg)) {
	    IV tmp = SvIV((SV*)SvRV($arg));
	    $var = ($type) tmp;
	}
	else
	    croak(\"$var is not a reference\")
T_REF_IV_REF
	if (sv_isa($arg, \"${type}\")) {
	    IV tmp = SvIV((SV*)SvRV($arg));
	    $var = *($type *) tmp;
	}
	else
	    croak(\"$var is not of type ${ntype}\")
T_REF_IV_PTR
	if (sv_isa($arg, \"${type}\")) {
	    IV tmp = SvIV((SV*)SvRV($arg));
	    $var = ($type) tmp;
	}
	else
	    croak(\"$var is not of type ${ntype}\")
T_PTROBJ
	if (sv_derived_from($arg, \"${ntype}\")) {
	    IV tmp = SvIV((SV*)SvRV($arg));
	    $var = ($type) tmp;
	}
	else
	    croak(\"$var is not of type ${ntype}\")
T_PTRDESC
	if (sv_isa($arg, \"${ntype}\")) {
	    IV tmp = SvIV((SV*)SvRV($arg));
	    ${type}_desc = (\U${type}_DESC\E*) tmp; 
	    $var = ${type}_desc->ptr;
	}
	else
	    croak(\"$var is not of type ${ntype}\")
T_REFREF
	if (SvROK($arg)) {
	    IV tmp = SvIV((SV*)SvRV($arg));
	    $var = *($type) tmp;
	}
	else
	    croak(\"$var is not a reference\")
T_REFOBJ
	if (sv_isa($arg, \"${ntype}\")) {
	    IV tmp = SvIV((SV*)SvRV($arg));
	    $var = *($type) tmp;
	}
	else
	    croak(\"$var is not of type ${ntype}\")
T_OPAQUE
	$var NOT IMPLEMENTED
T_OPAQUEPTR
	$var = ($type)SvPV($arg,PL_na)
T_PACKED
	$var = XS_unpack_$ntype($arg)
T_PACKEDARRAY
	$var = XS_unpack_$ntype($arg)
T_CALLBACK
	$var = make_perl_cb_$type($arg)
T_ARRAY
	$var = $ntype(items -= $argoff);
	U32 ix_$var = $argoff;
	while (items--) {
	    DO_ARRAY_ELEM;
	}
T_IN
	$var = IoIFP(sv_2io($arg))
T_INOUT
	$var = IoIFP(sv_2io($arg))
T_OUT
	$var = IoOFP(sv_2io($arg))
#############################################################################
OUTPUT
T_SV
	$arg = $var;
T_SVREF
	$arg = newRV((SV*)$var);
T_AVREF
	$arg = newRV((SV*)$var);
T_HVREF
	$arg = newRV((SV*)$var);
T_CVREF
	$arg = newRV((SV*)$var);
T_IV
	sv_setiv($arg, (IV)$var);
T_INT
	sv_setiv($arg, (IV)$var);
T_SYSRET
	if ($var != -1) {
	    if ($var == 0)
		sv_setpvn($arg, "0 but true", 10);
	    else
		sv_setiv($arg, (IV)$var);
	}
T_ENUM
	sv_setiv($arg, (IV)$var);
T_BOOL
	$arg = boolSV($var);
T_U_INT
	sv_setiv($arg, (IV)$var);
T_SHORT
	sv_setiv($arg, (IV)$var);
T_U_SHORT
	sv_setiv($arg, (IV)$var);
T_LONG
	sv_setiv($arg, (IV)$var);
T_U_LONG
	sv_setiv($arg, (IV)$var);
T_CHAR
	sv_setpvn($arg, (char *)&$var, 1);
T_U_CHAR
	sv_setiv($arg, (IV)$var);
T_FLOAT
	sv_setnv($arg, (double)$var);
T_NV
	sv_setnv($arg, (double)$var);
T_DOUBLE
	sv_setnv($arg, (double)$var);
T_PV
	sv_setpv((SV*)$arg, $var);
T_PTR
	sv_setiv($arg, (IV)$var);
T_PTRREF
	sv_setref_pv($arg, Nullch, (void*)$var);
T_REF_IV_REF
	sv_setref_pv($arg, \"${ntype}\", (void*)new $ntype($var));
T_REF_IV_PTR
	sv_setref_pv($arg, \"${ntype}\", (void*)$var);
T_PTROBJ
	sv_setref_pv($arg, \"${ntype}\", (void*)$var);
T_PTRDESC
	sv_setref_pv($arg, \"${ntype}\", (void*)new\U${type}_DESC\E($var));
T_REFREF
	sv_setrefref($arg, \"${ntype}\", XS_service_$ntype,
		    ($var ? (void*)new $ntype($var) : 0));
T_REFOBJ
	NOT IMPLEMENTED
T_OPAQUE
	sv_setpvn($arg, (char *)&$var, sizeof($var));
T_OPAQUEPTR
	sv_setpvn($arg, (char *)$var, sizeof(*$var)), XFree((char *)$var);
T_PACKED
	XS_pack_$ntype($arg, $var);
T_PACKEDARRAY
	XS_pack_$ntype($arg, $var, count_$ntype);
T_DATAUNIT	
	sv_setpvn($arg, $var.chp(), $var.size());
T_CALLBACK
	sv_setpvn($arg, $var.context.value().chp(),
		$var.context.value().size());
T_ARRAY
	ST_EXTEND($var.size);
	for (U32 ix_$var = 0; ix_$var < $var.size; ix_$var++) {
		ST(ix_$var) = sv_newmortal();
	DO_ARRAY_ELEM
	}
	SP += $var.size - 1;
T_IN
	{
	    GV *gv = newGVgen("$Package");
	    if ( do_open(gv, "<&", 2, FALSE, 0, 0, $var) )
		sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));
	    else
		$arg = &PL_sv_undef;
	}
T_INOUT
	{
	    GV *gv = newGVgen("$Package");
	    if ( do_open(gv, "+<&", 3, FALSE, 0, 0, $var) )
		sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));
	    else
		$arg = &PL_sv_undef;
	}
T_OUT
	{
	    GV *gv = newGVgen("$Package");
	    if ( do_open(gv, "+>&", 3, FALSE, 0, 0, $var) )
		sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));
	    else
		$arg = &PL_sv_undef;
	}
@


1.1
log
@Initial revision
@
text
@@


1.1.1.1
log
@Initial import of Perl5. The king is dead; long live the king!
@
text
@@


1.1.1.1.2.1
log
@MFC: Upgrade to Perl 5.00503
@
text
@d1 1
a1 1
# $Header: /home/ncvs/src/contrib/perl5/lib/ExtUtils/typemap,v 1.1.1.2 1999/05/02 14:25:46 markm Exp $ 
d4 2
a5 2
unsigned		T_UV
unsigned int		T_UV
d7 1
a7 1
unsigned long		T_UV
d9 1
a9 1
unsigned short		T_UV
d37 1
a37 1
U8			T_UV
a75 2
T_UV
	$var = ($type)SvUV($arg)
d85 1
a85 1
	$var = (unsigned int)SvUV($arg)
d89 1
a89 1
	$var = (unsigned short)SvUV($arg)
d93 1
a93 1
	$var = (unsigned long)SvUV($arg)
d97 1
a97 1
	$var = (unsigned char)SvUV($arg)
a193 2
T_UV
	sv_setuv($arg, (UV)$var);
d208 1
a208 1
	sv_setuv($arg, (UV)$var);
d212 1
a212 1
	sv_setuv($arg, (UV)$var);
d216 1
a216 1
	sv_setuv($arg, (UV)$var);
d220 1
a220 1
	sv_setuv($arg, (UV)$var);
@


1.1.1.2
log
@Maintenance releace 3 of perl5.005. Includes support for threads.
@
text
@d4 2
a5 2
unsigned		T_UV
unsigned int		T_UV
d7 1
a7 1
unsigned long		T_UV
d9 1
a9 1
unsigned short		T_UV
d37 1
a37 1
U8			T_UV
a75 2
T_UV
	$var = ($type)SvUV($arg)
d85 1
a85 1
	$var = (unsigned int)SvUV($arg)
d89 1
a89 1
	$var = (unsigned short)SvUV($arg)
d93 1
a93 1
	$var = (unsigned long)SvUV($arg)
d97 1
a97 1
	$var = (unsigned char)SvUV($arg)
a193 2
T_UV
	sv_setuv($arg, (UV)$var);
d208 1
a208 1
	sv_setuv($arg, (UV)$var);
d212 1
a212 1
	sv_setuv($arg, (UV)$var);
d216 1
a216 1
	sv_setuv($arg, (UV)$var);
d220 1
a220 1
	sv_setuv($arg, (UV)$var);
@


1.1.1.3
log
@Vendor import of Perl 5.006
@
text
@d1 1
a1 1
# $Header: /home/rmb1/misc/CVS/perl5.005_61/lib/ExtUtils/typemap,v 1.3 1999/09/13 09:46:43 rmb1 Exp $ 
a31 1
UV			T_UV
d109 1
a109 1
	$var = INT2PTR($type,SvIV($arg))
d113 1
a113 1
	    $var = INT2PTR($type,tmp);
d134 1
a134 1
	    $var = INT2PTR($type,tmp);
d149 1
a149 1
	    $var = *INT2PTR($type,tmp);
d156 1
a156 1
	    $var = *INT2PTR($type,tmp);
d253 1
a253 1
	sv_setpvn($arg, (char *)$var, sizeof(*$var));
@


1.1.1.4
log
@Vendor import Perl 5.6.1
@
text
@d1 1
a32 1
NV			T_NV
d229 1
a229 1
	sv_setnv($arg, (NV)$var);
d235 1
a235 1
	sv_setiv($arg, PTR2IV($var));
@


