blob: 49362f4853752b7d4c9fbf45c161d083a41bfd90 [file] [log] [blame]
Lev Walkinf15320b2004-06-03 03:38:44 +00001#ifndef ASN1_COMPILER_LANGUAGE_C_H
2#define ASN1_COMPILER_LANGUAGE_C_H
3
4#include "asn1c_lang.h"
5
6int asn1c_lang_C_type_REFERENCE(arg_t *);
7int asn1c_lang_C_type_EXTENSIBLE(arg_t *);
8
9int asn1c_lang_C_type_SEQUENCE(arg_t *);
Lev Walkinf15320b2004-06-03 03:38:44 +000010int asn1c_lang_C_type_SET(arg_t *);
Lev Walkin08079b02004-08-22 03:25:24 +000011int asn1c_lang_C_type_SEx_OF(arg_t *); /* SET OF or SEQUENCE OF */
Lev Walkinf15320b2004-06-03 03:38:44 +000012int asn1c_lang_C_type_CHOICE(arg_t *);
13
Lev Walkinc78cbfb2004-09-14 12:47:45 +000014int asn1c_lang_C_type_common_INTEGER(arg_t *);
Lev Walkinb02a8832005-08-13 23:51:47 +000015int asn1c_lang_C_type_BIT_STRING(arg_t *);
Lev Walkinc78cbfb2004-09-14 12:47:45 +000016int asn1c_lang_C_type_REAL(arg_t *);
Lev Walkinf15320b2004-06-03 03:38:44 +000017int asn1c_lang_C_type_SIMPLE_TYPE(arg_t *);
18
19static asn1_language_map_t asn1_lang_C[] __attribute__ ((unused)) = {
20 { AMT_TYPE, A1TC_REFERENCE, asn1c_lang_C_type_REFERENCE },
21 { AMT_TYPEREF, A1TC_REFERENCE, asn1c_lang_C_type_REFERENCE },
22 { AMT_TYPE, A1TC_EXTENSIBLE, asn1c_lang_C_type_EXTENSIBLE },
23 /*
24 * Constructed types
25 */
26 { AMT_TYPE, ASN_CONSTR_SEQUENCE, asn1c_lang_C_type_SEQUENCE },
Lev Walkin08079b02004-08-22 03:25:24 +000027 { AMT_TYPE, ASN_CONSTR_SEQUENCE_OF, asn1c_lang_C_type_SEx_OF, },
28 { AMT_TYPEREF, ASN_CONSTR_SEQUENCE_OF, asn1c_lang_C_type_SEx_OF },
Lev Walkinf15320b2004-06-03 03:38:44 +000029 { AMT_TYPE, ASN_CONSTR_SET, asn1c_lang_C_type_SET },
Lev Walkin08079b02004-08-22 03:25:24 +000030 { AMT_TYPE, ASN_CONSTR_SET_OF, asn1c_lang_C_type_SEx_OF },
31 { AMT_TYPEREF, ASN_CONSTR_SET_OF, asn1c_lang_C_type_SEx_OF },
Lev Walkinf15320b2004-06-03 03:38:44 +000032 { AMT_TYPE, ASN_CONSTR_CHOICE, asn1c_lang_C_type_CHOICE },
33 /*
Lev Walkin69f12ed2004-09-02 12:12:57 +000034 * ANY type (deprecated)
35 */
Lev Walkin2605d2a2004-09-04 04:42:00 +000036 { AMT_TYPE, ASN_TYPE_ANY, asn1c_lang_C_type_SIMPLE_TYPE },
Lev Walkin69f12ed2004-09-02 12:12:57 +000037 /*
Lev Walkinf15320b2004-06-03 03:38:44 +000038 * Basic types
39 */
40 { AMT_TYPE, ASN_BASIC_BOOLEAN, asn1c_lang_C_type_SIMPLE_TYPE },
41 { AMT_TYPE, ASN_BASIC_NULL, asn1c_lang_C_type_SIMPLE_TYPE },
Lev Walkinc78cbfb2004-09-14 12:47:45 +000042 { AMT_TYPE, ASN_BASIC_INTEGER, asn1c_lang_C_type_common_INTEGER },
43 { AMT_TYPE, ASN_BASIC_REAL, asn1c_lang_C_type_REAL },
44 { AMT_TYPE, ASN_BASIC_ENUMERATED, asn1c_lang_C_type_common_INTEGER },
Lev Walkinb02a8832005-08-13 23:51:47 +000045 { AMT_TYPE, ASN_BASIC_BIT_STRING, asn1c_lang_C_type_BIT_STRING },
Lev Walkinf15320b2004-06-03 03:38:44 +000046 { AMT_TYPE, ASN_BASIC_OCTET_STRING, asn1c_lang_C_type_SIMPLE_TYPE },
47 { AMT_TYPE, ASN_BASIC_OBJECT_IDENTIFIER,asn1c_lang_C_type_SIMPLE_TYPE },
48 { AMT_TYPE, ASN_BASIC_RELATIVE_OID, asn1c_lang_C_type_SIMPLE_TYPE },
49 { AMT_TYPE, ASN_BASIC_CHARACTER_STRING, asn1c_lang_C_type_SIMPLE_TYPE },
50 { AMT_TYPE, ASN_BASIC_UTCTime, asn1c_lang_C_type_SIMPLE_TYPE },
51 { AMT_TYPE, ASN_BASIC_GeneralizedTime, asn1c_lang_C_type_SIMPLE_TYPE },
52 /*
53 * String types
54 */
55 { AMT_TYPE, ASN_STRING_BMPString, asn1c_lang_C_type_SIMPLE_TYPE },
56 { AMT_TYPE, ASN_STRING_GeneralString, asn1c_lang_C_type_SIMPLE_TYPE },
57 { AMT_TYPE, ASN_STRING_GraphicString, asn1c_lang_C_type_SIMPLE_TYPE },
58 { AMT_TYPE, ASN_STRING_IA5String, asn1c_lang_C_type_SIMPLE_TYPE },
59 { AMT_TYPE, ASN_STRING_ISO646String, asn1c_lang_C_type_SIMPLE_TYPE },
60 { AMT_TYPE, ASN_STRING_NumericString, asn1c_lang_C_type_SIMPLE_TYPE },
61 { AMT_TYPE, ASN_STRING_PrintableString,asn1c_lang_C_type_SIMPLE_TYPE },
62 { AMT_TYPE, ASN_STRING_TeletexString, asn1c_lang_C_type_SIMPLE_TYPE },
63 { AMT_TYPE, ASN_STRING_T61String, asn1c_lang_C_type_SIMPLE_TYPE },
64 { AMT_TYPE, ASN_STRING_UniversalString,asn1c_lang_C_type_SIMPLE_TYPE },
65 { AMT_TYPE, ASN_STRING_UTF8String, asn1c_lang_C_type_SIMPLE_TYPE },
66 { AMT_TYPE, ASN_STRING_VideotexString,asn1c_lang_C_type_SIMPLE_TYPE },
67 { AMT_TYPE, ASN_STRING_VisibleString, asn1c_lang_C_type_SIMPLE_TYPE },
68 { AMT_TYPE, ASN_STRING_ObjectDescriptor,asn1c_lang_C_type_SIMPLE_TYPE },
69 { 0, 0, 0 }
70};
71
72
73#endif /* ASN1_COMPILER_LANGUAGE_C_H */