2 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
3 * From ASN.1 module "NR-RRC-Definitions"
4 * found in "/home/labadmin/hlal/rrc_15.3_asn.asn1"
5 * `asn1c -D ./15_3_rrc/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example`
8 #include "DMRS-DownlinkConfig.h"
10 #include "PTRS-DownlinkConfig.h"
12 * This type is implemented using NativeEnumerated,
13 * so here we adjust the DEF accordingly.
16 * This type is implemented using NativeEnumerated,
17 * so here we adjust the DEF accordingly.
20 * This type is implemented using NativeEnumerated,
21 * so here we adjust the DEF accordingly.
24 memb_scramblingID0_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
25 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
29 ASN__CTFAIL(app_key, td, sptr,
30 "%s: value not given (%s:%d)",
31 td->name, __FILE__, __LINE__);
35 value = *(const long *)sptr;
37 if((value >= 0 && value <= 65535)) {
38 /* Constraint check succeeded */
41 ASN__CTFAIL(app_key, td, sptr,
42 "%s: constraint failed (%s:%d)",
43 td->name, __FILE__, __LINE__);
49 memb_scramblingID1_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
50 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
54 ASN__CTFAIL(app_key, td, sptr,
55 "%s: value not given (%s:%d)",
56 td->name, __FILE__, __LINE__);
60 value = *(const long *)sptr;
62 if((value >= 0 && value <= 65535)) {
63 /* Constraint check succeeded */
66 ASN__CTFAIL(app_key, td, sptr,
67 "%s: constraint failed (%s:%d)",
68 td->name, __FILE__, __LINE__);
73 static asn_oer_constraints_t asn_OER_type_dmrs_Type_constr_2 CC_NOTUSED = {
76 static asn_per_constraints_t asn_PER_type_dmrs_Type_constr_2 CC_NOTUSED = {
77 { APC_CONSTRAINED, 0, 0, 0, 0 } /* (0..0) */,
78 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
79 0, 0 /* No PER value map */
81 static asn_oer_constraints_t asn_OER_type_dmrs_AdditionalPosition_constr_4 CC_NOTUSED = {
84 static asn_per_constraints_t asn_PER_type_dmrs_AdditionalPosition_constr_4 CC_NOTUSED = {
85 { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */,
86 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
87 0, 0 /* No PER value map */
89 static asn_oer_constraints_t asn_OER_type_maxLength_constr_8 CC_NOTUSED = {
92 static asn_per_constraints_t asn_PER_type_maxLength_constr_8 CC_NOTUSED = {
93 { APC_CONSTRAINED, 0, 0, 0, 0 } /* (0..0) */,
94 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
95 0, 0 /* No PER value map */
97 static asn_oer_constraints_t asn_OER_type_phaseTrackingRS_constr_12 CC_NOTUSED = {
100 static asn_per_constraints_t asn_PER_type_phaseTrackingRS_constr_12 CC_NOTUSED = {
101 { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */,
102 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
103 0, 0 /* No PER value map */
105 static asn_oer_constraints_t asn_OER_memb_scramblingID0_constr_10 CC_NOTUSED = {
106 { 2, 1 } /* (0..65535) */,
108 static asn_per_constraints_t asn_PER_memb_scramblingID0_constr_10 CC_NOTUSED = {
109 { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */,
110 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
111 0, 0 /* No PER value map */
113 static asn_oer_constraints_t asn_OER_memb_scramblingID1_constr_11 CC_NOTUSED = {
114 { 2, 1 } /* (0..65535) */,
116 static asn_per_constraints_t asn_PER_memb_scramblingID1_constr_11 CC_NOTUSED = {
117 { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */,
118 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
119 0, 0 /* No PER value map */
121 static const asn_INTEGER_enum_map_t asn_MAP_dmrs_Type_value2enum_2[] = {
124 static const unsigned int asn_MAP_dmrs_Type_enum2value_2[] = {
127 static const asn_INTEGER_specifics_t asn_SPC_dmrs_Type_specs_2 = {
128 asn_MAP_dmrs_Type_value2enum_2, /* "tag" => N; sorted by tag */
129 asn_MAP_dmrs_Type_enum2value_2, /* N => "tag"; sorted by N */
130 1, /* Number of elements in the maps */
131 0, /* Enumeration is not extensible */
132 1, /* Strict enumeration */
133 0, /* Native long size */
136 static const ber_tlv_tag_t asn_DEF_dmrs_Type_tags_2[] = {
137 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
138 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
140 static /* Use -fall-defs-global to expose */
141 asn_TYPE_descriptor_t asn_DEF_dmrs_Type_2 = {
144 &asn_OP_NativeEnumerated,
145 asn_DEF_dmrs_Type_tags_2,
146 sizeof(asn_DEF_dmrs_Type_tags_2)
147 /sizeof(asn_DEF_dmrs_Type_tags_2[0]) - 1, /* 1 */
148 asn_DEF_dmrs_Type_tags_2, /* Same as above */
149 sizeof(asn_DEF_dmrs_Type_tags_2)
150 /sizeof(asn_DEF_dmrs_Type_tags_2[0]), /* 2 */
151 { &asn_OER_type_dmrs_Type_constr_2, &asn_PER_type_dmrs_Type_constr_2, NativeEnumerated_constraint },
152 0, 0, /* Defined elsewhere */
153 &asn_SPC_dmrs_Type_specs_2 /* Additional specs */
156 static const asn_INTEGER_enum_map_t asn_MAP_dmrs_AdditionalPosition_value2enum_4[] = {
161 static const unsigned int asn_MAP_dmrs_AdditionalPosition_enum2value_4[] = {
166 static const asn_INTEGER_specifics_t asn_SPC_dmrs_AdditionalPosition_specs_4 = {
167 asn_MAP_dmrs_AdditionalPosition_value2enum_4, /* "tag" => N; sorted by tag */
168 asn_MAP_dmrs_AdditionalPosition_enum2value_4, /* N => "tag"; sorted by N */
169 3, /* Number of elements in the maps */
170 0, /* Enumeration is not extensible */
171 1, /* Strict enumeration */
172 0, /* Native long size */
175 static const ber_tlv_tag_t asn_DEF_dmrs_AdditionalPosition_tags_4[] = {
176 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
177 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
179 static /* Use -fall-defs-global to expose */
180 asn_TYPE_descriptor_t asn_DEF_dmrs_AdditionalPosition_4 = {
181 "dmrs-AdditionalPosition",
182 "dmrs-AdditionalPosition",
183 &asn_OP_NativeEnumerated,
184 asn_DEF_dmrs_AdditionalPosition_tags_4,
185 sizeof(asn_DEF_dmrs_AdditionalPosition_tags_4)
186 /sizeof(asn_DEF_dmrs_AdditionalPosition_tags_4[0]) - 1, /* 1 */
187 asn_DEF_dmrs_AdditionalPosition_tags_4, /* Same as above */
188 sizeof(asn_DEF_dmrs_AdditionalPosition_tags_4)
189 /sizeof(asn_DEF_dmrs_AdditionalPosition_tags_4[0]), /* 2 */
190 { &asn_OER_type_dmrs_AdditionalPosition_constr_4, &asn_PER_type_dmrs_AdditionalPosition_constr_4, NativeEnumerated_constraint },
191 0, 0, /* Defined elsewhere */
192 &asn_SPC_dmrs_AdditionalPosition_specs_4 /* Additional specs */
195 static const asn_INTEGER_enum_map_t asn_MAP_maxLength_value2enum_8[] = {
198 static const unsigned int asn_MAP_maxLength_enum2value_8[] = {
201 static const asn_INTEGER_specifics_t asn_SPC_maxLength_specs_8 = {
202 asn_MAP_maxLength_value2enum_8, /* "tag" => N; sorted by tag */
203 asn_MAP_maxLength_enum2value_8, /* N => "tag"; sorted by N */
204 1, /* Number of elements in the maps */
205 0, /* Enumeration is not extensible */
206 1, /* Strict enumeration */
207 0, /* Native long size */
210 static const ber_tlv_tag_t asn_DEF_maxLength_tags_8[] = {
211 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
212 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
214 static /* Use -fall-defs-global to expose */
215 asn_TYPE_descriptor_t asn_DEF_maxLength_8 = {
218 &asn_OP_NativeEnumerated,
219 asn_DEF_maxLength_tags_8,
220 sizeof(asn_DEF_maxLength_tags_8)
221 /sizeof(asn_DEF_maxLength_tags_8[0]) - 1, /* 1 */
222 asn_DEF_maxLength_tags_8, /* Same as above */
223 sizeof(asn_DEF_maxLength_tags_8)
224 /sizeof(asn_DEF_maxLength_tags_8[0]), /* 2 */
225 { &asn_OER_type_maxLength_constr_8, &asn_PER_type_maxLength_constr_8, NativeEnumerated_constraint },
226 0, 0, /* Defined elsewhere */
227 &asn_SPC_maxLength_specs_8 /* Additional specs */
230 static asn_TYPE_member_t asn_MBR_phaseTrackingRS_12[] = {
231 { ATF_NOFLAGS, 0, offsetof(struct DMRS_DownlinkConfig__phaseTrackingRS, choice.release),
232 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
233 -1, /* IMPLICIT tag at current level */
237 0, 0, /* No default value */
240 { ATF_POINTER, 0, offsetof(struct DMRS_DownlinkConfig__phaseTrackingRS, choice.setup),
241 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
242 -1, /* IMPLICIT tag at current level */
243 &asn_DEF_PTRS_DownlinkConfig,
246 0, 0, /* No default value */
250 static const asn_TYPE_tag2member_t asn_MAP_phaseTrackingRS_tag2el_12[] = {
251 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */
252 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */
254 static asn_CHOICE_specifics_t asn_SPC_phaseTrackingRS_specs_12 = {
255 sizeof(struct DMRS_DownlinkConfig__phaseTrackingRS),
256 offsetof(struct DMRS_DownlinkConfig__phaseTrackingRS, _asn_ctx),
257 offsetof(struct DMRS_DownlinkConfig__phaseTrackingRS, present),
258 sizeof(((struct DMRS_DownlinkConfig__phaseTrackingRS *)0)->present),
259 asn_MAP_phaseTrackingRS_tag2el_12,
260 2, /* Count of tags in the map */
262 -1 /* Extensions start */
264 static /* Use -fall-defs-global to expose */
265 asn_TYPE_descriptor_t asn_DEF_phaseTrackingRS_12 = {
269 0, /* No effective tags (pointer) */
270 0, /* No effective tags (count) */
271 0, /* No tags (pointer) */
272 0, /* No tags (count) */
273 { &asn_OER_type_phaseTrackingRS_constr_12, &asn_PER_type_phaseTrackingRS_constr_12, CHOICE_constraint },
274 asn_MBR_phaseTrackingRS_12,
275 2, /* Elements count */
276 &asn_SPC_phaseTrackingRS_specs_12 /* Additional specs */
279 asn_TYPE_member_t asn_MBR_DMRS_DownlinkConfig_1[] = {
280 { ATF_POINTER, 6, offsetof(struct DMRS_DownlinkConfig, dmrs_Type),
281 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
282 -1, /* IMPLICIT tag at current level */
283 &asn_DEF_dmrs_Type_2,
286 0, 0, /* No default value */
289 { ATF_POINTER, 5, offsetof(struct DMRS_DownlinkConfig, dmrs_AdditionalPosition),
290 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
291 -1, /* IMPLICIT tag at current level */
292 &asn_DEF_dmrs_AdditionalPosition_4,
295 0, 0, /* No default value */
296 "dmrs-AdditionalPosition"
298 { ATF_POINTER, 4, offsetof(struct DMRS_DownlinkConfig, maxLength),
299 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
300 -1, /* IMPLICIT tag at current level */
301 &asn_DEF_maxLength_8,
304 0, 0, /* No default value */
307 { ATF_POINTER, 3, offsetof(struct DMRS_DownlinkConfig, scramblingID0),
308 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
309 -1, /* IMPLICIT tag at current level */
310 &asn_DEF_NativeInteger,
312 { &asn_OER_memb_scramblingID0_constr_10, &asn_PER_memb_scramblingID0_constr_10, memb_scramblingID0_constraint_1 },
313 0, 0, /* No default value */
316 { ATF_POINTER, 2, offsetof(struct DMRS_DownlinkConfig, scramblingID1),
317 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
318 -1, /* IMPLICIT tag at current level */
319 &asn_DEF_NativeInteger,
321 { &asn_OER_memb_scramblingID1_constr_11, &asn_PER_memb_scramblingID1_constr_11, memb_scramblingID1_constraint_1 },
322 0, 0, /* No default value */
325 { ATF_POINTER, 1, offsetof(struct DMRS_DownlinkConfig, phaseTrackingRS),
326 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
327 +1, /* EXPLICIT tag at current level */
328 &asn_DEF_phaseTrackingRS_12,
331 0, 0, /* No default value */
335 static const int asn_MAP_DMRS_DownlinkConfig_oms_1[] = { 0, 1, 2, 3, 4, 5 };
336 static const ber_tlv_tag_t asn_DEF_DMRS_DownlinkConfig_tags_1[] = {
337 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
339 static const asn_TYPE_tag2member_t asn_MAP_DMRS_DownlinkConfig_tag2el_1[] = {
340 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dmrs-Type */
341 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dmrs-AdditionalPosition */
342 { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxLength */
343 { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* scramblingID0 */
344 { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* scramblingID1 */
345 { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* phaseTrackingRS */
347 asn_SEQUENCE_specifics_t asn_SPC_DMRS_DownlinkConfig_specs_1 = {
348 sizeof(struct DMRS_DownlinkConfig),
349 offsetof(struct DMRS_DownlinkConfig, _asn_ctx),
350 asn_MAP_DMRS_DownlinkConfig_tag2el_1,
351 6, /* Count of tags in the map */
352 asn_MAP_DMRS_DownlinkConfig_oms_1, /* Optional members */
353 6, 0, /* Root/Additions */
354 6, /* First extension addition */
356 asn_TYPE_descriptor_t asn_DEF_DMRS_DownlinkConfig = {
357 "DMRS-DownlinkConfig",
358 "DMRS-DownlinkConfig",
360 asn_DEF_DMRS_DownlinkConfig_tags_1,
361 sizeof(asn_DEF_DMRS_DownlinkConfig_tags_1)
362 /sizeof(asn_DEF_DMRS_DownlinkConfig_tags_1[0]), /* 1 */
363 asn_DEF_DMRS_DownlinkConfig_tags_1, /* Same as above */
364 sizeof(asn_DEF_DMRS_DownlinkConfig_tags_1)
365 /sizeof(asn_DEF_DMRS_DownlinkConfig_tags_1[0]), /* 1 */
366 { 0, 0, SEQUENCE_constraint },
367 asn_MBR_DMRS_DownlinkConfig_1,
368 6, /* Elements count */
369 &asn_SPC_DMRS_DownlinkConfig_specs_1 /* Additional specs */