blob: e8f56ed91ffaca9adae7fbf8ab726ba845c55a5b [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
14int asn1c_lang_C_type_INTEGER(arg_t *);
15int asn1c_lang_C_type_ENUMERATED(arg_t *);
16int asn1c_lang_C_type_SIMPLE_TYPE(arg_t *);
17
18static asn1_language_map_t asn1_lang_C[] __attribute__ ((unused)) = {
19 { AMT_TYPE, A1TC_REFERENCE, asn1c_lang_C_type_REFERENCE },
20 { AMT_TYPEREF, A1TC_REFERENCE, asn1c_lang_C_type_REFERENCE },
21 { AMT_TYPE, A1TC_EXTENSIBLE, asn1c_lang_C_type_EXTENSIBLE },
22 /*
23 * Constructed types
24 */
25 { AMT_TYPE, ASN_CONSTR_SEQUENCE, asn1c_lang_C_type_SEQUENCE },
Lev Walkin08079b02004-08-22 03:25:24 +000026 { AMT_TYPE, ASN_CONSTR_SEQUENCE_OF, asn1c_lang_C_type_SEx_OF, },
27 { AMT_TYPEREF, ASN_CONSTR_SEQUENCE_OF, asn1c_lang_C_type_SEx_OF },
Lev Walkinf15320b2004-06-03 03:38:44 +000028 { AMT_TYPE, ASN_CONSTR_SET, asn1c_lang_C_type_SET },
Lev Walkin08079b02004-08-22 03:25:24 +000029 { AMT_TYPE, ASN_CONSTR_SET_OF, asn1c_lang_C_type_SEx_OF },
30 { AMT_TYPEREF, ASN_CONSTR_SET_OF, asn1c_lang_C_type_SEx_OF },
Lev Walkinf15320b2004-06-03 03:38:44 +000031 { AMT_TYPE, ASN_CONSTR_CHOICE, asn1c_lang_C_type_CHOICE },
32 /*
Lev Walkin69f12ed2004-09-02 12:12:57 +000033 * ANY type (deprecated)
34 */
Lev Walkin2605d2a2004-09-04 04:42:00 +000035 { AMT_TYPE, ASN_TYPE_ANY, asn1c_lang_C_type_SIMPLE_TYPE },
Lev Walkin69f12ed2004-09-02 12:12:57 +000036 /*
Lev Walkinf15320b2004-06-03 03:38:44 +000037 * Basic types
38 */
39 { AMT_TYPE, ASN_BASIC_BOOLEAN, asn1c_lang_C_type_SIMPLE_TYPE },
40 { AMT_TYPE, ASN_BASIC_NULL, asn1c_lang_C_type_SIMPLE_TYPE },
41 { AMT_TYPE, ASN_BASIC_INTEGER, asn1c_lang_C_type_INTEGER },
42 /* [Skipped REAL] */
43 { AMT_TYPE, ASN_BASIC_ENUMERATED, asn1c_lang_C_type_ENUMERATED },
44 { AMT_TYPE, ASN_BASIC_BIT_STRING, asn1c_lang_C_type_SIMPLE_TYPE },
45 { AMT_TYPE, ASN_BASIC_OCTET_STRING, asn1c_lang_C_type_SIMPLE_TYPE },
46 { AMT_TYPE, ASN_BASIC_OBJECT_IDENTIFIER,asn1c_lang_C_type_SIMPLE_TYPE },
47 { AMT_TYPE, ASN_BASIC_RELATIVE_OID, asn1c_lang_C_type_SIMPLE_TYPE },
48 { AMT_TYPE, ASN_BASIC_CHARACTER_STRING, asn1c_lang_C_type_SIMPLE_TYPE },
49 { AMT_TYPE, ASN_BASIC_UTCTime, asn1c_lang_C_type_SIMPLE_TYPE },
50 { AMT_TYPE, ASN_BASIC_GeneralizedTime, asn1c_lang_C_type_SIMPLE_TYPE },
51 /*
52 * String types
53 */
54 { AMT_TYPE, ASN_STRING_BMPString, asn1c_lang_C_type_SIMPLE_TYPE },
55 { AMT_TYPE, ASN_STRING_GeneralString, asn1c_lang_C_type_SIMPLE_TYPE },
56 { AMT_TYPE, ASN_STRING_GraphicString, asn1c_lang_C_type_SIMPLE_TYPE },
57 { AMT_TYPE, ASN_STRING_IA5String, asn1c_lang_C_type_SIMPLE_TYPE },
58 { AMT_TYPE, ASN_STRING_ISO646String, asn1c_lang_C_type_SIMPLE_TYPE },
59 { AMT_TYPE, ASN_STRING_NumericString, asn1c_lang_C_type_SIMPLE_TYPE },
60 { AMT_TYPE, ASN_STRING_PrintableString,asn1c_lang_C_type_SIMPLE_TYPE },
61 { AMT_TYPE, ASN_STRING_TeletexString, asn1c_lang_C_type_SIMPLE_TYPE },
62 { AMT_TYPE, ASN_STRING_T61String, asn1c_lang_C_type_SIMPLE_TYPE },
63 { AMT_TYPE, ASN_STRING_UniversalString,asn1c_lang_C_type_SIMPLE_TYPE },
64 { AMT_TYPE, ASN_STRING_UTF8String, asn1c_lang_C_type_SIMPLE_TYPE },
65 { AMT_TYPE, ASN_STRING_VideotexString,asn1c_lang_C_type_SIMPLE_TYPE },
66 { AMT_TYPE, ASN_STRING_VisibleString, asn1c_lang_C_type_SIMPLE_TYPE },
67 { AMT_TYPE, ASN_STRING_ObjectDescriptor,asn1c_lang_C_type_SIMPLE_TYPE },
68 { 0, 0, 0 }
69};
70
71
72#endif /* ASN1_COMPILER_LANGUAGE_C_H */