blob: 76fce34fb750275b083856d8e8dea8cf542906f5 [file] [log] [blame]
vlmfa67ddc2004-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 *);
vlmfa67ddc2004-06-03 03:38:44 +000010int asn1c_lang_C_type_SET(arg_t *);
vlmdae7f9d2004-08-22 03:25:24 +000011int asn1c_lang_C_type_SEx_OF(arg_t *); /* SET OF or SEQUENCE OF */
vlmfa67ddc2004-06-03 03:38:44 +000012int asn1c_lang_C_type_CHOICE(arg_t *);
13
vlmf9d178d2004-09-14 12:47:45 +000014int asn1c_lang_C_type_common_INTEGER(arg_t *);
15int asn1c_lang_C_type_REAL(arg_t *);
vlmfa67ddc2004-06-03 03:38:44 +000016int 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 },
vlmdae7f9d2004-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 },
vlmfa67ddc2004-06-03 03:38:44 +000028 { AMT_TYPE, ASN_CONSTR_SET, asn1c_lang_C_type_SET },
vlmdae7f9d2004-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 },
vlmfa67ddc2004-06-03 03:38:44 +000031 { AMT_TYPE, ASN_CONSTR_CHOICE, asn1c_lang_C_type_CHOICE },
32 /*
vlm0f218e82004-09-02 12:12:57 +000033 * ANY type (deprecated)
34 */
vlme49e4c02004-09-04 04:42:00 +000035 { AMT_TYPE, ASN_TYPE_ANY, asn1c_lang_C_type_SIMPLE_TYPE },
vlm0f218e82004-09-02 12:12:57 +000036 /*
vlmfa67ddc2004-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 },
vlmf9d178d2004-09-14 12:47:45 +000041 { AMT_TYPE, ASN_BASIC_INTEGER, asn1c_lang_C_type_common_INTEGER },
42 { AMT_TYPE, ASN_BASIC_REAL, asn1c_lang_C_type_REAL },
43 { AMT_TYPE, ASN_BASIC_ENUMERATED, asn1c_lang_C_type_common_INTEGER },
vlmfa67ddc2004-06-03 03:38:44 +000044 { 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 */