627c271b84a0baf7b95e98457583d4a244b5a2dc
[com/asn1c.git] / tests / tests-asn1c-compiler / 125-bitstring-constraint-OK.asn1.-P
1
2 /*** <<< INCLUDES [T] >>> ***/
3
4 #include <BIT_STRING.h>
5
6 /*** <<< DEPS [T] >>> ***/
7
8 typedef enum T {
9         T_flag1 = 0,
10         T_flag2 = 1,
11         T_flag3 = 2
12 } e_T;
13
14 /*** <<< TYPE-DECLS [T] >>> ***/
15
16 typedef BIT_STRING_t     T_t;
17
18 /*** <<< FUNC-DECLS [T] >>> ***/
19
20 extern asn_TYPE_descriptor_t asn_DEF_T;
21 asn_struct_free_f T_free;
22 asn_struct_print_f T_print;
23 asn_constr_check_f T_constraint;
24 ber_type_decoder_f T_decode_ber;
25 der_type_encoder_f T_encode_der;
26 xer_type_decoder_f T_decode_xer;
27 xer_type_encoder_f T_encode_xer;
28
29 /*** <<< CODE [T] >>> ***/
30
31 int
32 T_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
33                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
34         const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
35         
36         if(!sptr) {
37                 ASN__CTFAIL(app_key, td, sptr,
38                         "%s: value not given (%s:%d)",
39                         td->name, __FILE__, __LINE__);
40                 return -1;
41         }
42         
43         
44         if(1 /* No applicable constraints whatsoever */) {
45                 (void)st; /* Unused variable */
46                 /* Nothing is here. See below */
47         }
48         
49         return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
50 }
51
52 /*
53  * This type is implemented using BIT_STRING,
54  * so here we adjust the DEF accordingly.
55  */
56
57 /*** <<< STAT-DEFS [T] >>> ***/
58
59 static const ber_tlv_tag_t asn_DEF_T_tags_1[] = {
60         (ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
61 };
62 asn_TYPE_descriptor_t asn_DEF_T = {
63         "T",
64         "T",
65         &asn_OP_BIT_STRING,
66         asn_DEF_T_tags_1,
67         sizeof(asn_DEF_T_tags_1)
68                 /sizeof(asn_DEF_T_tags_1[0]), /* 1 */
69         asn_DEF_T_tags_1,       /* Same as above */
70         sizeof(asn_DEF_T_tags_1)
71                 /sizeof(asn_DEF_T_tags_1[0]), /* 1 */
72         { 0, 0, T_constraint },
73         0, 0,   /* Defined elsewhere */
74         &asn_SPC_BIT_STRING_specs       /* Additional specs */
75 };
76