Adding new comments for Oran in all files with licenses
[ric-plt/resource-status-manager.git] / RSM / 3rdparty / asn1codec / e2ap_engine / DynamicNAICSInformation.c
1 /*
2  * Copyright 2019 AT&T Intellectual Property
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 /*
18  * This source code is part of the near-RT RIC (RAN Intelligent Controller)
19  * platform project (RICP).
20  */
21
22
23
24 /*
25  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
26  * From ASN.1 module "X2AP-IEs"
27  *      found in "../../asnFiles/X2AP-IEs.asn"
28  *      `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.`
29  */
30
31 #include "DynamicNAICSInformation.h"
32
33 #include "ProtocolExtensionContainer.h"
34 static int
35 memb_transmissionModes_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
36                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
37         const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
38         size_t size;
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         if(st->size > 0) {
48                 /* Size in bits */
49                 size = 8 * st->size - (st->bits_unused & 0x07);
50         } else {
51                 size = 0;
52         }
53         
54         if((size == 8)) {
55                 /* Constraint check succeeded */
56                 return 0;
57         } else {
58                 ASN__CTFAIL(app_key, td, sptr,
59                         "%s: constraint failed (%s:%d)",
60                         td->name, __FILE__, __LINE__);
61                 return -1;
62         }
63 }
64
65 static int
66 memb_pB_information_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
67                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
68         long value;
69         
70         if(!sptr) {
71                 ASN__CTFAIL(app_key, td, sptr,
72                         "%s: value not given (%s:%d)",
73                         td->name, __FILE__, __LINE__);
74                 return -1;
75         }
76         
77         value = *(const long *)sptr;
78         
79         if((value >= 0 && value <= 3)) {
80                 /* Constraint check succeeded */
81                 return 0;
82         } else {
83                 ASN__CTFAIL(app_key, td, sptr,
84                         "%s: constraint failed (%s:%d)",
85                         td->name, __FILE__, __LINE__);
86                 return -1;
87         }
88 }
89
90 static int
91 memb_pA_list_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
92                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
93         size_t size;
94         
95         if(!sptr) {
96                 ASN__CTFAIL(app_key, td, sptr,
97                         "%s: value not given (%s:%d)",
98                         td->name, __FILE__, __LINE__);
99                 return -1;
100         }
101         
102         /* Determine the number of elements */
103         size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
104         
105         if((size <= 3)) {
106                 /* Perform validation of the inner elements */
107                 return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
108         } else {
109                 ASN__CTFAIL(app_key, td, sptr,
110                         "%s: constraint failed (%s:%d)",
111                         td->name, __FILE__, __LINE__);
112                 return -1;
113         }
114 }
115
116 static asn_per_constraints_t asn_PER_type_pA_list_constr_4 CC_NOTUSED = {
117         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
118         { APC_CONSTRAINED,       2,  2,  0,  3 }        /* (SIZE(0..3)) */,
119         0, 0    /* No PER value map */
120 };
121 static asn_per_constraints_t asn_PER_memb_transmissionModes_constr_2 CC_NOTUSED = {
122         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
123         { APC_CONSTRAINED,       0,  0,  8,  8 }        /* (SIZE(8..8)) */,
124         0, 0    /* No PER value map */
125 };
126 static asn_per_constraints_t asn_PER_memb_pB_information_constr_3 CC_NOTUSED = {
127         { APC_CONSTRAINED,       2,  2,  0,  3 }        /* (0..3) */,
128         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
129         0, 0    /* No PER value map */
130 };
131 static asn_per_constraints_t asn_PER_memb_pA_list_constr_4 CC_NOTUSED = {
132         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
133         { APC_CONSTRAINED,       2,  2,  0,  3 }        /* (SIZE(0..3)) */,
134         0, 0    /* No PER value map */
135 };
136 static asn_TYPE_member_t asn_MBR_pA_list_4[] = {
137         { ATF_POINTER, 0, 0,
138                 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
139                 0,
140                 &asn_DEF_PA_Values,
141                 0,
142                 { 0, 0, 0 },
143                 0, 0, /* No default value */
144                 ""
145                 },
146 };
147 static const ber_tlv_tag_t asn_DEF_pA_list_tags_4[] = {
148         (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
149         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
150 };
151 static asn_SET_OF_specifics_t asn_SPC_pA_list_specs_4 = {
152         sizeof(struct DynamicNAICSInformation__pA_list),
153         offsetof(struct DynamicNAICSInformation__pA_list, _asn_ctx),
154         1,      /* XER encoding is XMLValueList */
155 };
156 static /* Use -fall-defs-global to expose */
157 asn_TYPE_descriptor_t asn_DEF_pA_list_4 = {
158         "pA-list",
159         "pA-list",
160         &asn_OP_SEQUENCE_OF,
161         asn_DEF_pA_list_tags_4,
162         sizeof(asn_DEF_pA_list_tags_4)
163                 /sizeof(asn_DEF_pA_list_tags_4[0]) - 1, /* 1 */
164         asn_DEF_pA_list_tags_4, /* Same as above */
165         sizeof(asn_DEF_pA_list_tags_4)
166                 /sizeof(asn_DEF_pA_list_tags_4[0]), /* 2 */
167         { 0, &asn_PER_type_pA_list_constr_4, SEQUENCE_OF_constraint },
168         asn_MBR_pA_list_4,
169         1,      /* Single element */
170         &asn_SPC_pA_list_specs_4        /* Additional specs */
171 };
172
173 asn_TYPE_member_t asn_MBR_DynamicNAICSInformation_1[] = {
174         { ATF_POINTER, 2, offsetof(struct DynamicNAICSInformation, transmissionModes),
175                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
176                 -1,     /* IMPLICIT tag at current level */
177                 &asn_DEF_BIT_STRING,
178                 0,
179                 { 0, &asn_PER_memb_transmissionModes_constr_2,  memb_transmissionModes_constraint_1 },
180                 0, 0, /* No default value */
181                 "transmissionModes"
182                 },
183         { ATF_POINTER, 1, offsetof(struct DynamicNAICSInformation, pB_information),
184                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
185                 -1,     /* IMPLICIT tag at current level */
186                 &asn_DEF_NativeInteger,
187                 0,
188                 { 0, &asn_PER_memb_pB_information_constr_3,  memb_pB_information_constraint_1 },
189                 0, 0, /* No default value */
190                 "pB-information"
191                 },
192         { ATF_NOFLAGS, 0, offsetof(struct DynamicNAICSInformation, pA_list),
193                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
194                 0,
195                 &asn_DEF_pA_list_4,
196                 0,
197                 { 0, &asn_PER_memb_pA_list_constr_4,  memb_pA_list_constraint_1 },
198                 0, 0, /* No default value */
199                 "pA-list"
200                 },
201         { ATF_POINTER, 1, offsetof(struct DynamicNAICSInformation, iE_Extensions),
202                 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
203                 -1,     /* IMPLICIT tag at current level */
204                 &asn_DEF_ProtocolExtensionContainer_170P133,
205                 0,
206                 { 0, 0, 0 },
207                 0, 0, /* No default value */
208                 "iE-Extensions"
209                 },
210 };
211 static const int asn_MAP_DynamicNAICSInformation_oms_1[] = { 0, 1, 3 };
212 static const ber_tlv_tag_t asn_DEF_DynamicNAICSInformation_tags_1[] = {
213         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
214 };
215 static const asn_TYPE_tag2member_t asn_MAP_DynamicNAICSInformation_tag2el_1[] = {
216     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* transmissionModes */
217     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pB-information */
218     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* pA-list */
219     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
220 };
221 asn_SEQUENCE_specifics_t asn_SPC_DynamicNAICSInformation_specs_1 = {
222         sizeof(struct DynamicNAICSInformation),
223         offsetof(struct DynamicNAICSInformation, _asn_ctx),
224         asn_MAP_DynamicNAICSInformation_tag2el_1,
225         4,      /* Count of tags in the map */
226         asn_MAP_DynamicNAICSInformation_oms_1,  /* Optional members */
227         3, 0,   /* Root/Additions */
228         4,      /* First extension addition */
229 };
230 asn_TYPE_descriptor_t asn_DEF_DynamicNAICSInformation = {
231         "DynamicNAICSInformation",
232         "DynamicNAICSInformation",
233         &asn_OP_SEQUENCE,
234         asn_DEF_DynamicNAICSInformation_tags_1,
235         sizeof(asn_DEF_DynamicNAICSInformation_tags_1)
236                 /sizeof(asn_DEF_DynamicNAICSInformation_tags_1[0]), /* 1 */
237         asn_DEF_DynamicNAICSInformation_tags_1, /* Same as above */
238         sizeof(asn_DEF_DynamicNAICSInformation_tags_1)
239                 /sizeof(asn_DEF_DynamicNAICSInformation_tags_1[0]), /* 1 */
240         { 0, 0, SEQUENCE_constraint },
241         asn_MBR_DynamicNAICSInformation_1,
242         4,      /* Elements count */
243         &asn_SPC_DynamicNAICSInformation_specs_1        /* Additional specs */
244 };
245