c6b147ff2d5f76a6cb9cb26bfabfdaebd520fa0d
[o-du/l2.git] / src / codec_utils / RRC / CSI-RS-ResourceMapping.c
1 /*
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`
6  */
7
8 #include "CSI-RS-ResourceMapping.h"
9
10 static int
11 memb_row1_constraint_2(const asn_TYPE_descriptor_t *td, const void *sptr,
12                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
13         const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
14         size_t size;
15         
16         if(!sptr) {
17                 ASN__CTFAIL(app_key, td, sptr,
18                         "%s: value not given (%s:%d)",
19                         td->name, __FILE__, __LINE__);
20                 return -1;
21         }
22         
23         if(st->size > 0) {
24                 /* Size in bits */
25                 size = 8 * st->size - (st->bits_unused & 0x07);
26         } else {
27                 size = 0;
28         }
29         
30         if((size == 4)) {
31                 /* Constraint check succeeded */
32                 return 0;
33         } else {
34                 ASN__CTFAIL(app_key, td, sptr,
35                         "%s: constraint failed (%s:%d)",
36                         td->name, __FILE__, __LINE__);
37                 return -1;
38         }
39 }
40
41 static int
42 memb_row2_constraint_2(const asn_TYPE_descriptor_t *td, const void *sptr,
43                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
44         const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
45         size_t size;
46         
47         if(!sptr) {
48                 ASN__CTFAIL(app_key, td, sptr,
49                         "%s: value not given (%s:%d)",
50                         td->name, __FILE__, __LINE__);
51                 return -1;
52         }
53         
54         if(st->size > 0) {
55                 /* Size in bits */
56                 size = 8 * st->size - (st->bits_unused & 0x07);
57         } else {
58                 size = 0;
59         }
60         
61         if((size == 12)) {
62                 /* Constraint check succeeded */
63                 return 0;
64         } else {
65                 ASN__CTFAIL(app_key, td, sptr,
66                         "%s: constraint failed (%s:%d)",
67                         td->name, __FILE__, __LINE__);
68                 return -1;
69         }
70 }
71
72 static int
73 memb_row4_constraint_2(const asn_TYPE_descriptor_t *td, const void *sptr,
74                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
75         const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
76         size_t size;
77         
78         if(!sptr) {
79                 ASN__CTFAIL(app_key, td, sptr,
80                         "%s: value not given (%s:%d)",
81                         td->name, __FILE__, __LINE__);
82                 return -1;
83         }
84         
85         if(st->size > 0) {
86                 /* Size in bits */
87                 size = 8 * st->size - (st->bits_unused & 0x07);
88         } else {
89                 size = 0;
90         }
91         
92         if((size == 3)) {
93                 /* Constraint check succeeded */
94                 return 0;
95         } else {
96                 ASN__CTFAIL(app_key, td, sptr,
97                         "%s: constraint failed (%s:%d)",
98                         td->name, __FILE__, __LINE__);
99                 return -1;
100         }
101 }
102
103 static int
104 memb_other_constraint_2(const asn_TYPE_descriptor_t *td, const void *sptr,
105                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
106         const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
107         size_t size;
108         
109         if(!sptr) {
110                 ASN__CTFAIL(app_key, td, sptr,
111                         "%s: value not given (%s:%d)",
112                         td->name, __FILE__, __LINE__);
113                 return -1;
114         }
115         
116         if(st->size > 0) {
117                 /* Size in bits */
118                 size = 8 * st->size - (st->bits_unused & 0x07);
119         } else {
120                 size = 0;
121         }
122         
123         if((size == 6)) {
124                 /* Constraint check succeeded */
125                 return 0;
126         } else {
127                 ASN__CTFAIL(app_key, td, sptr,
128                         "%s: constraint failed (%s:%d)",
129                         td->name, __FILE__, __LINE__);
130                 return -1;
131         }
132 }
133
134 /*
135  * This type is implemented using NativeEnumerated,
136  * so here we adjust the DEF accordingly.
137  */
138 /*
139  * This type is implemented using NativeEnumerated,
140  * so here we adjust the DEF accordingly.
141  */
142 /*
143  * This type is implemented using NativeEnumerated,
144  * so here we adjust the DEF accordingly.
145  */
146 static int
147 memb_firstOFDMSymbolInTimeDomain_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
148                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
149         long value;
150         
151         if(!sptr) {
152                 ASN__CTFAIL(app_key, td, sptr,
153                         "%s: value not given (%s:%d)",
154                         td->name, __FILE__, __LINE__);
155                 return -1;
156         }
157         
158         value = *(const long *)sptr;
159         
160         if((value >= 0 && value <= 13)) {
161                 /* Constraint check succeeded */
162                 return 0;
163         } else {
164                 ASN__CTFAIL(app_key, td, sptr,
165                         "%s: constraint failed (%s:%d)",
166                         td->name, __FILE__, __LINE__);
167                 return -1;
168         }
169 }
170
171 static int
172 memb_firstOFDMSymbolInTimeDomain2_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
173                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
174         long value;
175         
176         if(!sptr) {
177                 ASN__CTFAIL(app_key, td, sptr,
178                         "%s: value not given (%s:%d)",
179                         td->name, __FILE__, __LINE__);
180                 return -1;
181         }
182         
183         value = *(const long *)sptr;
184         
185         if((value >= 2 && value <= 12)) {
186                 /* Constraint check succeeded */
187                 return 0;
188         } else {
189                 ASN__CTFAIL(app_key, td, sptr,
190                         "%s: constraint failed (%s:%d)",
191                         td->name, __FILE__, __LINE__);
192                 return -1;
193         }
194 }
195
196 static asn_oer_constraints_t asn_OER_memb_row1_constr_3 CC_NOTUSED = {
197         { 0, 0 },
198         4       /* (SIZE(4..4)) */};
199 static asn_per_constraints_t asn_PER_memb_row1_constr_3 CC_NOTUSED = {
200         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
201         { APC_CONSTRAINED,       0,  0,  4,  4 }        /* (SIZE(4..4)) */,
202         0, 0    /* No PER value map */
203 };
204 static asn_oer_constraints_t asn_OER_memb_row2_constr_4 CC_NOTUSED = {
205         { 0, 0 },
206         12      /* (SIZE(12..12)) */};
207 static asn_per_constraints_t asn_PER_memb_row2_constr_4 CC_NOTUSED = {
208         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
209         { APC_CONSTRAINED,       0,  0,  12,  12 }      /* (SIZE(12..12)) */,
210         0, 0    /* No PER value map */
211 };
212 static asn_oer_constraints_t asn_OER_memb_row4_constr_5 CC_NOTUSED = {
213         { 0, 0 },
214         3       /* (SIZE(3..3)) */};
215 static asn_per_constraints_t asn_PER_memb_row4_constr_5 CC_NOTUSED = {
216         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
217         { APC_CONSTRAINED,       0,  0,  3,  3 }        /* (SIZE(3..3)) */,
218         0, 0    /* No PER value map */
219 };
220 static asn_oer_constraints_t asn_OER_memb_other_constr_6 CC_NOTUSED = {
221         { 0, 0 },
222         6       /* (SIZE(6..6)) */};
223 static asn_per_constraints_t asn_PER_memb_other_constr_6 CC_NOTUSED = {
224         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
225         { APC_CONSTRAINED,       0,  0,  6,  6 }        /* (SIZE(6..6)) */,
226         0, 0    /* No PER value map */
227 };
228 static asn_oer_constraints_t asn_OER_type_frequencyDomainAllocation_constr_2 CC_NOTUSED = {
229         { 0, 0 },
230         -1};
231 static asn_per_constraints_t asn_PER_type_frequencyDomainAllocation_constr_2 CC_NOTUSED = {
232         { APC_CONSTRAINED,       2,  2,  0,  3 }        /* (0..3) */,
233         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
234         0, 0    /* No PER value map */
235 };
236 static asn_oer_constraints_t asn_OER_type_nrofPorts_constr_7 CC_NOTUSED = {
237         { 0, 0 },
238         -1};
239 static asn_per_constraints_t asn_PER_type_nrofPorts_constr_7 CC_NOTUSED = {
240         { APC_CONSTRAINED,       3,  3,  0,  7 }        /* (0..7) */,
241         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
242         0, 0    /* No PER value map */
243 };
244 static asn_oer_constraints_t asn_OER_type_cdm_Type_constr_18 CC_NOTUSED = {
245         { 0, 0 },
246         -1};
247 static asn_per_constraints_t asn_PER_type_cdm_Type_constr_18 CC_NOTUSED = {
248         { APC_CONSTRAINED,       2,  2,  0,  3 }        /* (0..3) */,
249         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
250         0, 0    /* No PER value map */
251 };
252 static asn_oer_constraints_t asn_OER_type_dot5_constr_24 CC_NOTUSED = {
253         { 0, 0 },
254         -1};
255 static asn_per_constraints_t asn_PER_type_dot5_constr_24 CC_NOTUSED = {
256         { APC_CONSTRAINED,       1,  1,  0,  1 }        /* (0..1) */,
257         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
258         0, 0    /* No PER value map */
259 };
260 static asn_oer_constraints_t asn_OER_type_density_constr_23 CC_NOTUSED = {
261         { 0, 0 },
262         -1};
263 static asn_per_constraints_t asn_PER_type_density_constr_23 CC_NOTUSED = {
264         { APC_CONSTRAINED,       2,  2,  0,  3 }        /* (0..3) */,
265         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
266         0, 0    /* No PER value map */
267 };
268 static asn_oer_constraints_t asn_OER_memb_firstOFDMSymbolInTimeDomain_constr_16 CC_NOTUSED = {
269         { 1, 1 }        /* (0..13) */,
270         -1};
271 static asn_per_constraints_t asn_PER_memb_firstOFDMSymbolInTimeDomain_constr_16 CC_NOTUSED = {
272         { APC_CONSTRAINED,       4,  4,  0,  13 }       /* (0..13) */,
273         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
274         0, 0    /* No PER value map */
275 };
276 static asn_oer_constraints_t asn_OER_memb_firstOFDMSymbolInTimeDomain2_constr_17 CC_NOTUSED = {
277         { 1, 1 }        /* (2..12) */,
278         -1};
279 static asn_per_constraints_t asn_PER_memb_firstOFDMSymbolInTimeDomain2_constr_17 CC_NOTUSED = {
280         { APC_CONSTRAINED,       4,  4,  2,  12 }       /* (2..12) */,
281         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
282         0, 0    /* No PER value map */
283 };
284 static asn_TYPE_member_t asn_MBR_frequencyDomainAllocation_2[] = {
285         { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ResourceMapping__frequencyDomainAllocation, choice.row1),
286                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
287                 -1,     /* IMPLICIT tag at current level */
288                 &asn_DEF_BIT_STRING,
289                 0,
290                 { &asn_OER_memb_row1_constr_3, &asn_PER_memb_row1_constr_3,  memb_row1_constraint_2 },
291                 0, 0, /* No default value */
292                 "row1"
293                 },
294         { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ResourceMapping__frequencyDomainAllocation, choice.row2),
295                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
296                 -1,     /* IMPLICIT tag at current level */
297                 &asn_DEF_BIT_STRING,
298                 0,
299                 { &asn_OER_memb_row2_constr_4, &asn_PER_memb_row2_constr_4,  memb_row2_constraint_2 },
300                 0, 0, /* No default value */
301                 "row2"
302                 },
303         { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ResourceMapping__frequencyDomainAllocation, choice.row4),
304                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
305                 -1,     /* IMPLICIT tag at current level */
306                 &asn_DEF_BIT_STRING,
307                 0,
308                 { &asn_OER_memb_row4_constr_5, &asn_PER_memb_row4_constr_5,  memb_row4_constraint_2 },
309                 0, 0, /* No default value */
310                 "row4"
311                 },
312         { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ResourceMapping__frequencyDomainAllocation, choice.other),
313                 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
314                 -1,     /* IMPLICIT tag at current level */
315                 &asn_DEF_BIT_STRING,
316                 0,
317                 { &asn_OER_memb_other_constr_6, &asn_PER_memb_other_constr_6,  memb_other_constraint_2 },
318                 0, 0, /* No default value */
319                 "other"
320                 },
321 };
322 static const asn_TYPE_tag2member_t asn_MAP_frequencyDomainAllocation_tag2el_2[] = {
323     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* row1 */
324     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* row2 */
325     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* row4 */
326     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* other */
327 };
328 static asn_CHOICE_specifics_t asn_SPC_frequencyDomainAllocation_specs_2 = {
329         sizeof(struct CSI_RS_ResourceMapping__frequencyDomainAllocation),
330         offsetof(struct CSI_RS_ResourceMapping__frequencyDomainAllocation, _asn_ctx),
331         offsetof(struct CSI_RS_ResourceMapping__frequencyDomainAllocation, present),
332         sizeof(((struct CSI_RS_ResourceMapping__frequencyDomainAllocation *)0)->present),
333         asn_MAP_frequencyDomainAllocation_tag2el_2,
334         4,      /* Count of tags in the map */
335         0, 0,
336         -1      /* Extensions start */
337 };
338 static /* Use -fall-defs-global to expose */
339 asn_TYPE_descriptor_t asn_DEF_frequencyDomainAllocation_2 = {
340         "frequencyDomainAllocation",
341         "frequencyDomainAllocation",
342         &asn_OP_CHOICE,
343         0,      /* No effective tags (pointer) */
344         0,      /* No effective tags (count) */
345         0,      /* No tags (pointer) */
346         0,      /* No tags (count) */
347         { &asn_OER_type_frequencyDomainAllocation_constr_2, &asn_PER_type_frequencyDomainAllocation_constr_2, CHOICE_constraint },
348         asn_MBR_frequencyDomainAllocation_2,
349         4,      /* Elements count */
350         &asn_SPC_frequencyDomainAllocation_specs_2      /* Additional specs */
351 };
352
353 static const asn_INTEGER_enum_map_t asn_MAP_nrofPorts_value2enum_7[] = {
354         { 0,    2,      "p1" },
355         { 1,    2,      "p2" },
356         { 2,    2,      "p4" },
357         { 3,    2,      "p8" },
358         { 4,    3,      "p12" },
359         { 5,    3,      "p16" },
360         { 6,    3,      "p24" },
361         { 7,    3,      "p32" }
362 };
363 static const unsigned int asn_MAP_nrofPorts_enum2value_7[] = {
364         0,      /* p1(0) */
365         4,      /* p12(4) */
366         5,      /* p16(5) */
367         1,      /* p2(1) */
368         6,      /* p24(6) */
369         7,      /* p32(7) */
370         2,      /* p4(2) */
371         3       /* p8(3) */
372 };
373 static const asn_INTEGER_specifics_t asn_SPC_nrofPorts_specs_7 = {
374         asn_MAP_nrofPorts_value2enum_7, /* "tag" => N; sorted by tag */
375         asn_MAP_nrofPorts_enum2value_7, /* N => "tag"; sorted by N */
376         8,      /* Number of elements in the maps */
377         0,      /* Enumeration is not extensible */
378         1,      /* Strict enumeration */
379         0,      /* Native long size */
380         0
381 };
382 static const ber_tlv_tag_t asn_DEF_nrofPorts_tags_7[] = {
383         (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
384         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
385 };
386 static /* Use -fall-defs-global to expose */
387 asn_TYPE_descriptor_t asn_DEF_nrofPorts_7 = {
388         "nrofPorts",
389         "nrofPorts",
390         &asn_OP_NativeEnumerated,
391         asn_DEF_nrofPorts_tags_7,
392         sizeof(asn_DEF_nrofPorts_tags_7)
393                 /sizeof(asn_DEF_nrofPorts_tags_7[0]) - 1, /* 1 */
394         asn_DEF_nrofPorts_tags_7,       /* Same as above */
395         sizeof(asn_DEF_nrofPorts_tags_7)
396                 /sizeof(asn_DEF_nrofPorts_tags_7[0]), /* 2 */
397         { &asn_OER_type_nrofPorts_constr_7, &asn_PER_type_nrofPorts_constr_7, NativeEnumerated_constraint },
398         0, 0,   /* Defined elsewhere */
399         &asn_SPC_nrofPorts_specs_7      /* Additional specs */
400 };
401
402 static const asn_INTEGER_enum_map_t asn_MAP_cdm_Type_value2enum_18[] = {
403         { 0,    5,      "noCDM" },
404         { 1,    7,      "fd-CDM2" },
405         { 2,    12,     "cdm4-FD2-TD2" },
406         { 3,    12,     "cdm8-FD2-TD4" }
407 };
408 static const unsigned int asn_MAP_cdm_Type_enum2value_18[] = {
409         2,      /* cdm4-FD2-TD2(2) */
410         3,      /* cdm8-FD2-TD4(3) */
411         1,      /* fd-CDM2(1) */
412         0       /* noCDM(0) */
413 };
414 static const asn_INTEGER_specifics_t asn_SPC_cdm_Type_specs_18 = {
415         asn_MAP_cdm_Type_value2enum_18, /* "tag" => N; sorted by tag */
416         asn_MAP_cdm_Type_enum2value_18, /* N => "tag"; sorted by N */
417         4,      /* Number of elements in the maps */
418         0,      /* Enumeration is not extensible */
419         1,      /* Strict enumeration */
420         0,      /* Native long size */
421         0
422 };
423 static const ber_tlv_tag_t asn_DEF_cdm_Type_tags_18[] = {
424         (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
425         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
426 };
427 static /* Use -fall-defs-global to expose */
428 asn_TYPE_descriptor_t asn_DEF_cdm_Type_18 = {
429         "cdm-Type",
430         "cdm-Type",
431         &asn_OP_NativeEnumerated,
432         asn_DEF_cdm_Type_tags_18,
433         sizeof(asn_DEF_cdm_Type_tags_18)
434                 /sizeof(asn_DEF_cdm_Type_tags_18[0]) - 1, /* 1 */
435         asn_DEF_cdm_Type_tags_18,       /* Same as above */
436         sizeof(asn_DEF_cdm_Type_tags_18)
437                 /sizeof(asn_DEF_cdm_Type_tags_18[0]), /* 2 */
438         { &asn_OER_type_cdm_Type_constr_18, &asn_PER_type_cdm_Type_constr_18, NativeEnumerated_constraint },
439         0, 0,   /* Defined elsewhere */
440         &asn_SPC_cdm_Type_specs_18      /* Additional specs */
441 };
442
443 static const asn_INTEGER_enum_map_t asn_MAP_dot5_value2enum_24[] = {
444         { 0,    8,      "evenPRBs" },
445         { 1,    7,      "oddPRBs" }
446 };
447 static const unsigned int asn_MAP_dot5_enum2value_24[] = {
448         0,      /* evenPRBs(0) */
449         1       /* oddPRBs(1) */
450 };
451 static const asn_INTEGER_specifics_t asn_SPC_dot5_specs_24 = {
452         asn_MAP_dot5_value2enum_24,     /* "tag" => N; sorted by tag */
453         asn_MAP_dot5_enum2value_24,     /* N => "tag"; sorted by N */
454         2,      /* Number of elements in the maps */
455         0,      /* Enumeration is not extensible */
456         1,      /* Strict enumeration */
457         0,      /* Native long size */
458         0
459 };
460 static const ber_tlv_tag_t asn_DEF_dot5_tags_24[] = {
461         (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
462         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
463 };
464 static /* Use -fall-defs-global to expose */
465 asn_TYPE_descriptor_t asn_DEF_dot5_24 = {
466         "dot5",
467         "dot5",
468         &asn_OP_NativeEnumerated,
469         asn_DEF_dot5_tags_24,
470         sizeof(asn_DEF_dot5_tags_24)
471                 /sizeof(asn_DEF_dot5_tags_24[0]) - 1, /* 1 */
472         asn_DEF_dot5_tags_24,   /* Same as above */
473         sizeof(asn_DEF_dot5_tags_24)
474                 /sizeof(asn_DEF_dot5_tags_24[0]), /* 2 */
475         { &asn_OER_type_dot5_constr_24, &asn_PER_type_dot5_constr_24, NativeEnumerated_constraint },
476         0, 0,   /* Defined elsewhere */
477         &asn_SPC_dot5_specs_24  /* Additional specs */
478 };
479
480 static asn_TYPE_member_t asn_MBR_density_23[] = {
481         { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ResourceMapping__density, choice.dot5),
482                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
483                 -1,     /* IMPLICIT tag at current level */
484                 &asn_DEF_dot5_24,
485                 0,
486                 { 0, 0, 0 },
487                 0, 0, /* No default value */
488                 "dot5"
489                 },
490         { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ResourceMapping__density, choice.one),
491                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
492                 -1,     /* IMPLICIT tag at current level */
493                 &asn_DEF_NULL,
494                 0,
495                 { 0, 0, 0 },
496                 0, 0, /* No default value */
497                 "one"
498                 },
499         { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ResourceMapping__density, choice.three),
500                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
501                 -1,     /* IMPLICIT tag at current level */
502                 &asn_DEF_NULL,
503                 0,
504                 { 0, 0, 0 },
505                 0, 0, /* No default value */
506                 "three"
507                 },
508         { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ResourceMapping__density, choice.spare),
509                 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
510                 -1,     /* IMPLICIT tag at current level */
511                 &asn_DEF_NULL,
512                 0,
513                 { 0, 0, 0 },
514                 0, 0, /* No default value */
515                 "spare"
516                 },
517 };
518 static const asn_TYPE_tag2member_t asn_MAP_density_tag2el_23[] = {
519     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dot5 */
520     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* one */
521     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* three */
522     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* spare */
523 };
524 static asn_CHOICE_specifics_t asn_SPC_density_specs_23 = {
525         sizeof(struct CSI_RS_ResourceMapping__density),
526         offsetof(struct CSI_RS_ResourceMapping__density, _asn_ctx),
527         offsetof(struct CSI_RS_ResourceMapping__density, present),
528         sizeof(((struct CSI_RS_ResourceMapping__density *)0)->present),
529         asn_MAP_density_tag2el_23,
530         4,      /* Count of tags in the map */
531         0, 0,
532         -1      /* Extensions start */
533 };
534 static /* Use -fall-defs-global to expose */
535 asn_TYPE_descriptor_t asn_DEF_density_23 = {
536         "density",
537         "density",
538         &asn_OP_CHOICE,
539         0,      /* No effective tags (pointer) */
540         0,      /* No effective tags (count) */
541         0,      /* No tags (pointer) */
542         0,      /* No tags (count) */
543         { &asn_OER_type_density_constr_23, &asn_PER_type_density_constr_23, CHOICE_constraint },
544         asn_MBR_density_23,
545         4,      /* Elements count */
546         &asn_SPC_density_specs_23       /* Additional specs */
547 };
548
549 asn_TYPE_member_t asn_MBR_CSI_RS_ResourceMapping_1[] = {
550         { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ResourceMapping, frequencyDomainAllocation),
551                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
552                 +1,     /* EXPLICIT tag at current level */
553                 &asn_DEF_frequencyDomainAllocation_2,
554                 0,
555                 { 0, 0, 0 },
556                 0, 0, /* No default value */
557                 "frequencyDomainAllocation"
558                 },
559         { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ResourceMapping, nrofPorts),
560                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
561                 -1,     /* IMPLICIT tag at current level */
562                 &asn_DEF_nrofPorts_7,
563                 0,
564                 { 0, 0, 0 },
565                 0, 0, /* No default value */
566                 "nrofPorts"
567                 },
568         { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ResourceMapping, firstOFDMSymbolInTimeDomain),
569                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
570                 -1,     /* IMPLICIT tag at current level */
571                 &asn_DEF_NativeInteger,
572                 0,
573                 { &asn_OER_memb_firstOFDMSymbolInTimeDomain_constr_16, &asn_PER_memb_firstOFDMSymbolInTimeDomain_constr_16,  memb_firstOFDMSymbolInTimeDomain_constraint_1 },
574                 0, 0, /* No default value */
575                 "firstOFDMSymbolInTimeDomain"
576                 },
577         { ATF_POINTER, 1, offsetof(struct CSI_RS_ResourceMapping, firstOFDMSymbolInTimeDomain2),
578                 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
579                 -1,     /* IMPLICIT tag at current level */
580                 &asn_DEF_NativeInteger,
581                 0,
582                 { &asn_OER_memb_firstOFDMSymbolInTimeDomain2_constr_17, &asn_PER_memb_firstOFDMSymbolInTimeDomain2_constr_17,  memb_firstOFDMSymbolInTimeDomain2_constraint_1 },
583                 0, 0, /* No default value */
584                 "firstOFDMSymbolInTimeDomain2"
585                 },
586         { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ResourceMapping, cdm_Type),
587                 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
588                 -1,     /* IMPLICIT tag at current level */
589                 &asn_DEF_cdm_Type_18,
590                 0,
591                 { 0, 0, 0 },
592                 0, 0, /* No default value */
593                 "cdm-Type"
594                 },
595         { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ResourceMapping, density),
596                 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
597                 +1,     /* EXPLICIT tag at current level */
598                 &asn_DEF_density_23,
599                 0,
600                 { 0, 0, 0 },
601                 0, 0, /* No default value */
602                 "density"
603                 },
604         { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ResourceMapping, freqBand),
605                 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
606                 -1,     /* IMPLICIT tag at current level */
607                 &asn_DEF_CSI_FrequencyOccupation,
608                 0,
609                 { 0, 0, 0 },
610                 0, 0, /* No default value */
611                 "freqBand"
612                 },
613 };
614 static const int asn_MAP_CSI_RS_ResourceMapping_oms_1[] = { 3 };
615 static const ber_tlv_tag_t asn_DEF_CSI_RS_ResourceMapping_tags_1[] = {
616         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
617 };
618 static const asn_TYPE_tag2member_t asn_MAP_CSI_RS_ResourceMapping_tag2el_1[] = {
619     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* frequencyDomainAllocation */
620     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nrofPorts */
621     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* firstOFDMSymbolInTimeDomain */
622     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* firstOFDMSymbolInTimeDomain2 */
623     { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* cdm-Type */
624     { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* density */
625     { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* freqBand */
626 };
627 asn_SEQUENCE_specifics_t asn_SPC_CSI_RS_ResourceMapping_specs_1 = {
628         sizeof(struct CSI_RS_ResourceMapping),
629         offsetof(struct CSI_RS_ResourceMapping, _asn_ctx),
630         asn_MAP_CSI_RS_ResourceMapping_tag2el_1,
631         7,      /* Count of tags in the map */
632         asn_MAP_CSI_RS_ResourceMapping_oms_1,   /* Optional members */
633         1, 0,   /* Root/Additions */
634         7,      /* First extension addition */
635 };
636 asn_TYPE_descriptor_t asn_DEF_CSI_RS_ResourceMapping = {
637         "CSI-RS-ResourceMapping",
638         "CSI-RS-ResourceMapping",
639         &asn_OP_SEQUENCE,
640         asn_DEF_CSI_RS_ResourceMapping_tags_1,
641         sizeof(asn_DEF_CSI_RS_ResourceMapping_tags_1)
642                 /sizeof(asn_DEF_CSI_RS_ResourceMapping_tags_1[0]), /* 1 */
643         asn_DEF_CSI_RS_ResourceMapping_tags_1,  /* Same as above */
644         sizeof(asn_DEF_CSI_RS_ResourceMapping_tags_1)
645                 /sizeof(asn_DEF_CSI_RS_ResourceMapping_tags_1[0]), /* 1 */
646         { 0, 0, SEQUENCE_constraint },
647         asn_MBR_CSI_RS_ResourceMapping_1,
648         7,      /* Elements count */
649         &asn_SPC_CSI_RS_ResourceMapping_specs_1 /* Additional specs */
650 };
651