Fix typemap for older Perls.
[catacomb-perl] / typemap
1 TYPEMAP
2 const char * T_PV
3
4 mp * T_MP
5 gf * T_MP
6 GE * T_CATSTRUCT
7 EC_Point * T_CATSTRUCT
8 EC_Curve * T_CATSTRUCT
9 EC_Info * T_CATSTRUCT
10 Field * T_CATSTRUCT
11 Group * T_CATSTRUCT
12 gccipher * T_GCALG
13 gchash * T_GCALG
14 gcMAC * T_GCALG
15 gcipher * T_GALG
16 ghash * T_GALG
17 gMAC * T_GALG
18 grand * T_GALG
19 keysize * T_KEYSZ
20
21 Rand_True * T_CATSTRUCT
22 Rand_DSA * T_CATSTRUCT
23
24 MP_Mont * T_CATSTRUCT
25 MP_Barrett * T_CATSTRUCT
26 MP_Mul * T_CATSTRUCT
27 MP_CRT * T_CATSTRUCT
28 MP_Reduce * T_CATSTRUCT
29 GF_Reduce * T_CATSTRUCT
30 MP_Prime_Filter * T_CATSTRUCT
31 MP_Prime_Rabin * T_CATSTRUCT
32 MP_Prime_Gen_Event * T_CATSTRUCT
33 MP_Prime_Gen_Proc * T_PGENPROC
34 MP_Prime_Gen_NullProc * T_NULLPGENPROC
35 MP_Prime_Gen_MagicProc * T_CATSTRUCT
36 MP_Prime_Gen_FilterStepper * T_CATSTRUCT
37 MP_Prime_Gen_JumpStepper * T_CATSTRUCT
38 MP_Prime_Gen_RabinTester * T_CATSTRUCT
39
40 Key_File * T_CATSTRUCT
41 Key_Data * T_CATSTRUCT
42 Key * T_CATSTRUCT
43
44 KeyErr T_KEYERR
45
46 INPUT
47 T_MP
48 $var = mp_fromsv($arg, \"$var\", \"${my $ntt = $ntype; $ntt =~ s/^(.*)Ptr$/Catacomb::\U$1/; $ntt =~ s/_/::/g; \$ntt}\", 0, 0)
49 T_CATSTRUCT
50 $var = ptrfromsv($arg, \"${my $ntt = $ntype; $ntt =~ s/^(.*)Ptr$/Catacomb::$1/; $ntt =~ s/_/::/g; \$ntt}\", \"$var\")
51 T_GALG
52 $var = ptrfromsv($arg, \"${my $ntt = $ntype; $ntt =~ s/^g(.*)Ptr$/Catacomb::\u$1/; \$ntt}\", \"$var\")
53 T_GCALG
54 $var = ptrfromsv($arg, \"${my $ntt = $ntype; $ntt =~ s/^gc(.*)Ptr$/Catacomb::\u$1Class/; \$ntt}\", \"$var\")
55 T_KEYSZ
56 $var = ptrfromsv($arg, \"Catacomb::KeySize\", \"$var\")
57 T_PGENPROC
58 if (sv_derived_from($arg, \"Catacomb::MP::Prime::Gen::Proc\"))
59 $var = $arg;
60 else
61 croak(\"$var is not of type Catacomb::MP::Prime::Gen::Proc\");
62 T_NULLPGENPROC
63 if (!SvOK($arg) ||
64 sv_derived_from($arg, \"Catacomb::MP::Prime::Gen::Proc\"))
65 $var = $arg;
66 else
67 croak(\"$var is not of type Catacomb::MP::Prime::Gen::Proc\");
68
69 OUTPUT
70 T_MP
71 ptrtosv(&$arg, $var, \"${my $ntt = $ntype; $ntt =~ s/^(.*)Ptr$/Catacomb::\U$1/; $ntt =~ s/_/::/g; \$ntt}\");
72 T_CATSTRUCT
73 ptrtosv(&$arg, $var, \"${my $ntt = $ntype; $ntt =~ s/^(.*)Ptr$/Catacomb::$1/; $ntt =~ s/_/::/g; \$ntt}\");
74 T_GALG
75 ptrtosv(&$arg, $var, \"${my $ntt = $ntype; $ntt =~ s/^g(.*)Ptr$/Catacomb::\u$1/; \$ntt}\");
76 T_GCALG
77 ptrtosv(&$arg, $var, \"${my $ntt = $ntype; $ntt =~ s/^g(.*)Ptr$/Catacomb::\u$1Class/; \$ntt}\");
78 T_KEYSZ
79 ptrtosv(&$arg, (octet *)$var, \"Catacomb::KeySize\");
80 T_PGENPROC
81 $arg = $var;
82 T_KEYERR
83 $arg = keyerr($var);