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 "PUCCH-PowerControl.h"
11 #include "PUCCH-PathlossReferenceRS.h"
13 * This type is implemented using NativeEnumerated,
14 * so here we adjust the DEF accordingly.
17 memb_deltaF_PUCCH_f0_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
18 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
22 ASN__CTFAIL(app_key, td, sptr,
23 "%s: value not given (%s:%d)",
24 td->name, __FILE__, __LINE__);
28 value = *(const long *)sptr;
30 if((value >= -16 && value <= 15)) {
31 /* Constraint check succeeded */
34 ASN__CTFAIL(app_key, td, sptr,
35 "%s: constraint failed (%s:%d)",
36 td->name, __FILE__, __LINE__);
42 memb_deltaF_PUCCH_f1_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
43 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
47 ASN__CTFAIL(app_key, td, sptr,
48 "%s: value not given (%s:%d)",
49 td->name, __FILE__, __LINE__);
53 value = *(const long *)sptr;
55 if((value >= -16 && value <= 15)) {
56 /* Constraint check succeeded */
59 ASN__CTFAIL(app_key, td, sptr,
60 "%s: constraint failed (%s:%d)",
61 td->name, __FILE__, __LINE__);
67 memb_deltaF_PUCCH_f2_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
68 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
72 ASN__CTFAIL(app_key, td, sptr,
73 "%s: value not given (%s:%d)",
74 td->name, __FILE__, __LINE__);
78 value = *(const long *)sptr;
80 if((value >= -16 && value <= 15)) {
81 /* Constraint check succeeded */
84 ASN__CTFAIL(app_key, td, sptr,
85 "%s: constraint failed (%s:%d)",
86 td->name, __FILE__, __LINE__);
92 memb_deltaF_PUCCH_f3_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
93 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
97 ASN__CTFAIL(app_key, td, sptr,
98 "%s: value not given (%s:%d)",
99 td->name, __FILE__, __LINE__);
103 value = *(const long *)sptr;
105 if((value >= -16 && value <= 15)) {
106 /* Constraint check succeeded */
109 ASN__CTFAIL(app_key, td, sptr,
110 "%s: constraint failed (%s:%d)",
111 td->name, __FILE__, __LINE__);
117 memb_deltaF_PUCCH_f4_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
118 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
122 ASN__CTFAIL(app_key, td, sptr,
123 "%s: value not given (%s:%d)",
124 td->name, __FILE__, __LINE__);
128 value = *(const long *)sptr;
130 if((value >= -16 && value <= 15)) {
131 /* Constraint check succeeded */
134 ASN__CTFAIL(app_key, td, sptr,
135 "%s: constraint failed (%s:%d)",
136 td->name, __FILE__, __LINE__);
142 memb_p0_Set_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
143 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
147 ASN__CTFAIL(app_key, td, sptr,
148 "%s: value not given (%s:%d)",
149 td->name, __FILE__, __LINE__);
153 /* Determine the number of elements */
154 size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
156 if((size >= 1 && size <= 8)) {
157 /* Perform validation of the inner elements */
158 return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
160 ASN__CTFAIL(app_key, td, sptr,
161 "%s: constraint failed (%s:%d)",
162 td->name, __FILE__, __LINE__);
168 memb_pathlossReferenceRSs_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
169 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
173 ASN__CTFAIL(app_key, td, sptr,
174 "%s: value not given (%s:%d)",
175 td->name, __FILE__, __LINE__);
179 /* Determine the number of elements */
180 size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
182 if((size >= 1 && size <= 4)) {
183 /* Perform validation of the inner elements */
184 return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
186 ASN__CTFAIL(app_key, td, sptr,
187 "%s: constraint failed (%s:%d)",
188 td->name, __FILE__, __LINE__);
193 static asn_oer_constraints_t asn_OER_type_p0_Set_constr_7 CC_NOTUSED = {
195 -1 /* (SIZE(1..8)) */};
196 static asn_per_constraints_t asn_PER_type_p0_Set_constr_7 CC_NOTUSED = {
197 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
198 { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */,
199 0, 0 /* No PER value map */
201 static asn_oer_constraints_t asn_OER_type_pathlossReferenceRSs_constr_9 CC_NOTUSED = {
203 -1 /* (SIZE(1..4)) */};
204 static asn_per_constraints_t asn_PER_type_pathlossReferenceRSs_constr_9 CC_NOTUSED = {
205 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
206 { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */,
207 0, 0 /* No PER value map */
209 static asn_oer_constraints_t asn_OER_type_twoPUCCH_PC_AdjustmentStates_constr_11 CC_NOTUSED = {
212 static asn_per_constraints_t asn_PER_type_twoPUCCH_PC_AdjustmentStates_constr_11 CC_NOTUSED = {
213 { APC_CONSTRAINED, 0, 0, 0, 0 } /* (0..0) */,
214 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
215 0, 0 /* No PER value map */
217 static asn_oer_constraints_t asn_OER_memb_deltaF_PUCCH_f0_constr_2 CC_NOTUSED = {
218 { 1, 0 } /* (-16..15) */,
220 static asn_per_constraints_t asn_PER_memb_deltaF_PUCCH_f0_constr_2 CC_NOTUSED = {
221 { APC_CONSTRAINED, 5, 5, -16, 15 } /* (-16..15) */,
222 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
223 0, 0 /* No PER value map */
225 static asn_oer_constraints_t asn_OER_memb_deltaF_PUCCH_f1_constr_3 CC_NOTUSED = {
226 { 1, 0 } /* (-16..15) */,
228 static asn_per_constraints_t asn_PER_memb_deltaF_PUCCH_f1_constr_3 CC_NOTUSED = {
229 { APC_CONSTRAINED, 5, 5, -16, 15 } /* (-16..15) */,
230 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
231 0, 0 /* No PER value map */
233 static asn_oer_constraints_t asn_OER_memb_deltaF_PUCCH_f2_constr_4 CC_NOTUSED = {
234 { 1, 0 } /* (-16..15) */,
236 static asn_per_constraints_t asn_PER_memb_deltaF_PUCCH_f2_constr_4 CC_NOTUSED = {
237 { APC_CONSTRAINED, 5, 5, -16, 15 } /* (-16..15) */,
238 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
239 0, 0 /* No PER value map */
241 static asn_oer_constraints_t asn_OER_memb_deltaF_PUCCH_f3_constr_5 CC_NOTUSED = {
242 { 1, 0 } /* (-16..15) */,
244 static asn_per_constraints_t asn_PER_memb_deltaF_PUCCH_f3_constr_5 CC_NOTUSED = {
245 { APC_CONSTRAINED, 5, 5, -16, 15 } /* (-16..15) */,
246 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
247 0, 0 /* No PER value map */
249 static asn_oer_constraints_t asn_OER_memb_deltaF_PUCCH_f4_constr_6 CC_NOTUSED = {
250 { 1, 0 } /* (-16..15) */,
252 static asn_per_constraints_t asn_PER_memb_deltaF_PUCCH_f4_constr_6 CC_NOTUSED = {
253 { APC_CONSTRAINED, 5, 5, -16, 15 } /* (-16..15) */,
254 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
255 0, 0 /* No PER value map */
257 static asn_oer_constraints_t asn_OER_memb_p0_Set_constr_7 CC_NOTUSED = {
259 -1 /* (SIZE(1..8)) */};
260 static asn_per_constraints_t asn_PER_memb_p0_Set_constr_7 CC_NOTUSED = {
261 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
262 { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */,
263 0, 0 /* No PER value map */
265 static asn_oer_constraints_t asn_OER_memb_pathlossReferenceRSs_constr_9 CC_NOTUSED = {
267 -1 /* (SIZE(1..4)) */};
268 static asn_per_constraints_t asn_PER_memb_pathlossReferenceRSs_constr_9 CC_NOTUSED = {
269 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
270 { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */,
271 0, 0 /* No PER value map */
273 static asn_TYPE_member_t asn_MBR_p0_Set_7[] = {
275 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
280 0, 0, /* No default value */
284 static const ber_tlv_tag_t asn_DEF_p0_Set_tags_7[] = {
285 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
286 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
288 static asn_SET_OF_specifics_t asn_SPC_p0_Set_specs_7 = {
289 sizeof(struct PUCCH_PowerControl__p0_Set),
290 offsetof(struct PUCCH_PowerControl__p0_Set, _asn_ctx),
291 0, /* XER encoding is XMLDelimitedItemList */
293 static /* Use -fall-defs-global to expose */
294 asn_TYPE_descriptor_t asn_DEF_p0_Set_7 = {
298 asn_DEF_p0_Set_tags_7,
299 sizeof(asn_DEF_p0_Set_tags_7)
300 /sizeof(asn_DEF_p0_Set_tags_7[0]) - 1, /* 1 */
301 asn_DEF_p0_Set_tags_7, /* Same as above */
302 sizeof(asn_DEF_p0_Set_tags_7)
303 /sizeof(asn_DEF_p0_Set_tags_7[0]), /* 2 */
304 { &asn_OER_type_p0_Set_constr_7, &asn_PER_type_p0_Set_constr_7, SEQUENCE_OF_constraint },
306 1, /* Single element */
307 &asn_SPC_p0_Set_specs_7 /* Additional specs */
310 static asn_TYPE_member_t asn_MBR_pathlossReferenceRSs_9[] = {
312 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
314 &asn_DEF_PUCCH_PathlossReferenceRS,
317 0, 0, /* No default value */
321 static const ber_tlv_tag_t asn_DEF_pathlossReferenceRSs_tags_9[] = {
322 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
323 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
325 static asn_SET_OF_specifics_t asn_SPC_pathlossReferenceRSs_specs_9 = {
326 sizeof(struct PUCCH_PowerControl__pathlossReferenceRSs),
327 offsetof(struct PUCCH_PowerControl__pathlossReferenceRSs, _asn_ctx),
328 0, /* XER encoding is XMLDelimitedItemList */
330 static /* Use -fall-defs-global to expose */
331 asn_TYPE_descriptor_t asn_DEF_pathlossReferenceRSs_9 = {
332 "pathlossReferenceRSs",
333 "pathlossReferenceRSs",
335 asn_DEF_pathlossReferenceRSs_tags_9,
336 sizeof(asn_DEF_pathlossReferenceRSs_tags_9)
337 /sizeof(asn_DEF_pathlossReferenceRSs_tags_9[0]) - 1, /* 1 */
338 asn_DEF_pathlossReferenceRSs_tags_9, /* Same as above */
339 sizeof(asn_DEF_pathlossReferenceRSs_tags_9)
340 /sizeof(asn_DEF_pathlossReferenceRSs_tags_9[0]), /* 2 */
341 { &asn_OER_type_pathlossReferenceRSs_constr_9, &asn_PER_type_pathlossReferenceRSs_constr_9, SEQUENCE_OF_constraint },
342 asn_MBR_pathlossReferenceRSs_9,
343 1, /* Single element */
344 &asn_SPC_pathlossReferenceRSs_specs_9 /* Additional specs */
347 static const asn_INTEGER_enum_map_t asn_MAP_twoPUCCH_PC_AdjustmentStates_value2enum_11[] = {
348 { 0, 9, "twoStates" }
350 static const unsigned int asn_MAP_twoPUCCH_PC_AdjustmentStates_enum2value_11[] = {
353 static const asn_INTEGER_specifics_t asn_SPC_twoPUCCH_PC_AdjustmentStates_specs_11 = {
354 asn_MAP_twoPUCCH_PC_AdjustmentStates_value2enum_11, /* "tag" => N; sorted by tag */
355 asn_MAP_twoPUCCH_PC_AdjustmentStates_enum2value_11, /* N => "tag"; sorted by N */
356 1, /* Number of elements in the maps */
357 0, /* Enumeration is not extensible */
358 1, /* Strict enumeration */
359 0, /* Native long size */
362 static const ber_tlv_tag_t asn_DEF_twoPUCCH_PC_AdjustmentStates_tags_11[] = {
363 (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
364 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
366 static /* Use -fall-defs-global to expose */
367 asn_TYPE_descriptor_t asn_DEF_twoPUCCH_PC_AdjustmentStates_11 = {
368 "twoPUCCH-PC-AdjustmentStates",
369 "twoPUCCH-PC-AdjustmentStates",
370 &asn_OP_NativeEnumerated,
371 asn_DEF_twoPUCCH_PC_AdjustmentStates_tags_11,
372 sizeof(asn_DEF_twoPUCCH_PC_AdjustmentStates_tags_11)
373 /sizeof(asn_DEF_twoPUCCH_PC_AdjustmentStates_tags_11[0]) - 1, /* 1 */
374 asn_DEF_twoPUCCH_PC_AdjustmentStates_tags_11, /* Same as above */
375 sizeof(asn_DEF_twoPUCCH_PC_AdjustmentStates_tags_11)
376 /sizeof(asn_DEF_twoPUCCH_PC_AdjustmentStates_tags_11[0]), /* 2 */
377 { &asn_OER_type_twoPUCCH_PC_AdjustmentStates_constr_11, &asn_PER_type_twoPUCCH_PC_AdjustmentStates_constr_11, NativeEnumerated_constraint },
378 0, 0, /* Defined elsewhere */
379 &asn_SPC_twoPUCCH_PC_AdjustmentStates_specs_11 /* Additional specs */
382 asn_TYPE_member_t asn_MBR_PUCCH_PowerControl_1[] = {
383 { ATF_POINTER, 8, offsetof(struct PUCCH_PowerControl, deltaF_PUCCH_f0),
384 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
385 -1, /* IMPLICIT tag at current level */
386 &asn_DEF_NativeInteger,
388 { &asn_OER_memb_deltaF_PUCCH_f0_constr_2, &asn_PER_memb_deltaF_PUCCH_f0_constr_2, memb_deltaF_PUCCH_f0_constraint_1 },
389 0, 0, /* No default value */
392 { ATF_POINTER, 7, offsetof(struct PUCCH_PowerControl, deltaF_PUCCH_f1),
393 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
394 -1, /* IMPLICIT tag at current level */
395 &asn_DEF_NativeInteger,
397 { &asn_OER_memb_deltaF_PUCCH_f1_constr_3, &asn_PER_memb_deltaF_PUCCH_f1_constr_3, memb_deltaF_PUCCH_f1_constraint_1 },
398 0, 0, /* No default value */
401 { ATF_POINTER, 6, offsetof(struct PUCCH_PowerControl, deltaF_PUCCH_f2),
402 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
403 -1, /* IMPLICIT tag at current level */
404 &asn_DEF_NativeInteger,
406 { &asn_OER_memb_deltaF_PUCCH_f2_constr_4, &asn_PER_memb_deltaF_PUCCH_f2_constr_4, memb_deltaF_PUCCH_f2_constraint_1 },
407 0, 0, /* No default value */
410 { ATF_POINTER, 5, offsetof(struct PUCCH_PowerControl, deltaF_PUCCH_f3),
411 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
412 -1, /* IMPLICIT tag at current level */
413 &asn_DEF_NativeInteger,
415 { &asn_OER_memb_deltaF_PUCCH_f3_constr_5, &asn_PER_memb_deltaF_PUCCH_f3_constr_5, memb_deltaF_PUCCH_f3_constraint_1 },
416 0, 0, /* No default value */
419 { ATF_POINTER, 4, offsetof(struct PUCCH_PowerControl, deltaF_PUCCH_f4),
420 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
421 -1, /* IMPLICIT tag at current level */
422 &asn_DEF_NativeInteger,
424 { &asn_OER_memb_deltaF_PUCCH_f4_constr_6, &asn_PER_memb_deltaF_PUCCH_f4_constr_6, memb_deltaF_PUCCH_f4_constraint_1 },
425 0, 0, /* No default value */
428 { ATF_POINTER, 3, offsetof(struct PUCCH_PowerControl, p0_Set),
429 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
433 { &asn_OER_memb_p0_Set_constr_7, &asn_PER_memb_p0_Set_constr_7, memb_p0_Set_constraint_1 },
434 0, 0, /* No default value */
437 { ATF_POINTER, 2, offsetof(struct PUCCH_PowerControl, pathlossReferenceRSs),
438 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
440 &asn_DEF_pathlossReferenceRSs_9,
442 { &asn_OER_memb_pathlossReferenceRSs_constr_9, &asn_PER_memb_pathlossReferenceRSs_constr_9, memb_pathlossReferenceRSs_constraint_1 },
443 0, 0, /* No default value */
444 "pathlossReferenceRSs"
446 { ATF_POINTER, 1, offsetof(struct PUCCH_PowerControl, twoPUCCH_PC_AdjustmentStates),
447 (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
448 -1, /* IMPLICIT tag at current level */
449 &asn_DEF_twoPUCCH_PC_AdjustmentStates_11,
452 0, 0, /* No default value */
453 "twoPUCCH-PC-AdjustmentStates"
456 static const int asn_MAP_PUCCH_PowerControl_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7 };
457 static const ber_tlv_tag_t asn_DEF_PUCCH_PowerControl_tags_1[] = {
458 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
460 static const asn_TYPE_tag2member_t asn_MAP_PUCCH_PowerControl_tag2el_1[] = {
461 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* deltaF-PUCCH-f0 */
462 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* deltaF-PUCCH-f1 */
463 { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* deltaF-PUCCH-f2 */
464 { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* deltaF-PUCCH-f3 */
465 { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* deltaF-PUCCH-f4 */
466 { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* p0-Set */
467 { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* pathlossReferenceRSs */
468 { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* twoPUCCH-PC-AdjustmentStates */
470 asn_SEQUENCE_specifics_t asn_SPC_PUCCH_PowerControl_specs_1 = {
471 sizeof(struct PUCCH_PowerControl),
472 offsetof(struct PUCCH_PowerControl, _asn_ctx),
473 asn_MAP_PUCCH_PowerControl_tag2el_1,
474 8, /* Count of tags in the map */
475 asn_MAP_PUCCH_PowerControl_oms_1, /* Optional members */
476 8, 0, /* Root/Additions */
477 8, /* First extension addition */
479 asn_TYPE_descriptor_t asn_DEF_PUCCH_PowerControl = {
480 "PUCCH-PowerControl",
481 "PUCCH-PowerControl",
483 asn_DEF_PUCCH_PowerControl_tags_1,
484 sizeof(asn_DEF_PUCCH_PowerControl_tags_1)
485 /sizeof(asn_DEF_PUCCH_PowerControl_tags_1[0]), /* 1 */
486 asn_DEF_PUCCH_PowerControl_tags_1, /* Same as above */
487 sizeof(asn_DEF_PUCCH_PowerControl_tags_1)
488 /sizeof(asn_DEF_PUCCH_PowerControl_tags_1[0]), /* 1 */
489 { 0, 0, SEQUENCE_constraint },
490 asn_MBR_PUCCH_PowerControl_1,
491 8, /* Elements count */
492 &asn_SPC_PUCCH_PowerControl_specs_1 /* Additional specs */