diff --git a/ChangeLog b/ChangeLog index 04a332c3..11cfe205 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,8 @@ member names are invented on the fly). (Test case 87). * Generating enumeration tables for INTEGER types (Test case 88). * Generating enumeration tables for BIT STRING types (Test case 89). + * Conditional INTEGER/ENUMERATED representation: long vs. INTEGER_t + type is chosen based on PER visible constraints (Test case 90). 0.9.17: 2005-Aug-07 diff --git a/libasn1compiler/asn1c_C.c b/libasn1compiler/asn1c_C.c index f91da76f..d39018ee 100644 --- a/libasn1compiler/asn1c_C.c +++ b/libasn1compiler/asn1c_C.c @@ -218,29 +218,26 @@ asn1c_lang_C_type_BIT_STRING(arg_t *arg) { asn1p_expr_t *expr = arg->expr; asn1p_expr_t *v; int el_count = expr_elements_count(arg, expr); - int eidx = 0; if(el_count) { + int eidx = 0; REDIR(OT_DEPS); OUT("typedef enum "); out_name_chain(arg, 1); OUT(" {\n"); TQ_FOR(v, &(expr->members), next) { - switch(v->expr_type) { - case A1TC_UNIVERVAL: - OUT("\t"); - out_name_chain(arg, 0); - OUT("_%s", MKID(v->Identifier)); - OUT("\t= %" PRIdASN "%s\n", - v->value->value.v_integer, - (eidx+1 < el_count) ? "," : ""); - eidx++; - break; - default: + eidx++; + if(v->expr_type != A1TC_UNIVERVAL) { OUT("/* Unexpected BIT STRING element: %s */\n", v->Identifier); - break; + continue; } + OUT("\t"); + out_name_chain(arg, 0); + OUT("_%s", MKID(v->Identifier)); + OUT("\t= %" PRIdASN "%s\n", + v->value->value.v_integer, + (eidx < el_count) ? "," : ""); } OUT("} "); out_name_chain(arg, 0); diff --git a/libasn1compiler/asn1c_constraint.c b/libasn1compiler/asn1c_constraint.c index d75313d2..372730fc 100644 --- a/libasn1compiler/asn1c_constraint.c +++ b/libasn1compiler/asn1c_constraint.c @@ -62,6 +62,9 @@ asn1c_emit_constraint_checking_code(arg_t *arg) { switch(etype) { case ASN_BASIC_INTEGER: case ASN_BASIC_ENUMERATED: + if(asn1c_type_fits_long(arg, arg->expr) == FL_NOTFIT) + produce_st = 1; + break; case ASN_BASIC_REAL: if(!(arg->flags & A1C_USE_NATIVE_TYPES)) produce_st = 1; @@ -556,7 +559,7 @@ emit_value_determination_code(arg_t *arg, asn1p_expr_type_e etype, asn1cnst_rang switch(etype) { case ASN_BASIC_INTEGER: case ASN_BASIC_ENUMERATED: - if(arg->flags & A1C_USE_NATIVE_TYPES) { + if(asn1c_type_fits_long(arg, arg->expr) != FL_NOTFIT) { OUT("value = *(const long *)sptr;\n"); } else { if(r_value->el_count == 0 diff --git a/libasn1compiler/asn1c_misc.c b/libasn1compiler/asn1c_misc.c index 8c5bb628..bcf062f3 100644 --- a/libasn1compiler/asn1c_misc.c +++ b/libasn1compiler/asn1c_misc.c @@ -1,7 +1,8 @@ #include "asn1c_internal.h" #include "asn1c_misc.h" -#include +#include /* constraint groker from libasn1fix */ +#include /* other exportable stuff from libasn1fix */ /* * Checks that the given string is not a reserved C/C++ keyword. @@ -189,7 +190,9 @@ asn1c_type_name(arg_t *arg, asn1p_expr_t *expr, enum tnfmt _format) { case ASN_BASIC_INTEGER: case ASN_BASIC_ENUMERATED: case ASN_BASIC_REAL: - if((arg->flags & A1C_USE_NATIVE_TYPES)) { + if((expr->expr_type == ASN_BASIC_REAL + && (arg->flags & A1C_USE_NATIVE_TYPES)) + || asn1c_type_fits_long(arg, expr)) { switch(_format) { case TNF_CTYPE: case TNF_RSAFE: @@ -239,3 +242,84 @@ asn1c_type_name(arg_t *arg, asn1p_expr_t *expr, enum tnfmt _format) { return typename; } +/* + * Check whether the specified INTEGER or ENUMERATED type can be represented + * using the generic 'long' type. + */ +enum asn1c_fitslong_e +asn1c_type_fits_long(arg_t *arg, asn1p_expr_t *expr) { + asn1cnst_range_t *range = 0; + asn1cnst_edge_t left; + asn1cnst_edge_t right; + asn1p_expr_t *v; + +/* + * Since we don't know the sizeof(long) on the possible target platform + * which will be compiling the code generated by asn1c, let's play it + * simple: long's range is equal to or greater than int32_t. + */ +#define LEFTMIN INT32_MIN +#define RIGHTMAX INT32_MAX + + /* Descend to the terminal type */ + expr = asn1f_find_terminal_type_ex(arg->asn, expr); + if(expr == 0) return FL_NOTFIT; + + /* The "fits into long" operation is relevant only for integer types */ + switch(expr->expr_type) { + case ASN_BASIC_INTEGER: + case ASN_BASIC_ENUMERATED: + break; + default: + return FL_NOTFIT; + } + + /* + * First, evaluate the range of explicitly given identifiers. + */ + TQ_FOR(v, &(expr->members), next) { + if(v->expr_type != A1TC_UNIVERVAL) + continue; + if(v->value->value.v_integer < LEFTMIN + || v->value->value.v_integer > RIGHTMAX) + return FL_NOTFIT; + } + + /* + * Second, pull up the PER visible range of the INTEGER. + */ + if(expr->combined_constraints) + range = asn1constraint_compute_PER_range(expr->expr_type, + expr->combined_constraints, ACT_EL_RANGE, 0, 0, 0); + if(!range + || range->empty_constraint + || range->extensible + || range->incompatible + || range->not_PER_visible + ) { + asn1constraint_range_free(range); + return (arg->flags & A1C_USE_NATIVE_TYPES) + ? FL_FORCED : FL_NOTFIT; + } + + left = range->left; + right = range->right; + asn1constraint_range_free(range); + + /* If some fixed value is outside of target range, not fit */ + if(left.type == ARE_VALUE + && (left.value < LEFTMIN || left.value > RIGHTMAX)) + return FL_NOTFIT; + if(right.type == ARE_VALUE + && (right.value > RIGHTMAX || right.value < LEFTMIN)) + return FL_NOTFIT; + + /* If the range is open, fits only if -fnative-types is given */ + if(left.type != ARE_VALUE || right.type != ARE_VALUE) { + return (arg->flags & A1C_USE_NATIVE_TYPES) + ? FL_FORCED : FL_NOTFIT; + } + + return FL_FITSOK; +} + diff --git a/libasn1compiler/asn1c_misc.h b/libasn1compiler/asn1c_misc.h index eab75674..8da261df 100644 --- a/libasn1compiler/asn1c_misc.h +++ b/libasn1compiler/asn1c_misc.h @@ -24,4 +24,19 @@ enum tnfmt { }; char *asn1c_type_name(arg_t *arg, asn1p_expr_t *expr, enum tnfmt _format); +/* + * Check whether the specified INTEGER or ENUMERATED type can be represented + * using the generic 'long' type. + * Return values: + * FL_NOTFIT: No, it cannot be represented using long. + * FL_FITSOK: It can be represented using long. + * FL_FORCED: Probably can't, but -fnative-types is in force. + */ +enum asn1c_fitslong_e { + FL_NOTFIT, + FL_FITSOK, + FL_FORCED, +}; +enum asn1c_fitslong_e asn1c_type_fits_long(arg_t *arg, asn1p_expr_t *expr); + #endif /* _ASN1_COMPILER_MISC_H_ */ diff --git a/tests/89-bit-string-enum-OK.asn1 b/tests/89-bit-string-enum-OK.asn1 index a47a7296..615525ca 100644 --- a/tests/89-bit-string-enum-OK.asn1 +++ b/tests/89-bit-string-enum-OK.asn1 @@ -5,7 +5,7 @@ -- .spelio.software.asn1c.test (9363.1.5.1) -- .89 -ModuleIntegerEnumeration +ModuleBitStringEnumeration { iso org(3) dod(6) internet (1) private(4) enterprise(1) spelio(9363) software(1) asn1c(5) test(1) 89 } DEFINITIONS ::= diff --git a/tests/90-cond-int-type-OK.asn1 b/tests/90-cond-int-type-OK.asn1 new file mode 100644 index 00000000..e4745150 --- /dev/null +++ b/tests/90-cond-int-type-OK.asn1 @@ -0,0 +1,32 @@ + +-- OK: Everything is fine + +-- iso.org.dod.internet.private.enterprise (1.3.6.1.4.1) +-- .spelio.software.asn1c.test (9363.1.5.1) +-- .90 + +ModuleConditionalIntegerType + { iso org(3) dod(6) internet (1) private(4) enterprise(1) + spelio(9363) software(1) asn1c(5) test(1) 90 } +DEFINITIONS ::= +BEGIN + + CN-IntegerUnlimited ::= INTEGER + CN-IntegerMinMax ::= INTEGER (MIN..MAX) + CN-IntegerMinLow ::= INTEGER (MIN..1) + NO-IntegerMinHigh ::= INTEGER (MIN..5000000000) + NO-IntegerLowHigh ::= INTEGER (1..5000000000) + CN-IntegerLowMax ::= INTEGER (1..MAX) + NO-IntegerHighMax ::= INTEGER (5000000000..MAX) + NO-IntegerLowestMax ::= INTEGER (-5000000000..MAX) + NO-IntegerOutRange ::= INTEGER (5000000000..5000000001) + NO-IntegerOutValue ::= INTEGER (5000000000) + OK-IntegerInRange1 ::= INTEGER (-100..100) + OK-IntegerInRange2 ::= INTEGER (-100|100) + OK-IntegerInRange3 ::= INTEGER (-2147483648..2147483647) + OK-IntegerInRange4 ::= INTEGER (-2147483648|2147483647) + OK-IntegerInRange5 ::= INTEGER (-2147483648|2147483647,...) + CN-IntegerEnumerated1 ::= INTEGER { a(1), b(2) } + NO-IntegerEnumerated2 ::= INTEGER { a(1), b(5000000000) } + +END diff --git a/tests/90-cond-int-type-OK.asn1.-EFprint-constraints b/tests/90-cond-int-type-OK.asn1.-EFprint-constraints new file mode 100644 index 00000000..939a1734 --- /dev/null +++ b/tests/90-cond-int-type-OK.asn1.-EFprint-constraints @@ -0,0 +1,80 @@ +ModuleConditionalIntegerType { iso org(3) dod(6) internet(1) private(4) + enterprise(1) spelio(9363) software(1) asn1c(5) test(1) 90 } +DEFINITIONS ::= +BEGIN + +CN-IntegerUnlimited ::= INTEGER +-- Practical constraints (CN-IntegerUnlimited): (MIN..MAX) +-- PER-visible constraints (CN-IntegerUnlimited): (MIN..MAX) + +CN-IntegerMinMax ::= INTEGER (MIN..MAX) +-- Combined constraints: (MIN..MAX) +-- Practical constraints (CN-IntegerMinMax): (MIN..MAX) +-- PER-visible constraints (CN-IntegerMinMax): (MIN..MAX) + +CN-IntegerMinLow ::= INTEGER (MIN..1) +-- Combined constraints: (MIN..1) +-- Practical constraints (CN-IntegerMinLow): (MIN..1) +-- PER-visible constraints (CN-IntegerMinLow): (MIN..1) + +NO-IntegerMinHigh ::= INTEGER (MIN..5000000000) +-- Combined constraints: (MIN..5000000000) +-- Practical constraints (NO-IntegerMinHigh): (MIN..5000000000) +-- PER-visible constraints (NO-IntegerMinHigh): (MIN..5000000000) + +NO-IntegerLowHigh ::= INTEGER (1..5000000000) +-- Combined constraints: (1..5000000000) +-- Practical constraints (NO-IntegerLowHigh): (1..5000000000) +-- PER-visible constraints (NO-IntegerLowHigh): (1..5000000000) + +CN-IntegerLowMax ::= INTEGER (1..MAX) +-- Combined constraints: (1..MAX) +-- Practical constraints (CN-IntegerLowMax): (1..MAX) +-- PER-visible constraints (CN-IntegerLowMax): (1..MAX) + +NO-IntegerHighMax ::= INTEGER (5000000000..MAX) +-- Combined constraints: (5000000000..MAX) +-- Practical constraints (NO-IntegerHighMax): (5000000000..MAX) +-- PER-visible constraints (NO-IntegerHighMax): (5000000000..MAX) + +NO-IntegerLowestMax ::= INTEGER (-5000000000..MAX) +-- Combined constraints: (-5000000000..MAX) +-- Practical constraints (NO-IntegerLowestMax): (-5000000000..MAX) +-- PER-visible constraints (NO-IntegerLowestMax): (-5000000000..MAX) + +NO-IntegerOutRange ::= INTEGER (5000000000..5000000001) +-- Combined constraints: (5000000000..5000000001) +-- Practical constraints (NO-IntegerOutRange): (5000000000..5000000001) +-- PER-visible constraints (NO-IntegerOutRange): (5000000000..5000000001) + +NO-IntegerOutValue ::= INTEGER (5000000000) +-- Combined constraints: (5000000000) +-- Practical constraints (NO-IntegerOutValue): (5000000000) +-- PER-visible constraints (NO-IntegerOutValue): (5000000000) + +OK-IntegerInRange1 ::= INTEGER (-100..100) +-- Combined constraints: (-100..100) +-- Practical constraints (OK-IntegerInRange1): (-100..100) +-- PER-visible constraints (OK-IntegerInRange1): (-100..100) + +OK-IntegerInRange2 ::= INTEGER (-100 | 100) +-- Combined constraints: (-100 | 100) +-- Practical constraints (OK-IntegerInRange2): (-100 | 100) +-- PER-visible constraints (OK-IntegerInRange2): (-100 | 100) + +OK-IntegerInRange3 ::= INTEGER (-2147483648..2147483647) +-- Combined constraints: (-2147483648..2147483647) +-- Practical constraints (OK-IntegerInRange3): (-2147483648..2147483647) +-- PER-visible constraints (OK-IntegerInRange3): (-2147483648..2147483647) + +OK-IntegerInRange4 ::= INTEGER (-2147483648 | 2147483647) +-- Combined constraints: (-2147483648 | 2147483647) +-- Practical constraints (OK-IntegerInRange4): (-2147483648 | 2147483647) +-- PER-visible constraints (OK-IntegerInRange4): (-2147483648 | 2147483647) + +OK-IntegerInRange5 ::= INTEGER (-2147483648 | 2147483647,...) +-- Combined constraints: (-2147483648 | 2147483647,...) +-- Practical constraints (OK-IntegerInRange5): (-2147483648 | 2147483647,...) +-- PER-visible constraints (OK-IntegerInRange5): (-2147483648 | 2147483647,...) + +END diff --git a/tests/90-cond-int-type-OK.asn1.-P b/tests/90-cond-int-type-OK.asn1.-P new file mode 100644 index 00000000..4019fbac --- /dev/null +++ b/tests/90-cond-int-type-OK.asn1.-P @@ -0,0 +1,2083 @@ + +/*** <<< INCLUDES [CN-IntegerUnlimited] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [CN-IntegerUnlimited] >>> ***/ + +typedef INTEGER_t CN_IntegerUnlimited_t; + +/*** <<< FUNC-DECLS [CN-IntegerUnlimited] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_CN_IntegerUnlimited; +asn_struct_free_f CN_IntegerUnlimited_free; +asn_struct_print_f CN_IntegerUnlimited_print; +asn_constr_check_f CN_IntegerUnlimited_constraint; +ber_type_decoder_f CN_IntegerUnlimited_decode_ber; +der_type_encoder_f CN_IntegerUnlimited_encode_der; +xer_type_decoder_f CN_IntegerUnlimited_decode_xer; +xer_type_encoder_f CN_IntegerUnlimited_encode_xer; + +/*** <<< CODE [CN-IntegerUnlimited] >>> ***/ + +int +CN_IntegerUnlimited_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + /* Replace with underlying type checker */ + td->check_constraints = asn_DEF_INTEGER.check_constraints; + return td->check_constraints(td, sptr, app_errlog, app_key); +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static void +CN_IntegerUnlimited_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_INTEGER.free_struct; + td->print_struct = asn_DEF_INTEGER.print_struct; + td->ber_decoder = asn_DEF_INTEGER.ber_decoder; + td->der_encoder = asn_DEF_INTEGER.der_encoder; + td->xer_decoder = asn_DEF_INTEGER.xer_decoder; + td->xer_encoder = asn_DEF_INTEGER.xer_encoder; + td->elements = asn_DEF_INTEGER.elements; + td->elements_count = asn_DEF_INTEGER.elements_count; + td->specifics = asn_DEF_INTEGER.specifics; +} + +void +CN_IntegerUnlimited_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + CN_IntegerUnlimited_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +CN_IntegerUnlimited_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + CN_IntegerUnlimited_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +CN_IntegerUnlimited_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + CN_IntegerUnlimited_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +CN_IntegerUnlimited_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + CN_IntegerUnlimited_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +CN_IntegerUnlimited_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + CN_IntegerUnlimited_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +CN_IntegerUnlimited_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + CN_IntegerUnlimited_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [CN-IntegerUnlimited] >>> ***/ + +static ber_tlv_tag_t asn_DEF_CN_IntegerUnlimited_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CN_IntegerUnlimited = { + "CN-IntegerUnlimited", + "CN-IntegerUnlimited", + CN_IntegerUnlimited_free, + CN_IntegerUnlimited_print, + CN_IntegerUnlimited_constraint, + CN_IntegerUnlimited_decode_ber, + CN_IntegerUnlimited_encode_der, + CN_IntegerUnlimited_decode_xer, + CN_IntegerUnlimited_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_CN_IntegerUnlimited_1_tags, + sizeof(asn_DEF_CN_IntegerUnlimited_1_tags) + /sizeof(asn_DEF_CN_IntegerUnlimited_1_tags[0]), /* 1 */ + asn_DEF_CN_IntegerUnlimited_1_tags, /* Same as above */ + sizeof(asn_DEF_CN_IntegerUnlimited_1_tags) + /sizeof(asn_DEF_CN_IntegerUnlimited_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +/*** <<< INCLUDES [CN-IntegerMinMax] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [CN-IntegerMinMax] >>> ***/ + +typedef INTEGER_t CN_IntegerMinMax_t; + +/*** <<< FUNC-DECLS [CN-IntegerMinMax] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_CN_IntegerMinMax; +asn_struct_free_f CN_IntegerMinMax_free; +asn_struct_print_f CN_IntegerMinMax_print; +asn_constr_check_f CN_IntegerMinMax_constraint; +ber_type_decoder_f CN_IntegerMinMax_decode_ber; +der_type_encoder_f CN_IntegerMinMax_encode_der; +xer_type_decoder_f CN_IntegerMinMax_decode_xer; +xer_type_encoder_f CN_IntegerMinMax_encode_xer; + +/*** <<< CODE [CN-IntegerMinMax] >>> ***/ + +int +CN_IntegerMinMax_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + + if(!sptr) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + /* Replace with underlying type checker */ + td->check_constraints = asn_DEF_INTEGER.check_constraints; + return td->check_constraints(td, sptr, app_errlog, app_key); +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static void +CN_IntegerMinMax_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_INTEGER.free_struct; + td->print_struct = asn_DEF_INTEGER.print_struct; + td->ber_decoder = asn_DEF_INTEGER.ber_decoder; + td->der_encoder = asn_DEF_INTEGER.der_encoder; + td->xer_decoder = asn_DEF_INTEGER.xer_decoder; + td->xer_encoder = asn_DEF_INTEGER.xer_encoder; + td->elements = asn_DEF_INTEGER.elements; + td->elements_count = asn_DEF_INTEGER.elements_count; + td->specifics = asn_DEF_INTEGER.specifics; +} + +void +CN_IntegerMinMax_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + CN_IntegerMinMax_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +CN_IntegerMinMax_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + CN_IntegerMinMax_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +CN_IntegerMinMax_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + CN_IntegerMinMax_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +CN_IntegerMinMax_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + CN_IntegerMinMax_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +CN_IntegerMinMax_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + CN_IntegerMinMax_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +CN_IntegerMinMax_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + CN_IntegerMinMax_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [CN-IntegerMinMax] >>> ***/ + +static ber_tlv_tag_t asn_DEF_CN_IntegerMinMax_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CN_IntegerMinMax = { + "CN-IntegerMinMax", + "CN-IntegerMinMax", + CN_IntegerMinMax_free, + CN_IntegerMinMax_print, + CN_IntegerMinMax_constraint, + CN_IntegerMinMax_decode_ber, + CN_IntegerMinMax_encode_der, + CN_IntegerMinMax_decode_xer, + CN_IntegerMinMax_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_CN_IntegerMinMax_1_tags, + sizeof(asn_DEF_CN_IntegerMinMax_1_tags) + /sizeof(asn_DEF_CN_IntegerMinMax_1_tags[0]), /* 1 */ + asn_DEF_CN_IntegerMinMax_1_tags, /* Same as above */ + sizeof(asn_DEF_CN_IntegerMinMax_1_tags) + /sizeof(asn_DEF_CN_IntegerMinMax_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +/*** <<< INCLUDES [CN-IntegerMinLow] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [CN-IntegerMinLow] >>> ***/ + +typedef INTEGER_t CN_IntegerMinLow_t; + +/*** <<< FUNC-DECLS [CN-IntegerMinLow] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_CN_IntegerMinLow; +asn_struct_free_f CN_IntegerMinLow_free; +asn_struct_print_f CN_IntegerMinLow_print; +asn_constr_check_f CN_IntegerMinLow_constraint; +ber_type_decoder_f CN_IntegerMinLow_decode_ber; +der_type_encoder_f CN_IntegerMinLow_encode_der; +xer_type_decoder_f CN_IntegerMinLow_decode_xer; +xer_type_encoder_f CN_IntegerMinLow_encode_xer; + +/*** <<< CODE [CN-IntegerMinLow] >>> ***/ + +int +CN_IntegerMinLow_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value <= 1)) { + /* Constraint check succeeded */ + return 0; + } else { + _ASN_ERRLOG(app_errlog, app_key, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static void +CN_IntegerMinLow_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_INTEGER.free_struct; + td->print_struct = asn_DEF_INTEGER.print_struct; + td->ber_decoder = asn_DEF_INTEGER.ber_decoder; + td->der_encoder = asn_DEF_INTEGER.der_encoder; + td->xer_decoder = asn_DEF_INTEGER.xer_decoder; + td->xer_encoder = asn_DEF_INTEGER.xer_encoder; + td->elements = asn_DEF_INTEGER.elements; + td->elements_count = asn_DEF_INTEGER.elements_count; + td->specifics = asn_DEF_INTEGER.specifics; +} + +void +CN_IntegerMinLow_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + CN_IntegerMinLow_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +CN_IntegerMinLow_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + CN_IntegerMinLow_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +CN_IntegerMinLow_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + CN_IntegerMinLow_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +CN_IntegerMinLow_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + CN_IntegerMinLow_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +CN_IntegerMinLow_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + CN_IntegerMinLow_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +CN_IntegerMinLow_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + CN_IntegerMinLow_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [CN-IntegerMinLow] >>> ***/ + +static ber_tlv_tag_t asn_DEF_CN_IntegerMinLow_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CN_IntegerMinLow = { + "CN-IntegerMinLow", + "CN-IntegerMinLow", + CN_IntegerMinLow_free, + CN_IntegerMinLow_print, + CN_IntegerMinLow_constraint, + CN_IntegerMinLow_decode_ber, + CN_IntegerMinLow_encode_der, + CN_IntegerMinLow_decode_xer, + CN_IntegerMinLow_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_CN_IntegerMinLow_1_tags, + sizeof(asn_DEF_CN_IntegerMinLow_1_tags) + /sizeof(asn_DEF_CN_IntegerMinLow_1_tags[0]), /* 1 */ + asn_DEF_CN_IntegerMinLow_1_tags, /* Same as above */ + sizeof(asn_DEF_CN_IntegerMinLow_1_tags) + /sizeof(asn_DEF_CN_IntegerMinLow_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +/*** <<< INCLUDES [NO-IntegerMinHigh] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [NO-IntegerMinHigh] >>> ***/ + +typedef INTEGER_t NO_IntegerMinHigh_t; + +/*** <<< FUNC-DECLS [NO-IntegerMinHigh] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_NO_IntegerMinHigh; +asn_struct_free_f NO_IntegerMinHigh_free; +asn_struct_print_f NO_IntegerMinHigh_print; +asn_constr_check_f NO_IntegerMinHigh_constraint; +ber_type_decoder_f NO_IntegerMinHigh_decode_ber; +der_type_encoder_f NO_IntegerMinHigh_encode_der; +xer_type_decoder_f NO_IntegerMinHigh_decode_xer; +xer_type_encoder_f NO_IntegerMinHigh_encode_xer; + +/*** <<< CODE [NO-IntegerMinHigh] >>> ***/ + +int +NO_IntegerMinHigh_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value <= 5000000000)) { + /* Constraint check succeeded */ + return 0; + } else { + _ASN_ERRLOG(app_errlog, app_key, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static void +NO_IntegerMinHigh_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_INTEGER.free_struct; + td->print_struct = asn_DEF_INTEGER.print_struct; + td->ber_decoder = asn_DEF_INTEGER.ber_decoder; + td->der_encoder = asn_DEF_INTEGER.der_encoder; + td->xer_decoder = asn_DEF_INTEGER.xer_decoder; + td->xer_encoder = asn_DEF_INTEGER.xer_encoder; + td->elements = asn_DEF_INTEGER.elements; + td->elements_count = asn_DEF_INTEGER.elements_count; + td->specifics = asn_DEF_INTEGER.specifics; +} + +void +NO_IntegerMinHigh_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + NO_IntegerMinHigh_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +NO_IntegerMinHigh_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerMinHigh_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +NO_IntegerMinHigh_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + NO_IntegerMinHigh_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +NO_IntegerMinHigh_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerMinHigh_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +NO_IntegerMinHigh_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + NO_IntegerMinHigh_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +NO_IntegerMinHigh_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerMinHigh_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [NO-IntegerMinHigh] >>> ***/ + +static ber_tlv_tag_t asn_DEF_NO_IntegerMinHigh_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NO_IntegerMinHigh = { + "NO-IntegerMinHigh", + "NO-IntegerMinHigh", + NO_IntegerMinHigh_free, + NO_IntegerMinHigh_print, + NO_IntegerMinHigh_constraint, + NO_IntegerMinHigh_decode_ber, + NO_IntegerMinHigh_encode_der, + NO_IntegerMinHigh_decode_xer, + NO_IntegerMinHigh_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_NO_IntegerMinHigh_1_tags, + sizeof(asn_DEF_NO_IntegerMinHigh_1_tags) + /sizeof(asn_DEF_NO_IntegerMinHigh_1_tags[0]), /* 1 */ + asn_DEF_NO_IntegerMinHigh_1_tags, /* Same as above */ + sizeof(asn_DEF_NO_IntegerMinHigh_1_tags) + /sizeof(asn_DEF_NO_IntegerMinHigh_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +/*** <<< INCLUDES [NO-IntegerLowHigh] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [NO-IntegerLowHigh] >>> ***/ + +typedef INTEGER_t NO_IntegerLowHigh_t; + +/*** <<< FUNC-DECLS [NO-IntegerLowHigh] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_NO_IntegerLowHigh; +asn_struct_free_f NO_IntegerLowHigh_free; +asn_struct_print_f NO_IntegerLowHigh_print; +asn_constr_check_f NO_IntegerLowHigh_constraint; +ber_type_decoder_f NO_IntegerLowHigh_decode_ber; +der_type_encoder_f NO_IntegerLowHigh_encode_der; +xer_type_decoder_f NO_IntegerLowHigh_decode_xer; +xer_type_encoder_f NO_IntegerLowHigh_encode_xer; + +/*** <<< CODE [NO-IntegerLowHigh] >>> ***/ + +int +NO_IntegerLowHigh_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= 1 && value <= 5000000000)) { + /* Constraint check succeeded */ + return 0; + } else { + _ASN_ERRLOG(app_errlog, app_key, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static void +NO_IntegerLowHigh_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_INTEGER.free_struct; + td->print_struct = asn_DEF_INTEGER.print_struct; + td->ber_decoder = asn_DEF_INTEGER.ber_decoder; + td->der_encoder = asn_DEF_INTEGER.der_encoder; + td->xer_decoder = asn_DEF_INTEGER.xer_decoder; + td->xer_encoder = asn_DEF_INTEGER.xer_encoder; + td->elements = asn_DEF_INTEGER.elements; + td->elements_count = asn_DEF_INTEGER.elements_count; + td->specifics = asn_DEF_INTEGER.specifics; +} + +void +NO_IntegerLowHigh_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + NO_IntegerLowHigh_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +NO_IntegerLowHigh_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerLowHigh_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +NO_IntegerLowHigh_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + NO_IntegerLowHigh_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +NO_IntegerLowHigh_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerLowHigh_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +NO_IntegerLowHigh_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + NO_IntegerLowHigh_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +NO_IntegerLowHigh_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerLowHigh_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [NO-IntegerLowHigh] >>> ***/ + +static ber_tlv_tag_t asn_DEF_NO_IntegerLowHigh_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NO_IntegerLowHigh = { + "NO-IntegerLowHigh", + "NO-IntegerLowHigh", + NO_IntegerLowHigh_free, + NO_IntegerLowHigh_print, + NO_IntegerLowHigh_constraint, + NO_IntegerLowHigh_decode_ber, + NO_IntegerLowHigh_encode_der, + NO_IntegerLowHigh_decode_xer, + NO_IntegerLowHigh_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_NO_IntegerLowHigh_1_tags, + sizeof(asn_DEF_NO_IntegerLowHigh_1_tags) + /sizeof(asn_DEF_NO_IntegerLowHigh_1_tags[0]), /* 1 */ + asn_DEF_NO_IntegerLowHigh_1_tags, /* Same as above */ + sizeof(asn_DEF_NO_IntegerLowHigh_1_tags) + /sizeof(asn_DEF_NO_IntegerLowHigh_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +/*** <<< INCLUDES [CN-IntegerLowMax] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [CN-IntegerLowMax] >>> ***/ + +typedef INTEGER_t CN_IntegerLowMax_t; + +/*** <<< FUNC-DECLS [CN-IntegerLowMax] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_CN_IntegerLowMax; +asn_struct_free_f CN_IntegerLowMax_free; +asn_struct_print_f CN_IntegerLowMax_print; +asn_constr_check_f CN_IntegerLowMax_constraint; +ber_type_decoder_f CN_IntegerLowMax_decode_ber; +der_type_encoder_f CN_IntegerLowMax_encode_der; +xer_type_decoder_f CN_IntegerLowMax_decode_xer; +xer_type_encoder_f CN_IntegerLowMax_encode_xer; + +/*** <<< CODE [CN-IntegerLowMax] >>> ***/ + +int +CN_IntegerLowMax_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= 1)) { + /* Constraint check succeeded */ + return 0; + } else { + _ASN_ERRLOG(app_errlog, app_key, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static void +CN_IntegerLowMax_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_INTEGER.free_struct; + td->print_struct = asn_DEF_INTEGER.print_struct; + td->ber_decoder = asn_DEF_INTEGER.ber_decoder; + td->der_encoder = asn_DEF_INTEGER.der_encoder; + td->xer_decoder = asn_DEF_INTEGER.xer_decoder; + td->xer_encoder = asn_DEF_INTEGER.xer_encoder; + td->elements = asn_DEF_INTEGER.elements; + td->elements_count = asn_DEF_INTEGER.elements_count; + td->specifics = asn_DEF_INTEGER.specifics; +} + +void +CN_IntegerLowMax_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + CN_IntegerLowMax_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +CN_IntegerLowMax_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + CN_IntegerLowMax_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +CN_IntegerLowMax_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + CN_IntegerLowMax_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +CN_IntegerLowMax_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + CN_IntegerLowMax_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +CN_IntegerLowMax_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + CN_IntegerLowMax_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +CN_IntegerLowMax_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + CN_IntegerLowMax_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [CN-IntegerLowMax] >>> ***/ + +static ber_tlv_tag_t asn_DEF_CN_IntegerLowMax_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CN_IntegerLowMax = { + "CN-IntegerLowMax", + "CN-IntegerLowMax", + CN_IntegerLowMax_free, + CN_IntegerLowMax_print, + CN_IntegerLowMax_constraint, + CN_IntegerLowMax_decode_ber, + CN_IntegerLowMax_encode_der, + CN_IntegerLowMax_decode_xer, + CN_IntegerLowMax_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_CN_IntegerLowMax_1_tags, + sizeof(asn_DEF_CN_IntegerLowMax_1_tags) + /sizeof(asn_DEF_CN_IntegerLowMax_1_tags[0]), /* 1 */ + asn_DEF_CN_IntegerLowMax_1_tags, /* Same as above */ + sizeof(asn_DEF_CN_IntegerLowMax_1_tags) + /sizeof(asn_DEF_CN_IntegerLowMax_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +/*** <<< INCLUDES [NO-IntegerHighMax] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [NO-IntegerHighMax] >>> ***/ + +typedef INTEGER_t NO_IntegerHighMax_t; + +/*** <<< FUNC-DECLS [NO-IntegerHighMax] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_NO_IntegerHighMax; +asn_struct_free_f NO_IntegerHighMax_free; +asn_struct_print_f NO_IntegerHighMax_print; +asn_constr_check_f NO_IntegerHighMax_constraint; +ber_type_decoder_f NO_IntegerHighMax_decode_ber; +der_type_encoder_f NO_IntegerHighMax_encode_der; +xer_type_decoder_f NO_IntegerHighMax_decode_xer; +xer_type_encoder_f NO_IntegerHighMax_encode_xer; + +/*** <<< CODE [NO-IntegerHighMax] >>> ***/ + +int +NO_IntegerHighMax_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= 5000000000)) { + /* Constraint check succeeded */ + return 0; + } else { + _ASN_ERRLOG(app_errlog, app_key, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static void +NO_IntegerHighMax_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_INTEGER.free_struct; + td->print_struct = asn_DEF_INTEGER.print_struct; + td->ber_decoder = asn_DEF_INTEGER.ber_decoder; + td->der_encoder = asn_DEF_INTEGER.der_encoder; + td->xer_decoder = asn_DEF_INTEGER.xer_decoder; + td->xer_encoder = asn_DEF_INTEGER.xer_encoder; + td->elements = asn_DEF_INTEGER.elements; + td->elements_count = asn_DEF_INTEGER.elements_count; + td->specifics = asn_DEF_INTEGER.specifics; +} + +void +NO_IntegerHighMax_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + NO_IntegerHighMax_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +NO_IntegerHighMax_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerHighMax_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +NO_IntegerHighMax_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + NO_IntegerHighMax_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +NO_IntegerHighMax_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerHighMax_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +NO_IntegerHighMax_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + NO_IntegerHighMax_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +NO_IntegerHighMax_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerHighMax_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [NO-IntegerHighMax] >>> ***/ + +static ber_tlv_tag_t asn_DEF_NO_IntegerHighMax_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NO_IntegerHighMax = { + "NO-IntegerHighMax", + "NO-IntegerHighMax", + NO_IntegerHighMax_free, + NO_IntegerHighMax_print, + NO_IntegerHighMax_constraint, + NO_IntegerHighMax_decode_ber, + NO_IntegerHighMax_encode_der, + NO_IntegerHighMax_decode_xer, + NO_IntegerHighMax_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_NO_IntegerHighMax_1_tags, + sizeof(asn_DEF_NO_IntegerHighMax_1_tags) + /sizeof(asn_DEF_NO_IntegerHighMax_1_tags[0]), /* 1 */ + asn_DEF_NO_IntegerHighMax_1_tags, /* Same as above */ + sizeof(asn_DEF_NO_IntegerHighMax_1_tags) + /sizeof(asn_DEF_NO_IntegerHighMax_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +/*** <<< INCLUDES [NO-IntegerLowestMax] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [NO-IntegerLowestMax] >>> ***/ + +typedef INTEGER_t NO_IntegerLowestMax_t; + +/*** <<< FUNC-DECLS [NO-IntegerLowestMax] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_NO_IntegerLowestMax; +asn_struct_free_f NO_IntegerLowestMax_free; +asn_struct_print_f NO_IntegerLowestMax_print; +asn_constr_check_f NO_IntegerLowestMax_constraint; +ber_type_decoder_f NO_IntegerLowestMax_decode_ber; +der_type_encoder_f NO_IntegerLowestMax_encode_der; +xer_type_decoder_f NO_IntegerLowestMax_decode_xer; +xer_type_encoder_f NO_IntegerLowestMax_encode_xer; + +/*** <<< CODE [NO-IntegerLowestMax] >>> ***/ + +int +NO_IntegerLowestMax_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= -5000000000)) { + /* Constraint check succeeded */ + return 0; + } else { + _ASN_ERRLOG(app_errlog, app_key, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static void +NO_IntegerLowestMax_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_INTEGER.free_struct; + td->print_struct = asn_DEF_INTEGER.print_struct; + td->ber_decoder = asn_DEF_INTEGER.ber_decoder; + td->der_encoder = asn_DEF_INTEGER.der_encoder; + td->xer_decoder = asn_DEF_INTEGER.xer_decoder; + td->xer_encoder = asn_DEF_INTEGER.xer_encoder; + td->elements = asn_DEF_INTEGER.elements; + td->elements_count = asn_DEF_INTEGER.elements_count; + td->specifics = asn_DEF_INTEGER.specifics; +} + +void +NO_IntegerLowestMax_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + NO_IntegerLowestMax_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +NO_IntegerLowestMax_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerLowestMax_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +NO_IntegerLowestMax_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + NO_IntegerLowestMax_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +NO_IntegerLowestMax_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerLowestMax_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +NO_IntegerLowestMax_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + NO_IntegerLowestMax_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +NO_IntegerLowestMax_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerLowestMax_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [NO-IntegerLowestMax] >>> ***/ + +static ber_tlv_tag_t asn_DEF_NO_IntegerLowestMax_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NO_IntegerLowestMax = { + "NO-IntegerLowestMax", + "NO-IntegerLowestMax", + NO_IntegerLowestMax_free, + NO_IntegerLowestMax_print, + NO_IntegerLowestMax_constraint, + NO_IntegerLowestMax_decode_ber, + NO_IntegerLowestMax_encode_der, + NO_IntegerLowestMax_decode_xer, + NO_IntegerLowestMax_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_NO_IntegerLowestMax_1_tags, + sizeof(asn_DEF_NO_IntegerLowestMax_1_tags) + /sizeof(asn_DEF_NO_IntegerLowestMax_1_tags[0]), /* 1 */ + asn_DEF_NO_IntegerLowestMax_1_tags, /* Same as above */ + sizeof(asn_DEF_NO_IntegerLowestMax_1_tags) + /sizeof(asn_DEF_NO_IntegerLowestMax_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +/*** <<< INCLUDES [NO-IntegerOutRange] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [NO-IntegerOutRange] >>> ***/ + +typedef INTEGER_t NO_IntegerOutRange_t; + +/*** <<< FUNC-DECLS [NO-IntegerOutRange] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_NO_IntegerOutRange; +asn_struct_free_f NO_IntegerOutRange_free; +asn_struct_print_f NO_IntegerOutRange_print; +asn_constr_check_f NO_IntegerOutRange_constraint; +ber_type_decoder_f NO_IntegerOutRange_decode_ber; +der_type_encoder_f NO_IntegerOutRange_encode_der; +xer_type_decoder_f NO_IntegerOutRange_decode_xer; +xer_type_encoder_f NO_IntegerOutRange_encode_xer; + +/*** <<< CODE [NO-IntegerOutRange] >>> ***/ + +int +NO_IntegerOutRange_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= 5000000000 && value <= 5000000001)) { + /* Constraint check succeeded */ + return 0; + } else { + _ASN_ERRLOG(app_errlog, app_key, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static void +NO_IntegerOutRange_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_INTEGER.free_struct; + td->print_struct = asn_DEF_INTEGER.print_struct; + td->ber_decoder = asn_DEF_INTEGER.ber_decoder; + td->der_encoder = asn_DEF_INTEGER.der_encoder; + td->xer_decoder = asn_DEF_INTEGER.xer_decoder; + td->xer_encoder = asn_DEF_INTEGER.xer_encoder; + td->elements = asn_DEF_INTEGER.elements; + td->elements_count = asn_DEF_INTEGER.elements_count; + td->specifics = asn_DEF_INTEGER.specifics; +} + +void +NO_IntegerOutRange_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + NO_IntegerOutRange_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +NO_IntegerOutRange_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerOutRange_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +NO_IntegerOutRange_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + NO_IntegerOutRange_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +NO_IntegerOutRange_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerOutRange_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +NO_IntegerOutRange_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + NO_IntegerOutRange_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +NO_IntegerOutRange_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerOutRange_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [NO-IntegerOutRange] >>> ***/ + +static ber_tlv_tag_t asn_DEF_NO_IntegerOutRange_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NO_IntegerOutRange = { + "NO-IntegerOutRange", + "NO-IntegerOutRange", + NO_IntegerOutRange_free, + NO_IntegerOutRange_print, + NO_IntegerOutRange_constraint, + NO_IntegerOutRange_decode_ber, + NO_IntegerOutRange_encode_der, + NO_IntegerOutRange_decode_xer, + NO_IntegerOutRange_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_NO_IntegerOutRange_1_tags, + sizeof(asn_DEF_NO_IntegerOutRange_1_tags) + /sizeof(asn_DEF_NO_IntegerOutRange_1_tags[0]), /* 1 */ + asn_DEF_NO_IntegerOutRange_1_tags, /* Same as above */ + sizeof(asn_DEF_NO_IntegerOutRange_1_tags) + /sizeof(asn_DEF_NO_IntegerOutRange_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +/*** <<< INCLUDES [NO-IntegerOutValue] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [NO-IntegerOutValue] >>> ***/ + +typedef INTEGER_t NO_IntegerOutValue_t; + +/*** <<< FUNC-DECLS [NO-IntegerOutValue] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_NO_IntegerOutValue; +asn_struct_free_f NO_IntegerOutValue_free; +asn_struct_print_f NO_IntegerOutValue_print; +asn_constr_check_f NO_IntegerOutValue_constraint; +ber_type_decoder_f NO_IntegerOutValue_decode_ber; +der_type_encoder_f NO_IntegerOutValue_encode_der; +xer_type_decoder_f NO_IntegerOutValue_decode_xer; +xer_type_encoder_f NO_IntegerOutValue_encode_xer; + +/*** <<< CODE [NO-IntegerOutValue] >>> ***/ + +int +NO_IntegerOutValue_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value == 5000000000)) { + /* Constraint check succeeded */ + return 0; + } else { + _ASN_ERRLOG(app_errlog, app_key, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static void +NO_IntegerOutValue_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_INTEGER.free_struct; + td->print_struct = asn_DEF_INTEGER.print_struct; + td->ber_decoder = asn_DEF_INTEGER.ber_decoder; + td->der_encoder = asn_DEF_INTEGER.der_encoder; + td->xer_decoder = asn_DEF_INTEGER.xer_decoder; + td->xer_encoder = asn_DEF_INTEGER.xer_encoder; + td->elements = asn_DEF_INTEGER.elements; + td->elements_count = asn_DEF_INTEGER.elements_count; + td->specifics = asn_DEF_INTEGER.specifics; +} + +void +NO_IntegerOutValue_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + NO_IntegerOutValue_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +NO_IntegerOutValue_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerOutValue_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +NO_IntegerOutValue_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + NO_IntegerOutValue_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +NO_IntegerOutValue_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerOutValue_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +NO_IntegerOutValue_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + NO_IntegerOutValue_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +NO_IntegerOutValue_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerOutValue_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [NO-IntegerOutValue] >>> ***/ + +static ber_tlv_tag_t asn_DEF_NO_IntegerOutValue_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NO_IntegerOutValue = { + "NO-IntegerOutValue", + "NO-IntegerOutValue", + NO_IntegerOutValue_free, + NO_IntegerOutValue_print, + NO_IntegerOutValue_constraint, + NO_IntegerOutValue_decode_ber, + NO_IntegerOutValue_encode_der, + NO_IntegerOutValue_decode_xer, + NO_IntegerOutValue_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_NO_IntegerOutValue_1_tags, + sizeof(asn_DEF_NO_IntegerOutValue_1_tags) + /sizeof(asn_DEF_NO_IntegerOutValue_1_tags[0]), /* 1 */ + asn_DEF_NO_IntegerOutValue_1_tags, /* Same as above */ + sizeof(asn_DEF_NO_IntegerOutValue_1_tags) + /sizeof(asn_DEF_NO_IntegerOutValue_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +/*** <<< INCLUDES [OK-IntegerInRange1] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [OK-IntegerInRange1] >>> ***/ + +typedef INTEGER_t OK_IntegerInRange1_t; + +/*** <<< FUNC-DECLS [OK-IntegerInRange1] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_OK_IntegerInRange1; +asn_struct_free_f OK_IntegerInRange1_free; +asn_struct_print_f OK_IntegerInRange1_print; +asn_constr_check_f OK_IntegerInRange1_constraint; +ber_type_decoder_f OK_IntegerInRange1_decode_ber; +der_type_encoder_f OK_IntegerInRange1_encode_der; +xer_type_decoder_f OK_IntegerInRange1_decode_xer; +xer_type_encoder_f OK_IntegerInRange1_encode_xer; + +/*** <<< CODE [OK-IntegerInRange1] >>> ***/ + +int +OK_IntegerInRange1_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= -100 && value <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + _ASN_ERRLOG(app_errlog, app_key, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static void +OK_IntegerInRange1_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_INTEGER.free_struct; + td->print_struct = asn_DEF_INTEGER.print_struct; + td->ber_decoder = asn_DEF_INTEGER.ber_decoder; + td->der_encoder = asn_DEF_INTEGER.der_encoder; + td->xer_decoder = asn_DEF_INTEGER.xer_decoder; + td->xer_encoder = asn_DEF_INTEGER.xer_encoder; + td->elements = asn_DEF_INTEGER.elements; + td->elements_count = asn_DEF_INTEGER.elements_count; + td->specifics = asn_DEF_INTEGER.specifics; +} + +void +OK_IntegerInRange1_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + OK_IntegerInRange1_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +OK_IntegerInRange1_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange1_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +OK_IntegerInRange1_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + OK_IntegerInRange1_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +OK_IntegerInRange1_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange1_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +OK_IntegerInRange1_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + OK_IntegerInRange1_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +OK_IntegerInRange1_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange1_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [OK-IntegerInRange1] >>> ***/ + +static ber_tlv_tag_t asn_DEF_OK_IntegerInRange1_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_OK_IntegerInRange1 = { + "OK-IntegerInRange1", + "OK-IntegerInRange1", + OK_IntegerInRange1_free, + OK_IntegerInRange1_print, + OK_IntegerInRange1_constraint, + OK_IntegerInRange1_decode_ber, + OK_IntegerInRange1_encode_der, + OK_IntegerInRange1_decode_xer, + OK_IntegerInRange1_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_OK_IntegerInRange1_1_tags, + sizeof(asn_DEF_OK_IntegerInRange1_1_tags) + /sizeof(asn_DEF_OK_IntegerInRange1_1_tags[0]), /* 1 */ + asn_DEF_OK_IntegerInRange1_1_tags, /* Same as above */ + sizeof(asn_DEF_OK_IntegerInRange1_1_tags) + /sizeof(asn_DEF_OK_IntegerInRange1_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +/*** <<< INCLUDES [OK-IntegerInRange2] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [OK-IntegerInRange2] >>> ***/ + +typedef INTEGER_t OK_IntegerInRange2_t; + +/*** <<< FUNC-DECLS [OK-IntegerInRange2] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_OK_IntegerInRange2; +asn_struct_free_f OK_IntegerInRange2_free; +asn_struct_print_f OK_IntegerInRange2_print; +asn_constr_check_f OK_IntegerInRange2_constraint; +ber_type_decoder_f OK_IntegerInRange2_decode_ber; +der_type_encoder_f OK_IntegerInRange2_encode_der; +xer_type_decoder_f OK_IntegerInRange2_decode_xer; +xer_type_encoder_f OK_IntegerInRange2_encode_xer; + +/*** <<< CODE [OK-IntegerInRange2] >>> ***/ + +int +OK_IntegerInRange2_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(((value == -100) || (value == 100))) { + /* Constraint check succeeded */ + return 0; + } else { + _ASN_ERRLOG(app_errlog, app_key, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static void +OK_IntegerInRange2_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_INTEGER.free_struct; + td->print_struct = asn_DEF_INTEGER.print_struct; + td->ber_decoder = asn_DEF_INTEGER.ber_decoder; + td->der_encoder = asn_DEF_INTEGER.der_encoder; + td->xer_decoder = asn_DEF_INTEGER.xer_decoder; + td->xer_encoder = asn_DEF_INTEGER.xer_encoder; + td->elements = asn_DEF_INTEGER.elements; + td->elements_count = asn_DEF_INTEGER.elements_count; + td->specifics = asn_DEF_INTEGER.specifics; +} + +void +OK_IntegerInRange2_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + OK_IntegerInRange2_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +OK_IntegerInRange2_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange2_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +OK_IntegerInRange2_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + OK_IntegerInRange2_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +OK_IntegerInRange2_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange2_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +OK_IntegerInRange2_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + OK_IntegerInRange2_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +OK_IntegerInRange2_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange2_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [OK-IntegerInRange2] >>> ***/ + +static ber_tlv_tag_t asn_DEF_OK_IntegerInRange2_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_OK_IntegerInRange2 = { + "OK-IntegerInRange2", + "OK-IntegerInRange2", + OK_IntegerInRange2_free, + OK_IntegerInRange2_print, + OK_IntegerInRange2_constraint, + OK_IntegerInRange2_decode_ber, + OK_IntegerInRange2_encode_der, + OK_IntegerInRange2_decode_xer, + OK_IntegerInRange2_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_OK_IntegerInRange2_1_tags, + sizeof(asn_DEF_OK_IntegerInRange2_1_tags) + /sizeof(asn_DEF_OK_IntegerInRange2_1_tags[0]), /* 1 */ + asn_DEF_OK_IntegerInRange2_1_tags, /* Same as above */ + sizeof(asn_DEF_OK_IntegerInRange2_1_tags) + /sizeof(asn_DEF_OK_IntegerInRange2_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +/*** <<< INCLUDES [OK-IntegerInRange3] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [OK-IntegerInRange3] >>> ***/ + +typedef INTEGER_t OK_IntegerInRange3_t; + +/*** <<< FUNC-DECLS [OK-IntegerInRange3] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_OK_IntegerInRange3; +asn_struct_free_f OK_IntegerInRange3_free; +asn_struct_print_f OK_IntegerInRange3_print; +asn_constr_check_f OK_IntegerInRange3_constraint; +ber_type_decoder_f OK_IntegerInRange3_decode_ber; +der_type_encoder_f OK_IntegerInRange3_encode_der; +xer_type_decoder_f OK_IntegerInRange3_decode_xer; +xer_type_encoder_f OK_IntegerInRange3_encode_xer; + +/*** <<< CODE [OK-IntegerInRange3] >>> ***/ + +int +OK_IntegerInRange3_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= -2147483648 && value <= 2147483647)) { + /* Constraint check succeeded */ + return 0; + } else { + _ASN_ERRLOG(app_errlog, app_key, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static void +OK_IntegerInRange3_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_INTEGER.free_struct; + td->print_struct = asn_DEF_INTEGER.print_struct; + td->ber_decoder = asn_DEF_INTEGER.ber_decoder; + td->der_encoder = asn_DEF_INTEGER.der_encoder; + td->xer_decoder = asn_DEF_INTEGER.xer_decoder; + td->xer_encoder = asn_DEF_INTEGER.xer_encoder; + td->elements = asn_DEF_INTEGER.elements; + td->elements_count = asn_DEF_INTEGER.elements_count; + td->specifics = asn_DEF_INTEGER.specifics; +} + +void +OK_IntegerInRange3_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + OK_IntegerInRange3_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +OK_IntegerInRange3_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange3_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +OK_IntegerInRange3_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + OK_IntegerInRange3_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +OK_IntegerInRange3_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange3_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +OK_IntegerInRange3_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + OK_IntegerInRange3_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +OK_IntegerInRange3_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange3_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [OK-IntegerInRange3] >>> ***/ + +static ber_tlv_tag_t asn_DEF_OK_IntegerInRange3_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_OK_IntegerInRange3 = { + "OK-IntegerInRange3", + "OK-IntegerInRange3", + OK_IntegerInRange3_free, + OK_IntegerInRange3_print, + OK_IntegerInRange3_constraint, + OK_IntegerInRange3_decode_ber, + OK_IntegerInRange3_encode_der, + OK_IntegerInRange3_decode_xer, + OK_IntegerInRange3_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_OK_IntegerInRange3_1_tags, + sizeof(asn_DEF_OK_IntegerInRange3_1_tags) + /sizeof(asn_DEF_OK_IntegerInRange3_1_tags[0]), /* 1 */ + asn_DEF_OK_IntegerInRange3_1_tags, /* Same as above */ + sizeof(asn_DEF_OK_IntegerInRange3_1_tags) + /sizeof(asn_DEF_OK_IntegerInRange3_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +/*** <<< INCLUDES [OK-IntegerInRange4] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [OK-IntegerInRange4] >>> ***/ + +typedef INTEGER_t OK_IntegerInRange4_t; + +/*** <<< FUNC-DECLS [OK-IntegerInRange4] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_OK_IntegerInRange4; +asn_struct_free_f OK_IntegerInRange4_free; +asn_struct_print_f OK_IntegerInRange4_print; +asn_constr_check_f OK_IntegerInRange4_constraint; +ber_type_decoder_f OK_IntegerInRange4_decode_ber; +der_type_encoder_f OK_IntegerInRange4_encode_der; +xer_type_decoder_f OK_IntegerInRange4_decode_xer; +xer_type_encoder_f OK_IntegerInRange4_encode_xer; + +/*** <<< CODE [OK-IntegerInRange4] >>> ***/ + +int +OK_IntegerInRange4_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(((value == -2147483648) || (value == 2147483647))) { + /* Constraint check succeeded */ + return 0; + } else { + _ASN_ERRLOG(app_errlog, app_key, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static void +OK_IntegerInRange4_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_INTEGER.free_struct; + td->print_struct = asn_DEF_INTEGER.print_struct; + td->ber_decoder = asn_DEF_INTEGER.ber_decoder; + td->der_encoder = asn_DEF_INTEGER.der_encoder; + td->xer_decoder = asn_DEF_INTEGER.xer_decoder; + td->xer_encoder = asn_DEF_INTEGER.xer_encoder; + td->elements = asn_DEF_INTEGER.elements; + td->elements_count = asn_DEF_INTEGER.elements_count; + td->specifics = asn_DEF_INTEGER.specifics; +} + +void +OK_IntegerInRange4_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + OK_IntegerInRange4_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +OK_IntegerInRange4_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange4_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +OK_IntegerInRange4_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + OK_IntegerInRange4_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +OK_IntegerInRange4_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange4_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +OK_IntegerInRange4_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + OK_IntegerInRange4_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +OK_IntegerInRange4_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange4_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [OK-IntegerInRange4] >>> ***/ + +static ber_tlv_tag_t asn_DEF_OK_IntegerInRange4_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_OK_IntegerInRange4 = { + "OK-IntegerInRange4", + "OK-IntegerInRange4", + OK_IntegerInRange4_free, + OK_IntegerInRange4_print, + OK_IntegerInRange4_constraint, + OK_IntegerInRange4_decode_ber, + OK_IntegerInRange4_encode_der, + OK_IntegerInRange4_decode_xer, + OK_IntegerInRange4_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_OK_IntegerInRange4_1_tags, + sizeof(asn_DEF_OK_IntegerInRange4_1_tags) + /sizeof(asn_DEF_OK_IntegerInRange4_1_tags[0]), /* 1 */ + asn_DEF_OK_IntegerInRange4_1_tags, /* Same as above */ + sizeof(asn_DEF_OK_IntegerInRange4_1_tags) + /sizeof(asn_DEF_OK_IntegerInRange4_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +/*** <<< INCLUDES [OK-IntegerInRange5] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [OK-IntegerInRange5] >>> ***/ + +typedef INTEGER_t OK_IntegerInRange5_t; + +/*** <<< FUNC-DECLS [OK-IntegerInRange5] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_OK_IntegerInRange5; +asn_struct_free_f OK_IntegerInRange5_free; +asn_struct_print_f OK_IntegerInRange5_print; +asn_constr_check_f OK_IntegerInRange5_constraint; +ber_type_decoder_f OK_IntegerInRange5_decode_ber; +der_type_encoder_f OK_IntegerInRange5_encode_der; +xer_type_decoder_f OK_IntegerInRange5_decode_xer; +xer_type_encoder_f OK_IntegerInRange5_encode_xer; + +/*** <<< CODE [OK-IntegerInRange5] >>> ***/ + +int +OK_IntegerInRange5_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(((value == -2147483648) || (value == 2147483647))) { + /* Constraint check succeeded */ + return 0; + } else { + _ASN_ERRLOG(app_errlog, app_key, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static void +OK_IntegerInRange5_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_INTEGER.free_struct; + td->print_struct = asn_DEF_INTEGER.print_struct; + td->ber_decoder = asn_DEF_INTEGER.ber_decoder; + td->der_encoder = asn_DEF_INTEGER.der_encoder; + td->xer_decoder = asn_DEF_INTEGER.xer_decoder; + td->xer_encoder = asn_DEF_INTEGER.xer_encoder; + td->elements = asn_DEF_INTEGER.elements; + td->elements_count = asn_DEF_INTEGER.elements_count; + td->specifics = asn_DEF_INTEGER.specifics; +} + +void +OK_IntegerInRange5_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + OK_IntegerInRange5_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +OK_IntegerInRange5_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange5_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +OK_IntegerInRange5_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + OK_IntegerInRange5_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +OK_IntegerInRange5_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange5_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +OK_IntegerInRange5_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + OK_IntegerInRange5_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +OK_IntegerInRange5_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange5_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [OK-IntegerInRange5] >>> ***/ + +static ber_tlv_tag_t asn_DEF_OK_IntegerInRange5_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_OK_IntegerInRange5 = { + "OK-IntegerInRange5", + "OK-IntegerInRange5", + OK_IntegerInRange5_free, + OK_IntegerInRange5_print, + OK_IntegerInRange5_constraint, + OK_IntegerInRange5_decode_ber, + OK_IntegerInRange5_encode_der, + OK_IntegerInRange5_decode_xer, + OK_IntegerInRange5_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_OK_IntegerInRange5_1_tags, + sizeof(asn_DEF_OK_IntegerInRange5_1_tags) + /sizeof(asn_DEF_OK_IntegerInRange5_1_tags[0]), /* 1 */ + asn_DEF_OK_IntegerInRange5_1_tags, /* Same as above */ + sizeof(asn_DEF_OK_IntegerInRange5_1_tags) + /sizeof(asn_DEF_OK_IntegerInRange5_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/tests/90-cond-int-type-OK.asn1.-Pfnative-types b/tests/90-cond-int-type-OK.asn1.-Pfnative-types new file mode 100644 index 00000000..7aebc66c --- /dev/null +++ b/tests/90-cond-int-type-OK.asn1.-Pfnative-types @@ -0,0 +1,2082 @@ + +/*** <<< INCLUDES [CN-IntegerUnlimited] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [CN-IntegerUnlimited] >>> ***/ + +typedef long CN_IntegerUnlimited_t; + +/*** <<< FUNC-DECLS [CN-IntegerUnlimited] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_CN_IntegerUnlimited; +asn_struct_free_f CN_IntegerUnlimited_free; +asn_struct_print_f CN_IntegerUnlimited_print; +asn_constr_check_f CN_IntegerUnlimited_constraint; +ber_type_decoder_f CN_IntegerUnlimited_decode_ber; +der_type_encoder_f CN_IntegerUnlimited_encode_der; +xer_type_decoder_f CN_IntegerUnlimited_decode_xer; +xer_type_encoder_f CN_IntegerUnlimited_encode_xer; + +/*** <<< CODE [CN-IntegerUnlimited] >>> ***/ + +int +CN_IntegerUnlimited_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + /* Replace with underlying type checker */ + td->check_constraints = asn_DEF_NativeInteger.check_constraints; + return td->check_constraints(td, sptr, app_errlog, app_key); +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static void +CN_IntegerUnlimited_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_NativeInteger.free_struct; + td->print_struct = asn_DEF_NativeInteger.print_struct; + td->ber_decoder = asn_DEF_NativeInteger.ber_decoder; + td->der_encoder = asn_DEF_NativeInteger.der_encoder; + td->xer_decoder = asn_DEF_NativeInteger.xer_decoder; + td->xer_encoder = asn_DEF_NativeInteger.xer_encoder; + td->elements = asn_DEF_NativeInteger.elements; + td->elements_count = asn_DEF_NativeInteger.elements_count; + td->specifics = asn_DEF_NativeInteger.specifics; +} + +void +CN_IntegerUnlimited_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + CN_IntegerUnlimited_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +CN_IntegerUnlimited_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + CN_IntegerUnlimited_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +CN_IntegerUnlimited_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + CN_IntegerUnlimited_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +CN_IntegerUnlimited_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + CN_IntegerUnlimited_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +CN_IntegerUnlimited_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + CN_IntegerUnlimited_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +CN_IntegerUnlimited_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + CN_IntegerUnlimited_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [CN-IntegerUnlimited] >>> ***/ + +static ber_tlv_tag_t asn_DEF_CN_IntegerUnlimited_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CN_IntegerUnlimited = { + "CN-IntegerUnlimited", + "CN-IntegerUnlimited", + CN_IntegerUnlimited_free, + CN_IntegerUnlimited_print, + CN_IntegerUnlimited_constraint, + CN_IntegerUnlimited_decode_ber, + CN_IntegerUnlimited_encode_der, + CN_IntegerUnlimited_decode_xer, + CN_IntegerUnlimited_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_CN_IntegerUnlimited_1_tags, + sizeof(asn_DEF_CN_IntegerUnlimited_1_tags) + /sizeof(asn_DEF_CN_IntegerUnlimited_1_tags[0]), /* 1 */ + asn_DEF_CN_IntegerUnlimited_1_tags, /* Same as above */ + sizeof(asn_DEF_CN_IntegerUnlimited_1_tags) + /sizeof(asn_DEF_CN_IntegerUnlimited_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +/*** <<< INCLUDES [CN-IntegerMinMax] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [CN-IntegerMinMax] >>> ***/ + +typedef long CN_IntegerMinMax_t; + +/*** <<< FUNC-DECLS [CN-IntegerMinMax] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_CN_IntegerMinMax; +asn_struct_free_f CN_IntegerMinMax_free; +asn_struct_print_f CN_IntegerMinMax_print; +asn_constr_check_f CN_IntegerMinMax_constraint; +ber_type_decoder_f CN_IntegerMinMax_decode_ber; +der_type_encoder_f CN_IntegerMinMax_encode_der; +xer_type_decoder_f CN_IntegerMinMax_decode_xer; +xer_type_encoder_f CN_IntegerMinMax_encode_xer; + +/*** <<< CODE [CN-IntegerMinMax] >>> ***/ + +int +CN_IntegerMinMax_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + + if(!sptr) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + /* Replace with underlying type checker */ + td->check_constraints = asn_DEF_NativeInteger.check_constraints; + return td->check_constraints(td, sptr, app_errlog, app_key); +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static void +CN_IntegerMinMax_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_NativeInteger.free_struct; + td->print_struct = asn_DEF_NativeInteger.print_struct; + td->ber_decoder = asn_DEF_NativeInteger.ber_decoder; + td->der_encoder = asn_DEF_NativeInteger.der_encoder; + td->xer_decoder = asn_DEF_NativeInteger.xer_decoder; + td->xer_encoder = asn_DEF_NativeInteger.xer_encoder; + td->elements = asn_DEF_NativeInteger.elements; + td->elements_count = asn_DEF_NativeInteger.elements_count; + td->specifics = asn_DEF_NativeInteger.specifics; +} + +void +CN_IntegerMinMax_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + CN_IntegerMinMax_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +CN_IntegerMinMax_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + CN_IntegerMinMax_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +CN_IntegerMinMax_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + CN_IntegerMinMax_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +CN_IntegerMinMax_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + CN_IntegerMinMax_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +CN_IntegerMinMax_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + CN_IntegerMinMax_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +CN_IntegerMinMax_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + CN_IntegerMinMax_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [CN-IntegerMinMax] >>> ***/ + +static ber_tlv_tag_t asn_DEF_CN_IntegerMinMax_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CN_IntegerMinMax = { + "CN-IntegerMinMax", + "CN-IntegerMinMax", + CN_IntegerMinMax_free, + CN_IntegerMinMax_print, + CN_IntegerMinMax_constraint, + CN_IntegerMinMax_decode_ber, + CN_IntegerMinMax_encode_der, + CN_IntegerMinMax_decode_xer, + CN_IntegerMinMax_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_CN_IntegerMinMax_1_tags, + sizeof(asn_DEF_CN_IntegerMinMax_1_tags) + /sizeof(asn_DEF_CN_IntegerMinMax_1_tags[0]), /* 1 */ + asn_DEF_CN_IntegerMinMax_1_tags, /* Same as above */ + sizeof(asn_DEF_CN_IntegerMinMax_1_tags) + /sizeof(asn_DEF_CN_IntegerMinMax_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +/*** <<< INCLUDES [CN-IntegerMinLow] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [CN-IntegerMinLow] >>> ***/ + +typedef INTEGER_t CN_IntegerMinLow_t; + +/*** <<< FUNC-DECLS [CN-IntegerMinLow] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_CN_IntegerMinLow; +asn_struct_free_f CN_IntegerMinLow_free; +asn_struct_print_f CN_IntegerMinLow_print; +asn_constr_check_f CN_IntegerMinLow_constraint; +ber_type_decoder_f CN_IntegerMinLow_decode_ber; +der_type_encoder_f CN_IntegerMinLow_encode_der; +xer_type_decoder_f CN_IntegerMinLow_decode_xer; +xer_type_encoder_f CN_IntegerMinLow_encode_xer; + +/*** <<< CODE [CN-IntegerMinLow] >>> ***/ + +int +CN_IntegerMinLow_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value <= 1)) { + /* Constraint check succeeded */ + return 0; + } else { + _ASN_ERRLOG(app_errlog, app_key, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static void +CN_IntegerMinLow_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_INTEGER.free_struct; + td->print_struct = asn_DEF_INTEGER.print_struct; + td->ber_decoder = asn_DEF_INTEGER.ber_decoder; + td->der_encoder = asn_DEF_INTEGER.der_encoder; + td->xer_decoder = asn_DEF_INTEGER.xer_decoder; + td->xer_encoder = asn_DEF_INTEGER.xer_encoder; + td->elements = asn_DEF_INTEGER.elements; + td->elements_count = asn_DEF_INTEGER.elements_count; + td->specifics = asn_DEF_INTEGER.specifics; +} + +void +CN_IntegerMinLow_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + CN_IntegerMinLow_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +CN_IntegerMinLow_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + CN_IntegerMinLow_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +CN_IntegerMinLow_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + CN_IntegerMinLow_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +CN_IntegerMinLow_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + CN_IntegerMinLow_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +CN_IntegerMinLow_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + CN_IntegerMinLow_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +CN_IntegerMinLow_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + CN_IntegerMinLow_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [CN-IntegerMinLow] >>> ***/ + +static ber_tlv_tag_t asn_DEF_CN_IntegerMinLow_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CN_IntegerMinLow = { + "CN-IntegerMinLow", + "CN-IntegerMinLow", + CN_IntegerMinLow_free, + CN_IntegerMinLow_print, + CN_IntegerMinLow_constraint, + CN_IntegerMinLow_decode_ber, + CN_IntegerMinLow_encode_der, + CN_IntegerMinLow_decode_xer, + CN_IntegerMinLow_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_CN_IntegerMinLow_1_tags, + sizeof(asn_DEF_CN_IntegerMinLow_1_tags) + /sizeof(asn_DEF_CN_IntegerMinLow_1_tags[0]), /* 1 */ + asn_DEF_CN_IntegerMinLow_1_tags, /* Same as above */ + sizeof(asn_DEF_CN_IntegerMinLow_1_tags) + /sizeof(asn_DEF_CN_IntegerMinLow_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +/*** <<< INCLUDES [NO-IntegerMinHigh] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [NO-IntegerMinHigh] >>> ***/ + +typedef INTEGER_t NO_IntegerMinHigh_t; + +/*** <<< FUNC-DECLS [NO-IntegerMinHigh] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_NO_IntegerMinHigh; +asn_struct_free_f NO_IntegerMinHigh_free; +asn_struct_print_f NO_IntegerMinHigh_print; +asn_constr_check_f NO_IntegerMinHigh_constraint; +ber_type_decoder_f NO_IntegerMinHigh_decode_ber; +der_type_encoder_f NO_IntegerMinHigh_encode_der; +xer_type_decoder_f NO_IntegerMinHigh_decode_xer; +xer_type_encoder_f NO_IntegerMinHigh_encode_xer; + +/*** <<< CODE [NO-IntegerMinHigh] >>> ***/ + +int +NO_IntegerMinHigh_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value <= 5000000000)) { + /* Constraint check succeeded */ + return 0; + } else { + _ASN_ERRLOG(app_errlog, app_key, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static void +NO_IntegerMinHigh_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_INTEGER.free_struct; + td->print_struct = asn_DEF_INTEGER.print_struct; + td->ber_decoder = asn_DEF_INTEGER.ber_decoder; + td->der_encoder = asn_DEF_INTEGER.der_encoder; + td->xer_decoder = asn_DEF_INTEGER.xer_decoder; + td->xer_encoder = asn_DEF_INTEGER.xer_encoder; + td->elements = asn_DEF_INTEGER.elements; + td->elements_count = asn_DEF_INTEGER.elements_count; + td->specifics = asn_DEF_INTEGER.specifics; +} + +void +NO_IntegerMinHigh_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + NO_IntegerMinHigh_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +NO_IntegerMinHigh_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerMinHigh_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +NO_IntegerMinHigh_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + NO_IntegerMinHigh_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +NO_IntegerMinHigh_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerMinHigh_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +NO_IntegerMinHigh_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + NO_IntegerMinHigh_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +NO_IntegerMinHigh_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerMinHigh_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [NO-IntegerMinHigh] >>> ***/ + +static ber_tlv_tag_t asn_DEF_NO_IntegerMinHigh_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NO_IntegerMinHigh = { + "NO-IntegerMinHigh", + "NO-IntegerMinHigh", + NO_IntegerMinHigh_free, + NO_IntegerMinHigh_print, + NO_IntegerMinHigh_constraint, + NO_IntegerMinHigh_decode_ber, + NO_IntegerMinHigh_encode_der, + NO_IntegerMinHigh_decode_xer, + NO_IntegerMinHigh_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_NO_IntegerMinHigh_1_tags, + sizeof(asn_DEF_NO_IntegerMinHigh_1_tags) + /sizeof(asn_DEF_NO_IntegerMinHigh_1_tags[0]), /* 1 */ + asn_DEF_NO_IntegerMinHigh_1_tags, /* Same as above */ + sizeof(asn_DEF_NO_IntegerMinHigh_1_tags) + /sizeof(asn_DEF_NO_IntegerMinHigh_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +/*** <<< INCLUDES [NO-IntegerLowHigh] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [NO-IntegerLowHigh] >>> ***/ + +typedef INTEGER_t NO_IntegerLowHigh_t; + +/*** <<< FUNC-DECLS [NO-IntegerLowHigh] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_NO_IntegerLowHigh; +asn_struct_free_f NO_IntegerLowHigh_free; +asn_struct_print_f NO_IntegerLowHigh_print; +asn_constr_check_f NO_IntegerLowHigh_constraint; +ber_type_decoder_f NO_IntegerLowHigh_decode_ber; +der_type_encoder_f NO_IntegerLowHigh_encode_der; +xer_type_decoder_f NO_IntegerLowHigh_decode_xer; +xer_type_encoder_f NO_IntegerLowHigh_encode_xer; + +/*** <<< CODE [NO-IntegerLowHigh] >>> ***/ + +int +NO_IntegerLowHigh_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= 1 && value <= 5000000000)) { + /* Constraint check succeeded */ + return 0; + } else { + _ASN_ERRLOG(app_errlog, app_key, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static void +NO_IntegerLowHigh_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_INTEGER.free_struct; + td->print_struct = asn_DEF_INTEGER.print_struct; + td->ber_decoder = asn_DEF_INTEGER.ber_decoder; + td->der_encoder = asn_DEF_INTEGER.der_encoder; + td->xer_decoder = asn_DEF_INTEGER.xer_decoder; + td->xer_encoder = asn_DEF_INTEGER.xer_encoder; + td->elements = asn_DEF_INTEGER.elements; + td->elements_count = asn_DEF_INTEGER.elements_count; + td->specifics = asn_DEF_INTEGER.specifics; +} + +void +NO_IntegerLowHigh_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + NO_IntegerLowHigh_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +NO_IntegerLowHigh_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerLowHigh_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +NO_IntegerLowHigh_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + NO_IntegerLowHigh_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +NO_IntegerLowHigh_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerLowHigh_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +NO_IntegerLowHigh_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + NO_IntegerLowHigh_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +NO_IntegerLowHigh_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerLowHigh_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [NO-IntegerLowHigh] >>> ***/ + +static ber_tlv_tag_t asn_DEF_NO_IntegerLowHigh_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NO_IntegerLowHigh = { + "NO-IntegerLowHigh", + "NO-IntegerLowHigh", + NO_IntegerLowHigh_free, + NO_IntegerLowHigh_print, + NO_IntegerLowHigh_constraint, + NO_IntegerLowHigh_decode_ber, + NO_IntegerLowHigh_encode_der, + NO_IntegerLowHigh_decode_xer, + NO_IntegerLowHigh_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_NO_IntegerLowHigh_1_tags, + sizeof(asn_DEF_NO_IntegerLowHigh_1_tags) + /sizeof(asn_DEF_NO_IntegerLowHigh_1_tags[0]), /* 1 */ + asn_DEF_NO_IntegerLowHigh_1_tags, /* Same as above */ + sizeof(asn_DEF_NO_IntegerLowHigh_1_tags) + /sizeof(asn_DEF_NO_IntegerLowHigh_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +/*** <<< INCLUDES [CN-IntegerLowMax] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [CN-IntegerLowMax] >>> ***/ + +typedef INTEGER_t CN_IntegerLowMax_t; + +/*** <<< FUNC-DECLS [CN-IntegerLowMax] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_CN_IntegerLowMax; +asn_struct_free_f CN_IntegerLowMax_free; +asn_struct_print_f CN_IntegerLowMax_print; +asn_constr_check_f CN_IntegerLowMax_constraint; +ber_type_decoder_f CN_IntegerLowMax_decode_ber; +der_type_encoder_f CN_IntegerLowMax_encode_der; +xer_type_decoder_f CN_IntegerLowMax_decode_xer; +xer_type_encoder_f CN_IntegerLowMax_encode_xer; + +/*** <<< CODE [CN-IntegerLowMax] >>> ***/ + +int +CN_IntegerLowMax_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= 1)) { + /* Constraint check succeeded */ + return 0; + } else { + _ASN_ERRLOG(app_errlog, app_key, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static void +CN_IntegerLowMax_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_INTEGER.free_struct; + td->print_struct = asn_DEF_INTEGER.print_struct; + td->ber_decoder = asn_DEF_INTEGER.ber_decoder; + td->der_encoder = asn_DEF_INTEGER.der_encoder; + td->xer_decoder = asn_DEF_INTEGER.xer_decoder; + td->xer_encoder = asn_DEF_INTEGER.xer_encoder; + td->elements = asn_DEF_INTEGER.elements; + td->elements_count = asn_DEF_INTEGER.elements_count; + td->specifics = asn_DEF_INTEGER.specifics; +} + +void +CN_IntegerLowMax_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + CN_IntegerLowMax_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +CN_IntegerLowMax_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + CN_IntegerLowMax_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +CN_IntegerLowMax_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + CN_IntegerLowMax_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +CN_IntegerLowMax_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + CN_IntegerLowMax_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +CN_IntegerLowMax_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + CN_IntegerLowMax_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +CN_IntegerLowMax_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + CN_IntegerLowMax_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [CN-IntegerLowMax] >>> ***/ + +static ber_tlv_tag_t asn_DEF_CN_IntegerLowMax_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CN_IntegerLowMax = { + "CN-IntegerLowMax", + "CN-IntegerLowMax", + CN_IntegerLowMax_free, + CN_IntegerLowMax_print, + CN_IntegerLowMax_constraint, + CN_IntegerLowMax_decode_ber, + CN_IntegerLowMax_encode_der, + CN_IntegerLowMax_decode_xer, + CN_IntegerLowMax_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_CN_IntegerLowMax_1_tags, + sizeof(asn_DEF_CN_IntegerLowMax_1_tags) + /sizeof(asn_DEF_CN_IntegerLowMax_1_tags[0]), /* 1 */ + asn_DEF_CN_IntegerLowMax_1_tags, /* Same as above */ + sizeof(asn_DEF_CN_IntegerLowMax_1_tags) + /sizeof(asn_DEF_CN_IntegerLowMax_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +/*** <<< INCLUDES [NO-IntegerHighMax] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [NO-IntegerHighMax] >>> ***/ + +typedef INTEGER_t NO_IntegerHighMax_t; + +/*** <<< FUNC-DECLS [NO-IntegerHighMax] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_NO_IntegerHighMax; +asn_struct_free_f NO_IntegerHighMax_free; +asn_struct_print_f NO_IntegerHighMax_print; +asn_constr_check_f NO_IntegerHighMax_constraint; +ber_type_decoder_f NO_IntegerHighMax_decode_ber; +der_type_encoder_f NO_IntegerHighMax_encode_der; +xer_type_decoder_f NO_IntegerHighMax_decode_xer; +xer_type_encoder_f NO_IntegerHighMax_encode_xer; + +/*** <<< CODE [NO-IntegerHighMax] >>> ***/ + +int +NO_IntegerHighMax_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= 5000000000)) { + /* Constraint check succeeded */ + return 0; + } else { + _ASN_ERRLOG(app_errlog, app_key, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static void +NO_IntegerHighMax_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_INTEGER.free_struct; + td->print_struct = asn_DEF_INTEGER.print_struct; + td->ber_decoder = asn_DEF_INTEGER.ber_decoder; + td->der_encoder = asn_DEF_INTEGER.der_encoder; + td->xer_decoder = asn_DEF_INTEGER.xer_decoder; + td->xer_encoder = asn_DEF_INTEGER.xer_encoder; + td->elements = asn_DEF_INTEGER.elements; + td->elements_count = asn_DEF_INTEGER.elements_count; + td->specifics = asn_DEF_INTEGER.specifics; +} + +void +NO_IntegerHighMax_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + NO_IntegerHighMax_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +NO_IntegerHighMax_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerHighMax_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +NO_IntegerHighMax_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + NO_IntegerHighMax_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +NO_IntegerHighMax_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerHighMax_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +NO_IntegerHighMax_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + NO_IntegerHighMax_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +NO_IntegerHighMax_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerHighMax_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [NO-IntegerHighMax] >>> ***/ + +static ber_tlv_tag_t asn_DEF_NO_IntegerHighMax_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NO_IntegerHighMax = { + "NO-IntegerHighMax", + "NO-IntegerHighMax", + NO_IntegerHighMax_free, + NO_IntegerHighMax_print, + NO_IntegerHighMax_constraint, + NO_IntegerHighMax_decode_ber, + NO_IntegerHighMax_encode_der, + NO_IntegerHighMax_decode_xer, + NO_IntegerHighMax_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_NO_IntegerHighMax_1_tags, + sizeof(asn_DEF_NO_IntegerHighMax_1_tags) + /sizeof(asn_DEF_NO_IntegerHighMax_1_tags[0]), /* 1 */ + asn_DEF_NO_IntegerHighMax_1_tags, /* Same as above */ + sizeof(asn_DEF_NO_IntegerHighMax_1_tags) + /sizeof(asn_DEF_NO_IntegerHighMax_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +/*** <<< INCLUDES [NO-IntegerLowestMax] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [NO-IntegerLowestMax] >>> ***/ + +typedef INTEGER_t NO_IntegerLowestMax_t; + +/*** <<< FUNC-DECLS [NO-IntegerLowestMax] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_NO_IntegerLowestMax; +asn_struct_free_f NO_IntegerLowestMax_free; +asn_struct_print_f NO_IntegerLowestMax_print; +asn_constr_check_f NO_IntegerLowestMax_constraint; +ber_type_decoder_f NO_IntegerLowestMax_decode_ber; +der_type_encoder_f NO_IntegerLowestMax_encode_der; +xer_type_decoder_f NO_IntegerLowestMax_decode_xer; +xer_type_encoder_f NO_IntegerLowestMax_encode_xer; + +/*** <<< CODE [NO-IntegerLowestMax] >>> ***/ + +int +NO_IntegerLowestMax_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= -5000000000)) { + /* Constraint check succeeded */ + return 0; + } else { + _ASN_ERRLOG(app_errlog, app_key, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static void +NO_IntegerLowestMax_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_INTEGER.free_struct; + td->print_struct = asn_DEF_INTEGER.print_struct; + td->ber_decoder = asn_DEF_INTEGER.ber_decoder; + td->der_encoder = asn_DEF_INTEGER.der_encoder; + td->xer_decoder = asn_DEF_INTEGER.xer_decoder; + td->xer_encoder = asn_DEF_INTEGER.xer_encoder; + td->elements = asn_DEF_INTEGER.elements; + td->elements_count = asn_DEF_INTEGER.elements_count; + td->specifics = asn_DEF_INTEGER.specifics; +} + +void +NO_IntegerLowestMax_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + NO_IntegerLowestMax_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +NO_IntegerLowestMax_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerLowestMax_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +NO_IntegerLowestMax_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + NO_IntegerLowestMax_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +NO_IntegerLowestMax_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerLowestMax_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +NO_IntegerLowestMax_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + NO_IntegerLowestMax_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +NO_IntegerLowestMax_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerLowestMax_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [NO-IntegerLowestMax] >>> ***/ + +static ber_tlv_tag_t asn_DEF_NO_IntegerLowestMax_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NO_IntegerLowestMax = { + "NO-IntegerLowestMax", + "NO-IntegerLowestMax", + NO_IntegerLowestMax_free, + NO_IntegerLowestMax_print, + NO_IntegerLowestMax_constraint, + NO_IntegerLowestMax_decode_ber, + NO_IntegerLowestMax_encode_der, + NO_IntegerLowestMax_decode_xer, + NO_IntegerLowestMax_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_NO_IntegerLowestMax_1_tags, + sizeof(asn_DEF_NO_IntegerLowestMax_1_tags) + /sizeof(asn_DEF_NO_IntegerLowestMax_1_tags[0]), /* 1 */ + asn_DEF_NO_IntegerLowestMax_1_tags, /* Same as above */ + sizeof(asn_DEF_NO_IntegerLowestMax_1_tags) + /sizeof(asn_DEF_NO_IntegerLowestMax_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +/*** <<< INCLUDES [NO-IntegerOutRange] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [NO-IntegerOutRange] >>> ***/ + +typedef INTEGER_t NO_IntegerOutRange_t; + +/*** <<< FUNC-DECLS [NO-IntegerOutRange] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_NO_IntegerOutRange; +asn_struct_free_f NO_IntegerOutRange_free; +asn_struct_print_f NO_IntegerOutRange_print; +asn_constr_check_f NO_IntegerOutRange_constraint; +ber_type_decoder_f NO_IntegerOutRange_decode_ber; +der_type_encoder_f NO_IntegerOutRange_encode_der; +xer_type_decoder_f NO_IntegerOutRange_decode_xer; +xer_type_encoder_f NO_IntegerOutRange_encode_xer; + +/*** <<< CODE [NO-IntegerOutRange] >>> ***/ + +int +NO_IntegerOutRange_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= 5000000000 && value <= 5000000001)) { + /* Constraint check succeeded */ + return 0; + } else { + _ASN_ERRLOG(app_errlog, app_key, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static void +NO_IntegerOutRange_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_INTEGER.free_struct; + td->print_struct = asn_DEF_INTEGER.print_struct; + td->ber_decoder = asn_DEF_INTEGER.ber_decoder; + td->der_encoder = asn_DEF_INTEGER.der_encoder; + td->xer_decoder = asn_DEF_INTEGER.xer_decoder; + td->xer_encoder = asn_DEF_INTEGER.xer_encoder; + td->elements = asn_DEF_INTEGER.elements; + td->elements_count = asn_DEF_INTEGER.elements_count; + td->specifics = asn_DEF_INTEGER.specifics; +} + +void +NO_IntegerOutRange_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + NO_IntegerOutRange_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +NO_IntegerOutRange_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerOutRange_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +NO_IntegerOutRange_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + NO_IntegerOutRange_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +NO_IntegerOutRange_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerOutRange_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +NO_IntegerOutRange_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + NO_IntegerOutRange_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +NO_IntegerOutRange_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerOutRange_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [NO-IntegerOutRange] >>> ***/ + +static ber_tlv_tag_t asn_DEF_NO_IntegerOutRange_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NO_IntegerOutRange = { + "NO-IntegerOutRange", + "NO-IntegerOutRange", + NO_IntegerOutRange_free, + NO_IntegerOutRange_print, + NO_IntegerOutRange_constraint, + NO_IntegerOutRange_decode_ber, + NO_IntegerOutRange_encode_der, + NO_IntegerOutRange_decode_xer, + NO_IntegerOutRange_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_NO_IntegerOutRange_1_tags, + sizeof(asn_DEF_NO_IntegerOutRange_1_tags) + /sizeof(asn_DEF_NO_IntegerOutRange_1_tags[0]), /* 1 */ + asn_DEF_NO_IntegerOutRange_1_tags, /* Same as above */ + sizeof(asn_DEF_NO_IntegerOutRange_1_tags) + /sizeof(asn_DEF_NO_IntegerOutRange_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +/*** <<< INCLUDES [NO-IntegerOutValue] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [NO-IntegerOutValue] >>> ***/ + +typedef INTEGER_t NO_IntegerOutValue_t; + +/*** <<< FUNC-DECLS [NO-IntegerOutValue] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_NO_IntegerOutValue; +asn_struct_free_f NO_IntegerOutValue_free; +asn_struct_print_f NO_IntegerOutValue_print; +asn_constr_check_f NO_IntegerOutValue_constraint; +ber_type_decoder_f NO_IntegerOutValue_decode_ber; +der_type_encoder_f NO_IntegerOutValue_encode_der; +xer_type_decoder_f NO_IntegerOutValue_decode_xer; +xer_type_encoder_f NO_IntegerOutValue_encode_xer; + +/*** <<< CODE [NO-IntegerOutValue] >>> ***/ + +int +NO_IntegerOutValue_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value == 5000000000)) { + /* Constraint check succeeded */ + return 0; + } else { + _ASN_ERRLOG(app_errlog, app_key, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static void +NO_IntegerOutValue_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_INTEGER.free_struct; + td->print_struct = asn_DEF_INTEGER.print_struct; + td->ber_decoder = asn_DEF_INTEGER.ber_decoder; + td->der_encoder = asn_DEF_INTEGER.der_encoder; + td->xer_decoder = asn_DEF_INTEGER.xer_decoder; + td->xer_encoder = asn_DEF_INTEGER.xer_encoder; + td->elements = asn_DEF_INTEGER.elements; + td->elements_count = asn_DEF_INTEGER.elements_count; + td->specifics = asn_DEF_INTEGER.specifics; +} + +void +NO_IntegerOutValue_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + NO_IntegerOutValue_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +NO_IntegerOutValue_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerOutValue_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +NO_IntegerOutValue_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + NO_IntegerOutValue_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +NO_IntegerOutValue_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerOutValue_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +NO_IntegerOutValue_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + NO_IntegerOutValue_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +NO_IntegerOutValue_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + NO_IntegerOutValue_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [NO-IntegerOutValue] >>> ***/ + +static ber_tlv_tag_t asn_DEF_NO_IntegerOutValue_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NO_IntegerOutValue = { + "NO-IntegerOutValue", + "NO-IntegerOutValue", + NO_IntegerOutValue_free, + NO_IntegerOutValue_print, + NO_IntegerOutValue_constraint, + NO_IntegerOutValue_decode_ber, + NO_IntegerOutValue_encode_der, + NO_IntegerOutValue_decode_xer, + NO_IntegerOutValue_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_NO_IntegerOutValue_1_tags, + sizeof(asn_DEF_NO_IntegerOutValue_1_tags) + /sizeof(asn_DEF_NO_IntegerOutValue_1_tags[0]), /* 1 */ + asn_DEF_NO_IntegerOutValue_1_tags, /* Same as above */ + sizeof(asn_DEF_NO_IntegerOutValue_1_tags) + /sizeof(asn_DEF_NO_IntegerOutValue_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +/*** <<< INCLUDES [OK-IntegerInRange1] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [OK-IntegerInRange1] >>> ***/ + +typedef INTEGER_t OK_IntegerInRange1_t; + +/*** <<< FUNC-DECLS [OK-IntegerInRange1] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_OK_IntegerInRange1; +asn_struct_free_f OK_IntegerInRange1_free; +asn_struct_print_f OK_IntegerInRange1_print; +asn_constr_check_f OK_IntegerInRange1_constraint; +ber_type_decoder_f OK_IntegerInRange1_decode_ber; +der_type_encoder_f OK_IntegerInRange1_encode_der; +xer_type_decoder_f OK_IntegerInRange1_decode_xer; +xer_type_encoder_f OK_IntegerInRange1_encode_xer; + +/*** <<< CODE [OK-IntegerInRange1] >>> ***/ + +int +OK_IntegerInRange1_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= -100 && value <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + _ASN_ERRLOG(app_errlog, app_key, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static void +OK_IntegerInRange1_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_INTEGER.free_struct; + td->print_struct = asn_DEF_INTEGER.print_struct; + td->ber_decoder = asn_DEF_INTEGER.ber_decoder; + td->der_encoder = asn_DEF_INTEGER.der_encoder; + td->xer_decoder = asn_DEF_INTEGER.xer_decoder; + td->xer_encoder = asn_DEF_INTEGER.xer_encoder; + td->elements = asn_DEF_INTEGER.elements; + td->elements_count = asn_DEF_INTEGER.elements_count; + td->specifics = asn_DEF_INTEGER.specifics; +} + +void +OK_IntegerInRange1_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + OK_IntegerInRange1_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +OK_IntegerInRange1_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange1_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +OK_IntegerInRange1_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + OK_IntegerInRange1_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +OK_IntegerInRange1_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange1_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +OK_IntegerInRange1_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + OK_IntegerInRange1_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +OK_IntegerInRange1_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange1_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [OK-IntegerInRange1] >>> ***/ + +static ber_tlv_tag_t asn_DEF_OK_IntegerInRange1_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_OK_IntegerInRange1 = { + "OK-IntegerInRange1", + "OK-IntegerInRange1", + OK_IntegerInRange1_free, + OK_IntegerInRange1_print, + OK_IntegerInRange1_constraint, + OK_IntegerInRange1_decode_ber, + OK_IntegerInRange1_encode_der, + OK_IntegerInRange1_decode_xer, + OK_IntegerInRange1_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_OK_IntegerInRange1_1_tags, + sizeof(asn_DEF_OK_IntegerInRange1_1_tags) + /sizeof(asn_DEF_OK_IntegerInRange1_1_tags[0]), /* 1 */ + asn_DEF_OK_IntegerInRange1_1_tags, /* Same as above */ + sizeof(asn_DEF_OK_IntegerInRange1_1_tags) + /sizeof(asn_DEF_OK_IntegerInRange1_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +/*** <<< INCLUDES [OK-IntegerInRange2] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [OK-IntegerInRange2] >>> ***/ + +typedef INTEGER_t OK_IntegerInRange2_t; + +/*** <<< FUNC-DECLS [OK-IntegerInRange2] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_OK_IntegerInRange2; +asn_struct_free_f OK_IntegerInRange2_free; +asn_struct_print_f OK_IntegerInRange2_print; +asn_constr_check_f OK_IntegerInRange2_constraint; +ber_type_decoder_f OK_IntegerInRange2_decode_ber; +der_type_encoder_f OK_IntegerInRange2_encode_der; +xer_type_decoder_f OK_IntegerInRange2_decode_xer; +xer_type_encoder_f OK_IntegerInRange2_encode_xer; + +/*** <<< CODE [OK-IntegerInRange2] >>> ***/ + +int +OK_IntegerInRange2_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(((value == -100) || (value == 100))) { + /* Constraint check succeeded */ + return 0; + } else { + _ASN_ERRLOG(app_errlog, app_key, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static void +OK_IntegerInRange2_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_INTEGER.free_struct; + td->print_struct = asn_DEF_INTEGER.print_struct; + td->ber_decoder = asn_DEF_INTEGER.ber_decoder; + td->der_encoder = asn_DEF_INTEGER.der_encoder; + td->xer_decoder = asn_DEF_INTEGER.xer_decoder; + td->xer_encoder = asn_DEF_INTEGER.xer_encoder; + td->elements = asn_DEF_INTEGER.elements; + td->elements_count = asn_DEF_INTEGER.elements_count; + td->specifics = asn_DEF_INTEGER.specifics; +} + +void +OK_IntegerInRange2_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + OK_IntegerInRange2_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +OK_IntegerInRange2_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange2_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +OK_IntegerInRange2_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + OK_IntegerInRange2_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +OK_IntegerInRange2_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange2_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +OK_IntegerInRange2_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + OK_IntegerInRange2_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +OK_IntegerInRange2_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange2_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [OK-IntegerInRange2] >>> ***/ + +static ber_tlv_tag_t asn_DEF_OK_IntegerInRange2_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_OK_IntegerInRange2 = { + "OK-IntegerInRange2", + "OK-IntegerInRange2", + OK_IntegerInRange2_free, + OK_IntegerInRange2_print, + OK_IntegerInRange2_constraint, + OK_IntegerInRange2_decode_ber, + OK_IntegerInRange2_encode_der, + OK_IntegerInRange2_decode_xer, + OK_IntegerInRange2_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_OK_IntegerInRange2_1_tags, + sizeof(asn_DEF_OK_IntegerInRange2_1_tags) + /sizeof(asn_DEF_OK_IntegerInRange2_1_tags[0]), /* 1 */ + asn_DEF_OK_IntegerInRange2_1_tags, /* Same as above */ + sizeof(asn_DEF_OK_IntegerInRange2_1_tags) + /sizeof(asn_DEF_OK_IntegerInRange2_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +/*** <<< INCLUDES [OK-IntegerInRange3] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [OK-IntegerInRange3] >>> ***/ + +typedef INTEGER_t OK_IntegerInRange3_t; + +/*** <<< FUNC-DECLS [OK-IntegerInRange3] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_OK_IntegerInRange3; +asn_struct_free_f OK_IntegerInRange3_free; +asn_struct_print_f OK_IntegerInRange3_print; +asn_constr_check_f OK_IntegerInRange3_constraint; +ber_type_decoder_f OK_IntegerInRange3_decode_ber; +der_type_encoder_f OK_IntegerInRange3_encode_der; +xer_type_decoder_f OK_IntegerInRange3_decode_xer; +xer_type_encoder_f OK_IntegerInRange3_encode_xer; + +/*** <<< CODE [OK-IntegerInRange3] >>> ***/ + +int +OK_IntegerInRange3_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= -2147483648 && value <= 2147483647)) { + /* Constraint check succeeded */ + return 0; + } else { + _ASN_ERRLOG(app_errlog, app_key, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static void +OK_IntegerInRange3_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_INTEGER.free_struct; + td->print_struct = asn_DEF_INTEGER.print_struct; + td->ber_decoder = asn_DEF_INTEGER.ber_decoder; + td->der_encoder = asn_DEF_INTEGER.der_encoder; + td->xer_decoder = asn_DEF_INTEGER.xer_decoder; + td->xer_encoder = asn_DEF_INTEGER.xer_encoder; + td->elements = asn_DEF_INTEGER.elements; + td->elements_count = asn_DEF_INTEGER.elements_count; + td->specifics = asn_DEF_INTEGER.specifics; +} + +void +OK_IntegerInRange3_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + OK_IntegerInRange3_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +OK_IntegerInRange3_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange3_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +OK_IntegerInRange3_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + OK_IntegerInRange3_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +OK_IntegerInRange3_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange3_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +OK_IntegerInRange3_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + OK_IntegerInRange3_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +OK_IntegerInRange3_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange3_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [OK-IntegerInRange3] >>> ***/ + +static ber_tlv_tag_t asn_DEF_OK_IntegerInRange3_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_OK_IntegerInRange3 = { + "OK-IntegerInRange3", + "OK-IntegerInRange3", + OK_IntegerInRange3_free, + OK_IntegerInRange3_print, + OK_IntegerInRange3_constraint, + OK_IntegerInRange3_decode_ber, + OK_IntegerInRange3_encode_der, + OK_IntegerInRange3_decode_xer, + OK_IntegerInRange3_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_OK_IntegerInRange3_1_tags, + sizeof(asn_DEF_OK_IntegerInRange3_1_tags) + /sizeof(asn_DEF_OK_IntegerInRange3_1_tags[0]), /* 1 */ + asn_DEF_OK_IntegerInRange3_1_tags, /* Same as above */ + sizeof(asn_DEF_OK_IntegerInRange3_1_tags) + /sizeof(asn_DEF_OK_IntegerInRange3_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +/*** <<< INCLUDES [OK-IntegerInRange4] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [OK-IntegerInRange4] >>> ***/ + +typedef INTEGER_t OK_IntegerInRange4_t; + +/*** <<< FUNC-DECLS [OK-IntegerInRange4] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_OK_IntegerInRange4; +asn_struct_free_f OK_IntegerInRange4_free; +asn_struct_print_f OK_IntegerInRange4_print; +asn_constr_check_f OK_IntegerInRange4_constraint; +ber_type_decoder_f OK_IntegerInRange4_decode_ber; +der_type_encoder_f OK_IntegerInRange4_encode_der; +xer_type_decoder_f OK_IntegerInRange4_decode_xer; +xer_type_encoder_f OK_IntegerInRange4_encode_xer; + +/*** <<< CODE [OK-IntegerInRange4] >>> ***/ + +int +OK_IntegerInRange4_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(((value == -2147483648) || (value == 2147483647))) { + /* Constraint check succeeded */ + return 0; + } else { + _ASN_ERRLOG(app_errlog, app_key, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static void +OK_IntegerInRange4_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_INTEGER.free_struct; + td->print_struct = asn_DEF_INTEGER.print_struct; + td->ber_decoder = asn_DEF_INTEGER.ber_decoder; + td->der_encoder = asn_DEF_INTEGER.der_encoder; + td->xer_decoder = asn_DEF_INTEGER.xer_decoder; + td->xer_encoder = asn_DEF_INTEGER.xer_encoder; + td->elements = asn_DEF_INTEGER.elements; + td->elements_count = asn_DEF_INTEGER.elements_count; + td->specifics = asn_DEF_INTEGER.specifics; +} + +void +OK_IntegerInRange4_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + OK_IntegerInRange4_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +OK_IntegerInRange4_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange4_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +OK_IntegerInRange4_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + OK_IntegerInRange4_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +OK_IntegerInRange4_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange4_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +OK_IntegerInRange4_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + OK_IntegerInRange4_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +OK_IntegerInRange4_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange4_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [OK-IntegerInRange4] >>> ***/ + +static ber_tlv_tag_t asn_DEF_OK_IntegerInRange4_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_OK_IntegerInRange4 = { + "OK-IntegerInRange4", + "OK-IntegerInRange4", + OK_IntegerInRange4_free, + OK_IntegerInRange4_print, + OK_IntegerInRange4_constraint, + OK_IntegerInRange4_decode_ber, + OK_IntegerInRange4_encode_der, + OK_IntegerInRange4_decode_xer, + OK_IntegerInRange4_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_OK_IntegerInRange4_1_tags, + sizeof(asn_DEF_OK_IntegerInRange4_1_tags) + /sizeof(asn_DEF_OK_IntegerInRange4_1_tags[0]), /* 1 */ + asn_DEF_OK_IntegerInRange4_1_tags, /* Same as above */ + sizeof(asn_DEF_OK_IntegerInRange4_1_tags) + /sizeof(asn_DEF_OK_IntegerInRange4_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +/*** <<< INCLUDES [OK-IntegerInRange5] >>> ***/ + +#include + +/*** <<< TYPE-DECLS [OK-IntegerInRange5] >>> ***/ + +typedef INTEGER_t OK_IntegerInRange5_t; + +/*** <<< FUNC-DECLS [OK-IntegerInRange5] >>> ***/ + +extern asn_TYPE_descriptor_t asn_DEF_OK_IntegerInRange5; +asn_struct_free_f OK_IntegerInRange5_free; +asn_struct_print_f OK_IntegerInRange5_print; +asn_constr_check_f OK_IntegerInRange5_constraint; +ber_type_decoder_f OK_IntegerInRange5_decode_ber; +der_type_encoder_f OK_IntegerInRange5_encode_der; +xer_type_decoder_f OK_IntegerInRange5_decode_xer; +xer_type_encoder_f OK_IntegerInRange5_encode_xer; + +/*** <<< CODE [OK-IntegerInRange5] >>> ***/ + +int +OK_IntegerInRange5_constraint(asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_consume_bytes_f *app_errlog, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + _ASN_ERRLOG(app_errlog, app_key, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(((value == -2147483648) || (value == 2147483647))) { + /* Constraint check succeeded */ + return 0; + } else { + _ASN_ERRLOG(app_errlog, app_key, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static void +OK_IntegerInRange5_1_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) { + td->free_struct = asn_DEF_INTEGER.free_struct; + td->print_struct = asn_DEF_INTEGER.print_struct; + td->ber_decoder = asn_DEF_INTEGER.ber_decoder; + td->der_encoder = asn_DEF_INTEGER.der_encoder; + td->xer_decoder = asn_DEF_INTEGER.xer_decoder; + td->xer_encoder = asn_DEF_INTEGER.xer_encoder; + td->elements = asn_DEF_INTEGER.elements; + td->elements_count = asn_DEF_INTEGER.elements_count; + td->specifics = asn_DEF_INTEGER.specifics; +} + +void +OK_IntegerInRange5_free(asn_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + OK_IntegerInRange5_1_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +OK_IntegerInRange5_print(asn_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange5_1_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + +asn_dec_rval_t +OK_IntegerInRange5_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const void *bufptr, size_t size, int tag_mode) { + OK_IntegerInRange5_1_inherit_TYPE_descriptor(td); + return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode); +} + +asn_enc_rval_t +OK_IntegerInRange5_encode_der(asn_TYPE_descriptor_t *td, + void *structure, int tag_mode, ber_tlv_tag_t tag, + asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange5_1_inherit_TYPE_descriptor(td); + return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); +} + +asn_dec_rval_t +OK_IntegerInRange5_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, const void *bufptr, size_t size) { + OK_IntegerInRange5_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + +asn_enc_rval_t +OK_IntegerInRange5_encode_xer(asn_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { + OK_IntegerInRange5_1_inherit_TYPE_descriptor(td); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); +} + + +/*** <<< STAT-DEFS [OK-IntegerInRange5] >>> ***/ + +static ber_tlv_tag_t asn_DEF_OK_IntegerInRange5_1_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_OK_IntegerInRange5 = { + "OK-IntegerInRange5", + "OK-IntegerInRange5", + OK_IntegerInRange5_free, + OK_IntegerInRange5_print, + OK_IntegerInRange5_constraint, + OK_IntegerInRange5_decode_ber, + OK_IntegerInRange5_encode_der, + OK_IntegerInRange5_decode_xer, + OK_IntegerInRange5_encode_xer, + 0, /* Use generic outmost tag fetcher */ + asn_DEF_OK_IntegerInRange5_1_tags, + sizeof(asn_DEF_OK_IntegerInRange5_1_tags) + /sizeof(asn_DEF_OK_IntegerInRange5_1_tags[0]), /* 1 */ + asn_DEF_OK_IntegerInRange5_1_tags, /* Same as above */ + sizeof(asn_DEF_OK_IntegerInRange5_1_tags) + /sizeof(asn_DEF_OK_IntegerInRange5_1_tags[0]), /* 1 */ + 0, 0, /* No members */ + 0 /* No specifics */ +}; +