a72315765fcf08648a70d14fd87b8b92b3a49041
[o-du/l2.git] / src / codec_utils / RRC / CrossCarrierSchedulingConfig.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 "CrossCarrierSchedulingConfig.h"
9
10 static int
11 memb_cif_InSchedulingCell_constraint_5(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 >= 1 && value <= 7)) {
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 asn_oer_constraints_t asn_OER_memb_cif_InSchedulingCell_constr_7 CC_NOTUSED = {
36         { 1, 1 }        /* (1..7) */,
37         -1};
38 static asn_per_constraints_t asn_PER_memb_cif_InSchedulingCell_constr_7 CC_NOTUSED = {
39         { APC_CONSTRAINED,       3,  3,  1,  7 }        /* (1..7) */,
40         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
41         0, 0    /* No PER value map */
42 };
43 static asn_oer_constraints_t asn_OER_type_schedulingCellInfo_constr_2 CC_NOTUSED = {
44         { 0, 0 },
45         -1};
46 static asn_per_constraints_t asn_PER_type_schedulingCellInfo_constr_2 CC_NOTUSED = {
47         { APC_CONSTRAINED,       1,  1,  0,  1 }        /* (0..1) */,
48         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
49         0, 0    /* No PER value map */
50 };
51 static asn_TYPE_member_t asn_MBR_own_3[] = {
52         { ATF_NOFLAGS, 0, offsetof(struct CrossCarrierSchedulingConfig__schedulingCellInfo__own, cif_Presence),
53                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
54                 -1,     /* IMPLICIT tag at current level */
55                 &asn_DEF_BOOLEAN,
56                 0,
57                 { 0, 0, 0 },
58                 0, 0, /* No default value */
59                 "cif-Presence"
60                 },
61 };
62 static const ber_tlv_tag_t asn_DEF_own_tags_3[] = {
63         (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
64         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
65 };
66 static const asn_TYPE_tag2member_t asn_MAP_own_tag2el_3[] = {
67     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cif-Presence */
68 };
69 static asn_SEQUENCE_specifics_t asn_SPC_own_specs_3 = {
70         sizeof(struct CrossCarrierSchedulingConfig__schedulingCellInfo__own),
71         offsetof(struct CrossCarrierSchedulingConfig__schedulingCellInfo__own, _asn_ctx),
72         asn_MAP_own_tag2el_3,
73         1,      /* Count of tags in the map */
74         0, 0, 0,        /* Optional elements (not needed) */
75         -1,     /* First extension addition */
76 };
77 static /* Use -fall-defs-global to expose */
78 asn_TYPE_descriptor_t asn_DEF_own_3 = {
79         "own",
80         "own",
81         &asn_OP_SEQUENCE,
82         asn_DEF_own_tags_3,
83         sizeof(asn_DEF_own_tags_3)
84                 /sizeof(asn_DEF_own_tags_3[0]) - 1, /* 1 */
85         asn_DEF_own_tags_3,     /* Same as above */
86         sizeof(asn_DEF_own_tags_3)
87                 /sizeof(asn_DEF_own_tags_3[0]), /* 2 */
88         { 0, 0, SEQUENCE_constraint },
89         asn_MBR_own_3,
90         1,      /* Elements count */
91         &asn_SPC_own_specs_3    /* Additional specs */
92 };
93
94 static asn_TYPE_member_t asn_MBR_other_5[] = {
95         { ATF_NOFLAGS, 0, offsetof(struct CrossCarrierSchedulingConfig__schedulingCellInfo__other, schedulingCellId),
96                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
97                 -1,     /* IMPLICIT tag at current level */
98                 &asn_DEF_ServCellIndex,
99                 0,
100                 { 0, 0, 0 },
101                 0, 0, /* No default value */
102                 "schedulingCellId"
103                 },
104         { ATF_NOFLAGS, 0, offsetof(struct CrossCarrierSchedulingConfig__schedulingCellInfo__other, cif_InSchedulingCell),
105                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
106                 -1,     /* IMPLICIT tag at current level */
107                 &asn_DEF_NativeInteger,
108                 0,
109                 { &asn_OER_memb_cif_InSchedulingCell_constr_7, &asn_PER_memb_cif_InSchedulingCell_constr_7,  memb_cif_InSchedulingCell_constraint_5 },
110                 0, 0, /* No default value */
111                 "cif-InSchedulingCell"
112                 },
113 };
114 static const ber_tlv_tag_t asn_DEF_other_tags_5[] = {
115         (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
116         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
117 };
118 static const asn_TYPE_tag2member_t asn_MAP_other_tag2el_5[] = {
119     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* schedulingCellId */
120     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cif-InSchedulingCell */
121 };
122 static asn_SEQUENCE_specifics_t asn_SPC_other_specs_5 = {
123         sizeof(struct CrossCarrierSchedulingConfig__schedulingCellInfo__other),
124         offsetof(struct CrossCarrierSchedulingConfig__schedulingCellInfo__other, _asn_ctx),
125         asn_MAP_other_tag2el_5,
126         2,      /* Count of tags in the map */
127         0, 0, 0,        /* Optional elements (not needed) */
128         -1,     /* First extension addition */
129 };
130 static /* Use -fall-defs-global to expose */
131 asn_TYPE_descriptor_t asn_DEF_other_5 = {
132         "other",
133         "other",
134         &asn_OP_SEQUENCE,
135         asn_DEF_other_tags_5,
136         sizeof(asn_DEF_other_tags_5)
137                 /sizeof(asn_DEF_other_tags_5[0]) - 1, /* 1 */
138         asn_DEF_other_tags_5,   /* Same as above */
139         sizeof(asn_DEF_other_tags_5)
140                 /sizeof(asn_DEF_other_tags_5[0]), /* 2 */
141         { 0, 0, SEQUENCE_constraint },
142         asn_MBR_other_5,
143         2,      /* Elements count */
144         &asn_SPC_other_specs_5  /* Additional specs */
145 };
146
147 static asn_TYPE_member_t asn_MBR_schedulingCellInfo_2[] = {
148         { ATF_POINTER, 0, offsetof(struct CrossCarrierSchedulingConfig__schedulingCellInfo, choice.own),
149                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
150                 0,
151                 &asn_DEF_own_3,
152                 0,
153                 { 0, 0, 0 },
154                 0, 0, /* No default value */
155                 "own"
156                 },
157         { ATF_POINTER, 0, offsetof(struct CrossCarrierSchedulingConfig__schedulingCellInfo, choice.other),
158                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
159                 0,
160                 &asn_DEF_other_5,
161                 0,
162                 { 0, 0, 0 },
163                 0, 0, /* No default value */
164                 "other"
165                 },
166 };
167 static const asn_TYPE_tag2member_t asn_MAP_schedulingCellInfo_tag2el_2[] = {
168     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* own */
169     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* other */
170 };
171 static asn_CHOICE_specifics_t asn_SPC_schedulingCellInfo_specs_2 = {
172         sizeof(struct CrossCarrierSchedulingConfig__schedulingCellInfo),
173         offsetof(struct CrossCarrierSchedulingConfig__schedulingCellInfo, _asn_ctx),
174         offsetof(struct CrossCarrierSchedulingConfig__schedulingCellInfo, present),
175         sizeof(((struct CrossCarrierSchedulingConfig__schedulingCellInfo *)0)->present),
176         asn_MAP_schedulingCellInfo_tag2el_2,
177         2,      /* Count of tags in the map */
178         0, 0,
179         -1      /* Extensions start */
180 };
181 static /* Use -fall-defs-global to expose */
182 asn_TYPE_descriptor_t asn_DEF_schedulingCellInfo_2 = {
183         "schedulingCellInfo",
184         "schedulingCellInfo",
185         &asn_OP_CHOICE,
186         0,      /* No effective tags (pointer) */
187         0,      /* No effective tags (count) */
188         0,      /* No tags (pointer) */
189         0,      /* No tags (count) */
190         { &asn_OER_type_schedulingCellInfo_constr_2, &asn_PER_type_schedulingCellInfo_constr_2, CHOICE_constraint },
191         asn_MBR_schedulingCellInfo_2,
192         2,      /* Elements count */
193         &asn_SPC_schedulingCellInfo_specs_2     /* Additional specs */
194 };
195
196 asn_TYPE_member_t asn_MBR_CrossCarrierSchedulingConfig_1[] = {
197         { ATF_NOFLAGS, 0, offsetof(struct CrossCarrierSchedulingConfig, schedulingCellInfo),
198                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
199                 +1,     /* EXPLICIT tag at current level */
200                 &asn_DEF_schedulingCellInfo_2,
201                 0,
202                 { 0, 0, 0 },
203                 0, 0, /* No default value */
204                 "schedulingCellInfo"
205                 },
206 };
207 static const ber_tlv_tag_t asn_DEF_CrossCarrierSchedulingConfig_tags_1[] = {
208         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
209 };
210 static const asn_TYPE_tag2member_t asn_MAP_CrossCarrierSchedulingConfig_tag2el_1[] = {
211     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* schedulingCellInfo */
212 };
213 asn_SEQUENCE_specifics_t asn_SPC_CrossCarrierSchedulingConfig_specs_1 = {
214         sizeof(struct CrossCarrierSchedulingConfig),
215         offsetof(struct CrossCarrierSchedulingConfig, _asn_ctx),
216         asn_MAP_CrossCarrierSchedulingConfig_tag2el_1,
217         1,      /* Count of tags in the map */
218         0, 0, 0,        /* Optional elements (not needed) */
219         1,      /* First extension addition */
220 };
221 asn_TYPE_descriptor_t asn_DEF_CrossCarrierSchedulingConfig = {
222         "CrossCarrierSchedulingConfig",
223         "CrossCarrierSchedulingConfig",
224         &asn_OP_SEQUENCE,
225         asn_DEF_CrossCarrierSchedulingConfig_tags_1,
226         sizeof(asn_DEF_CrossCarrierSchedulingConfig_tags_1)
227                 /sizeof(asn_DEF_CrossCarrierSchedulingConfig_tags_1[0]), /* 1 */
228         asn_DEF_CrossCarrierSchedulingConfig_tags_1,    /* Same as above */
229         sizeof(asn_DEF_CrossCarrierSchedulingConfig_tags_1)
230                 /sizeof(asn_DEF_CrossCarrierSchedulingConfig_tags_1[0]), /* 1 */
231         { 0, 0, SEQUENCE_constraint },
232         asn_MBR_CrossCarrierSchedulingConfig_1,
233         1,      /* Elements count */
234         &asn_SPC_CrossCarrierSchedulingConfig_specs_1   /* Additional specs */
235 };
236