Updated documentation for mock a1 tool
[ric-app/admin.git] / asn1c_defs / X2N_SubbandCQICodeword0.c
1 /*
2  * Generated by asn1c-0.9.29 n1 (http://lionet.info/asn1c)
3  * From ASN.1 module "X2AP-IEs"
4  *      found in "../../asn_defs/asn1/x2ap-15-04.asn"
5  *      `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER`
6  */
7
8 #include "X2N_SubbandCQICodeword0.h"
9
10 static int
11 memb_X2N_four_bitCQI_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
12                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
13         long value;
14         
15         if(!sptr) {
16                 ASN__CTFAIL(app_key, td, sptr,
17                         "%s: value not given (%s:%d)",
18                         td->name, __FILE__, __LINE__);
19                 return -1;
20         }
21         
22         value = *(const long *)sptr;
23         
24         if((value >= 0 && value <= 15)) {
25                 /* Constraint check succeeded */
26                 return 0;
27         } else {
28                 ASN__CTFAIL(app_key, td, sptr,
29                         "%s: constraint failed (%s:%d)",
30                         td->name, __FILE__, __LINE__);
31                 return -1;
32         }
33 }
34
35 static int
36 memb_X2N_two_bitSubbandDifferentialCQI_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
37                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
38         long value;
39         
40         if(!sptr) {
41                 ASN__CTFAIL(app_key, td, sptr,
42                         "%s: value not given (%s:%d)",
43                         td->name, __FILE__, __LINE__);
44                 return -1;
45         }
46         
47         value = *(const long *)sptr;
48         
49         if((value >= 0 && value <= 3)) {
50                 /* Constraint check succeeded */
51                 return 0;
52         } else {
53                 ASN__CTFAIL(app_key, td, sptr,
54                         "%s: constraint failed (%s:%d)",
55                         td->name, __FILE__, __LINE__);
56                 return -1;
57         }
58 }
59
60 static int
61 memb_X2N_two_bitDifferentialCQI_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
62                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
63         long value;
64         
65         if(!sptr) {
66                 ASN__CTFAIL(app_key, td, sptr,
67                         "%s: value not given (%s:%d)",
68                         td->name, __FILE__, __LINE__);
69                 return -1;
70         }
71         
72         value = *(const long *)sptr;
73         
74         if((value >= 0 && value <= 3)) {
75                 /* Constraint check succeeded */
76                 return 0;
77         } else {
78                 ASN__CTFAIL(app_key, td, sptr,
79                         "%s: constraint failed (%s:%d)",
80                         td->name, __FILE__, __LINE__);
81                 return -1;
82         }
83 }
84
85 static asn_per_constraints_t asn_PER_memb_X2N_four_bitCQI_constr_2 CC_NOTUSED = {
86         { APC_CONSTRAINED | APC_EXTENSIBLE,  4,  4,  0,  15 }   /* (0..15,...) */,
87         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
88         0, 0    /* No PER value map */
89 };
90 static asn_per_constraints_t asn_PER_memb_X2N_two_bitSubbandDifferentialCQI_constr_3 CC_NOTUSED = {
91         { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  3 }    /* (0..3,...) */,
92         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
93         0, 0    /* No PER value map */
94 };
95 static asn_per_constraints_t asn_PER_memb_X2N_two_bitDifferentialCQI_constr_4 CC_NOTUSED = {
96         { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  3 }    /* (0..3,...) */,
97         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
98         0, 0    /* No PER value map */
99 };
100 asn_per_constraints_t asn_PER_type_X2N_SubbandCQICodeword0_constr_1 CC_NOTUSED = {
101         { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }    /* (0..2,...) */,
102         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
103         0, 0    /* No PER value map */
104 };
105 asn_TYPE_member_t asn_MBR_X2N_SubbandCQICodeword0_1[] = {
106         { ATF_NOFLAGS, 0, offsetof(struct X2N_SubbandCQICodeword0, choice.four_bitCQI),
107                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
108                 -1,     /* IMPLICIT tag at current level */
109                 &asn_DEF_NativeInteger,
110                 0,
111                 { 0, &asn_PER_memb_X2N_four_bitCQI_constr_2,  memb_X2N_four_bitCQI_constraint_1 },
112                 0, 0, /* No default value */
113                 "four-bitCQI"
114                 },
115         { ATF_NOFLAGS, 0, offsetof(struct X2N_SubbandCQICodeword0, choice.two_bitSubbandDifferentialCQI),
116                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
117                 -1,     /* IMPLICIT tag at current level */
118                 &asn_DEF_NativeInteger,
119                 0,
120                 { 0, &asn_PER_memb_X2N_two_bitSubbandDifferentialCQI_constr_3,  memb_X2N_two_bitSubbandDifferentialCQI_constraint_1 },
121                 0, 0, /* No default value */
122                 "two-bitSubbandDifferentialCQI"
123                 },
124         { ATF_NOFLAGS, 0, offsetof(struct X2N_SubbandCQICodeword0, choice.two_bitDifferentialCQI),
125                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
126                 -1,     /* IMPLICIT tag at current level */
127                 &asn_DEF_NativeInteger,
128                 0,
129                 { 0, &asn_PER_memb_X2N_two_bitDifferentialCQI_constr_4,  memb_X2N_two_bitDifferentialCQI_constraint_1 },
130                 0, 0, /* No default value */
131                 "two-bitDifferentialCQI"
132                 },
133 };
134 static const asn_TYPE_tag2member_t asn_MAP_X2N_SubbandCQICodeword0_tag2el_1[] = {
135     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* four-bitCQI */
136     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* two-bitSubbandDifferentialCQI */
137     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* two-bitDifferentialCQI */
138 };
139 asn_CHOICE_specifics_t asn_SPC_X2N_SubbandCQICodeword0_specs_1 = {
140         sizeof(struct X2N_SubbandCQICodeword0),
141         offsetof(struct X2N_SubbandCQICodeword0, _asn_ctx),
142         offsetof(struct X2N_SubbandCQICodeword0, present),
143         sizeof(((struct X2N_SubbandCQICodeword0 *)0)->present),
144         asn_MAP_X2N_SubbandCQICodeword0_tag2el_1,
145         3,      /* Count of tags in the map */
146         0, 0,
147         3       /* Extensions start */
148 };
149 asn_TYPE_descriptor_t asn_DEF_X2N_SubbandCQICodeword0 = {
150         "SubbandCQICodeword0",
151         "SubbandCQICodeword0",
152         &asn_OP_CHOICE,
153         0,      /* No effective tags (pointer) */
154         0,      /* No effective tags (count) */
155         0,      /* No tags (pointer) */
156         0,      /* No tags (count) */
157         { 0, &asn_PER_type_X2N_SubbandCQICodeword0_constr_1, CHOICE_constraint },
158         asn_MBR_X2N_SubbandCQICodeword0_1,
159         3,      /* Elements count */
160         &asn_SPC_X2N_SubbandCQICodeword0_specs_1        /* Additional specs */
161 };
162