chiark / gitweb /
infra: Add a copy of the GPL.
[catacomb-perl] / typemap
1 TYPEMAP
2 const char *                    T_PV
3
4 mp *                            T_MP
5 gf *                            T_MP
6 EC_Curve *                      T_CATSTRUCT
7 EC_Info *                       T_CATSTRUCT
8 Field *                         T_CATSTRUCT
9 Group *                         T_CATSTRUCT
10 gccipher *                      T_GCALG
11 gchash *                        T_GCALG
12 gcMAC *                         T_GCALG
13 gcipher *                       T_GALG
14 ghash *                         T_GALG
15 gMAC *                          T_GALG
16 grand *                         T_GALG
17 keysize *                       T_KEYSZ
18
19 fe *                            T_FIELDELT
20 ec *                            T_ECPT
21 ge *                            T_GROUPELT
22
23 Rand_True *                     T_CATSTRUCT
24 Rand_DSA *                      T_CATSTRUCT
25
26 Share_GF *                      T_CATSTRUCT
27 Share_Prime *                   T_CATSTRUCT
28
29 PRP *                           T_CATSTRUCT
30 PRPClass *                      T_CATSTRUCT
31
32 MP_Mont *                       T_CATSTRUCT
33 MP_Barrett *                    T_CATSTRUCT
34 MP_Mul *                        T_CATSTRUCT
35 MP_CRT *                        T_CATSTRUCT
36 MP_Reduce *                     T_CATSTRUCT
37 GF_Reduce *                     T_CATSTRUCT
38 MP_Prime_Filter *               T_CATSTRUCT
39 MP_Prime_Rabin *                T_CATSTRUCT
40 MP_Prime_Gen_Event *            T_CATSTRUCT
41 MP_Prime_Gen_Proc *             T_PGENPROC
42 MP_Prime_Gen_NullProc *         T_NULLPGENPROC
43 MP_Prime_Gen_MagicProc *        T_CATSTRUCT
44 MP_Prime_Gen_FilterStepper *    T_CATSTRUCT
45 MP_Prime_Gen_JumpStepper *      T_CATSTRUCT
46 MP_Prime_Gen_RabinTester *      T_CATSTRUCT
47
48 Key_File *                      T_CATSTRUCT
49 Key_Data *                      T_KEYDATA
50 Key_AttrIter *                  T_CATSTRUCT
51 Key_StructIter *                T_CATSTRUCT
52 Key_FileIter *                  T_CATSTRUCT
53 Key_Filter *                    T_CATSTRUCTUNDEF
54 Key *                           T_CATSTRUCT
55 KeyErr                          T_KEYERR
56
57 RSA_Public *                    T_CATSTRUCT
58 RSA_Private *                   T_CATSTRUCT
59
60 INPUT
61 T_MP
62         $var = mp_fromsv($arg, \"$var\", 0, 0)
63 T_CATSTRUCT
64         $var = ptrfromsv($arg, \"${my $ntt = $ntype; $ntt =~ s/^(.*)Ptr$/Catacomb::$1/; $ntt =~ s/_/::/g; \$ntt}\", \"$var\")
65 T_CATSTRUCTUNDEF
66         $var = SvOK($arg) ? ptrfromsv($arg, \"${my $ntt = $ntype; $ntt =~ s/^(.*)Ptr$/Catacomb::$1/; $ntt =~ s/_/::/g; \$ntt}\", \"$var\") : 0
67 T_FIELDELT
68         $var = fieldelt($arg, \"$var\")
69 T_GROUPELT
70         $var = groupelt($arg, \"$var\")
71 T_ECPT
72         $var = ecpt($arg, \"$var\")
73 T_GALG
74         $var = ptrfromsv($arg, \"${my $ntt = $ntype; $ntt =~ s/^g(.*)Ptr$/Catacomb::\u$1/; \$ntt}\", \"$var\")
75 T_GCALG
76         $var = ptrfromsv($arg, \"${my $ntt = $ntype; $ntt =~ s/^gc(.*)Ptr$/Catacomb::\u$1Class/; \$ntt}\", \"$var\")
77 T_KEYSZ
78         $var = ptrfromsv($arg, \"Catacomb::KeySize\", \"$var\")
79 T_KEYDATA
80         $var = ptrfromsv($arg, \"${my $ntt = $ntype; $ntt =~ s/^(.*)Ptr$/Catacomb::$1/; $ntt =~ s/_/::/g; \$ntt}\", \"$var\")
81 T_PGENPROC
82         if (sv_derived_from($arg, \"Catacomb::MP::Prime::Gen::Proc\"))
83           $var = $arg;
84         else
85           croak(\"$var is not of type Catacomb::MP::Prime::Gen::Proc\");
86 T_NULLPGENPROC
87         if (!SvOK($arg) || 
88             sv_derived_from($arg, \"Catacomb::MP::Prime::Gen::Proc\"))
89           $var = $arg;
90         else
91           croak(\"$var is not of type Catacomb::MP::Prime::Gen::Proc\");
92
93 OUTPUT
94 T_MP
95         ptrtosv(&$arg, $var, \"${my $ntt = $ntype; $ntt =~ s/^(.*)Ptr$/Catacomb::\U$1/; $ntt =~ s/_/::/g; \$ntt}\");
96 T_CATSTRUCT
97         ptrtosv(&$arg, $var, \"${my $ntt = $ntype; $ntt =~ s/^(.*)Ptr$/Catacomb::$1/; $ntt =~ s/_/::/g; \$ntt}\");
98 T_CATSTRUCTUNDEF
99         ptrtosv(&$arg, $var, \"${my $ntt = $ntype; $ntt =~ s/^(.*)Ptr$/Catacomb::$1/; $ntt =~ s/_/::/g; \$ntt}\");
100 T_FIELDELT
101         ptrtosv(&$arg, $var, \"Catacomb::MP\");
102 T_GROUPELT
103         ptrtosv(&$arg, $var, \"Catacomb::Group::Element\");
104 T_ECPT
105         ptrtosv(&$arg, $var, \"Catacomb::EC::Point\");
106 T_GALG
107         ptrtosv(&$arg, $var, \"${my $ntt = $ntype; $ntt =~ s/^g(.*)Ptr$/Catacomb::\u$1/; \$ntt}\");
108 T_GCALG
109         ptrtosv(&$arg, $var, \"${my $ntt = $ntype; $ntt =~ s/^gc(.*)Ptr$/Catacomb::\u$1Class/; \$ntt}\");
110 T_KEYSZ
111         ptrtosv(&$arg, (octet *)$var, \"Catacomb::KeySize\");
112 T_PGENPROC
113         $arg = $var;
114 T_KEYERR
115         $arg = keyerr($var);
116 T_KEYDATA
117         ptrtosv(&$arg, $var, keydata_type($var));