Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
asn1c
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Libraries
asn1c
Commits
8aed40c4
Commit
8aed40c4
authored
Jul 26, 2017
by
Lev Walkin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
verify value range constraints for OER
parent
01582a71
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
1203 additions
and
0 deletions
+1203
-0
tests/138-oer-constraints-OK.asn1
tests/138-oer-constraints-OK.asn1
+22
-0
tests/138-oer-constraints-OK.asn1.-Pgen-OER
tests/138-oer-constraints-OK.asn1.-Pgen-OER
+1181
-0
No files found.
tests/138-oer-constraints-OK.asn1
0 → 100644
View file @
8aed40c4
-- OK: Everything is fine
-- iso.org.dod.internet.private.enterprise (1.3.6.1.4.1)
-- .spelio.software.asn1c.test (9363.1.5.1)
-- .138
ModuleOERConstraints
{ iso org(3) dod(6) internet (1) private(4) enterprise(1)
spelio(9363) software(1) asn1c(5) test(1) 138 }
DEFINITIONS IMPLICIT TAGS ::=
BEGIN
A-noc ::= INTEGER -- No constraints
B-vis ::= INTEGER (0) -- Value constraint
C-vis ::= INTEGER (-1..1) -- Value range constraint
D-inv ::= INTEGER (0..10,...) -- Extensible, not OER-visible
E-vis ::= INTEGER (0..10,...)(2..5) -- OER-visible constraint 2..5
F-inv ::= INTEGER (0..10,...)(2..5,...) -- Not OER-visible
G-vis ::= INTEGER (0..10,...)(2..5,...)(3) -- OER-visible constraint 3
END
tests/138-oer-constraints-OK.asn1.-Pgen-OER
0 → 100644
View file @
8aed40c4
/*** <<< INCLUDES [A-noc] >>> ***/
#include <NativeInteger.h>
/*** <<< TYPE-DECLS [A-noc] >>> ***/
typedef long A_noc_t;
/*** <<< FUNC-DECLS [A-noc] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_A_noc;
asn_struct_free_f A_noc_free;
asn_struct_print_f A_noc_print;
asn_constr_check_f A_noc_constraint;
ber_type_decoder_f A_noc_decode_ber;
der_type_encoder_f A_noc_encode_der;
xer_type_decoder_f A_noc_decode_xer;
xer_type_encoder_f A_noc_encode_xer;
oer_type_decoder_f A_noc_decode_oer;
oer_type_encoder_f A_noc_encode_oer;
/*** <<< CODE [A-noc] >>> ***/
int
A_noc_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) {
/* Replace with underlying type checker */
td->check_constraints = asn_DEF_NativeInteger.check_constraints;
return td->check_constraints(td, sptr, ctfailcb, app_key);
}
/*
* This type is implemented using NativeInteger,
* so here we adjust the DEF accordingly.
*/
static void
A_noc_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->check_constraints = asn_DEF_NativeInteger.check_constraints;
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->uper_decoder = asn_DEF_NativeInteger.uper_decoder;
td->uper_encoder = asn_DEF_NativeInteger.uper_encoder;
td->oer_decoder = asn_DEF_NativeInteger.oer_decoder;
td->oer_encoder = asn_DEF_NativeInteger.oer_encoder;
if(!td->oer_constraints)
td->oer_constraints = asn_DEF_NativeInteger.oer_constraints;
if(!td->per_constraints)
td->per_constraints = asn_DEF_NativeInteger.per_constraints;
td->elements = asn_DEF_NativeInteger.elements;
td->elements_count = asn_DEF_NativeInteger.elements_count;
td->specifics = asn_DEF_NativeInteger.specifics;
}
void
A_noc_free(asn_TYPE_descriptor_t *td,
void *struct_ptr, int contents_only) {
A_noc_1_inherit_TYPE_descriptor(td);
td->free_struct(td, struct_ptr, contents_only);
}
int
A_noc_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
A_noc_1_inherit_TYPE_descriptor(td);
return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
}
asn_dec_rval_t
A_noc_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) {
A_noc_1_inherit_TYPE_descriptor(td);
return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
}
asn_enc_rval_t
A_noc_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) {
A_noc_1_inherit_TYPE_descriptor(td);
return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
}
asn_dec_rval_t
A_noc_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) {
A_noc_1_inherit_TYPE_descriptor(td);
return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
}
asn_enc_rval_t
A_noc_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) {
A_noc_1_inherit_TYPE_descriptor(td);
return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
}
asn_dec_rval_t
A_noc_decode_oer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
asn_oer_constraints_t *constraints, void **structure, const void *buffer, size_t size) {
A_noc_1_inherit_TYPE_descriptor(td);
return td->oer_decoder(opt_codec_ctx, td, constraints, structure, buffer, size);
}
asn_enc_rval_t
A_noc_encode_oer(asn_TYPE_descriptor_t *td,
asn_oer_constraints_t *constraints,
void *structure, asn_app_consume_bytes_f *cb, void *app_key) {
A_noc_1_inherit_TYPE_descriptor(td);
return td->uper_encoder(td, constraints, structure, cb, app_key);
}
/*** <<< STAT-DEFS [A-noc] >>> ***/
static const ber_tlv_tag_t asn_DEF_A_noc_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
};
asn_TYPE_descriptor_t asn_DEF_A_noc = {
"A-noc",
"A-noc",
A_noc_free,
A_noc_print,
A_noc_constraint,
A_noc_decode_ber,
A_noc_encode_der,
A_noc_decode_xer,
A_noc_encode_xer,
A_noc_decode_oer,
A_noc_encode_oer,
0, 0, /* No PER support, use "-gen-PER" to enable */
0, /* Use generic outmost tag fetcher */
asn_DEF_A_noc_tags_1,
sizeof(asn_DEF_A_noc_tags_1)
/sizeof(asn_DEF_A_noc_tags_1[0]), /* 1 */
asn_DEF_A_noc_tags_1, /* Same as above */
sizeof(asn_DEF_A_noc_tags_1)
/sizeof(asn_DEF_A_noc_tags_1[0]), /* 1 */
0, /* No OER visible constraints */
0, /* No PER visible constraints */
0, 0, /* No members */
0 /* No specifics */
};
/*** <<< INCLUDES [B-vis] >>> ***/
#include <NativeInteger.h>
/*** <<< TYPE-DECLS [B-vis] >>> ***/
typedef long B_vis_t;
/*** <<< FUNC-DECLS [B-vis] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_B_vis;
asn_struct_free_f B_vis_free;
asn_struct_print_f B_vis_print;
asn_constr_check_f B_vis_constraint;
ber_type_decoder_f B_vis_decode_ber;
der_type_encoder_f B_vis_encode_der;
xer_type_decoder_f B_vis_decode_xer;
xer_type_encoder_f B_vis_encode_xer;
oer_type_decoder_f B_vis_decode_oer;
oer_type_encoder_f B_vis_encode_oer;
/*** <<< CODE [B-vis] >>> ***/
int
B_vis_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) {
long value;
if(!sptr) {
ASN__CTFAIL(app_key, td, sptr,
"%s: value not given (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
value = *(const long *)sptr;
if((value == 0)) {
/* Constraint check succeeded */
return 0;
} else {
ASN__CTFAIL(app_key, td, sptr,
"%s: constraint failed (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
}
/*
* This type is implemented using NativeInteger,
* so here we adjust the DEF accordingly.
*/
static void
B_vis_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->check_constraints = asn_DEF_NativeInteger.check_constraints;
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->uper_decoder = asn_DEF_NativeInteger.uper_decoder;
td->uper_encoder = asn_DEF_NativeInteger.uper_encoder;
td->oer_decoder = asn_DEF_NativeInteger.oer_decoder;
td->oer_encoder = asn_DEF_NativeInteger.oer_encoder;
if(!td->oer_constraints)
td->oer_constraints = asn_DEF_NativeInteger.oer_constraints;
if(!td->per_constraints)
td->per_constraints = asn_DEF_NativeInteger.per_constraints;
td->elements = asn_DEF_NativeInteger.elements;
td->elements_count = asn_DEF_NativeInteger.elements_count;
td->specifics = asn_DEF_NativeInteger.specifics;
}
void
B_vis_free(asn_TYPE_descriptor_t *td,
void *struct_ptr, int contents_only) {
B_vis_1_inherit_TYPE_descriptor(td);
td->free_struct(td, struct_ptr, contents_only);
}
int
B_vis_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
B_vis_1_inherit_TYPE_descriptor(td);
return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
}
asn_dec_rval_t
B_vis_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) {
B_vis_1_inherit_TYPE_descriptor(td);
return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
}
asn_enc_rval_t
B_vis_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) {
B_vis_1_inherit_TYPE_descriptor(td);
return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
}
asn_dec_rval_t
B_vis_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) {
B_vis_1_inherit_TYPE_descriptor(td);
return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
}
asn_enc_rval_t
B_vis_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) {
B_vis_1_inherit_TYPE_descriptor(td);
return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
}
asn_dec_rval_t
B_vis_decode_oer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
asn_oer_constraints_t *constraints, void **structure, const void *buffer, size_t size) {
B_vis_1_inherit_TYPE_descriptor(td);
return td->oer_decoder(opt_codec_ctx, td, constraints, structure, buffer, size);
}
asn_enc_rval_t
B_vis_encode_oer(asn_TYPE_descriptor_t *td,
asn_oer_constraints_t *constraints,
void *structure, asn_app_consume_bytes_f *cb, void *app_key) {
B_vis_1_inherit_TYPE_descriptor(td);
return td->uper_encoder(td, constraints, structure, cb, app_key);
}
/*** <<< CTDEFS [B-vis] >>> ***/
static asn_oer_constraints_t asn_OER_type_B_vis_constr_1 GCC_NOTUSED = {
{ AOC_HAS_LOWER_BOUND | AOC_HAS_UPPER_BOUND, 0, 0 } /* (0..0) */,
{ 0, 0, 0 }};
/*** <<< STAT-DEFS [B-vis] >>> ***/
static const ber_tlv_tag_t asn_DEF_B_vis_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
};
asn_TYPE_descriptor_t asn_DEF_B_vis = {
"B-vis",
"B-vis",
B_vis_free,
B_vis_print,
B_vis_constraint,
B_vis_decode_ber,
B_vis_encode_der,
B_vis_decode_xer,
B_vis_encode_xer,
B_vis_decode_oer,
B_vis_encode_oer,
0, 0, /* No PER support, use "-gen-PER" to enable */
0, /* Use generic outmost tag fetcher */
asn_DEF_B_vis_tags_1,
sizeof(asn_DEF_B_vis_tags_1)
/sizeof(asn_DEF_B_vis_tags_1[0]), /* 1 */
asn_DEF_B_vis_tags_1, /* Same as above */
sizeof(asn_DEF_B_vis_tags_1)
/sizeof(asn_DEF_B_vis_tags_1[0]), /* 1 */
&asn_OER_type_B_vis_constr_1,
0, /* No PER visible constraints */
0, 0, /* No members */
0 /* No specifics */
};
/*** <<< INCLUDES [C-vis] >>> ***/
#include <NativeInteger.h>
/*** <<< TYPE-DECLS [C-vis] >>> ***/
typedef long C_vis_t;
/*** <<< FUNC-DECLS [C-vis] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_C_vis;
asn_struct_free_f C_vis_free;
asn_struct_print_f C_vis_print;
asn_constr_check_f C_vis_constraint;
ber_type_decoder_f C_vis_decode_ber;
der_type_encoder_f C_vis_encode_der;
xer_type_decoder_f C_vis_decode_xer;
xer_type_encoder_f C_vis_encode_xer;
oer_type_decoder_f C_vis_decode_oer;
oer_type_encoder_f C_vis_encode_oer;
/*** <<< CODE [C-vis] >>> ***/
int
C_vis_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) {
long value;
if(!sptr) {
ASN__CTFAIL(app_key, td, sptr,
"%s: value not given (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
value = *(const long *)sptr;
if((value >= -1 && value <= 1)) {
/* Constraint check succeeded */
return 0;
} else {
ASN__CTFAIL(app_key, td, sptr,
"%s: constraint failed (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
}
/*
* This type is implemented using NativeInteger,
* so here we adjust the DEF accordingly.
*/
static void
C_vis_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->check_constraints = asn_DEF_NativeInteger.check_constraints;
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->uper_decoder = asn_DEF_NativeInteger.uper_decoder;
td->uper_encoder = asn_DEF_NativeInteger.uper_encoder;
td->oer_decoder = asn_DEF_NativeInteger.oer_decoder;
td->oer_encoder = asn_DEF_NativeInteger.oer_encoder;
if(!td->oer_constraints)
td->oer_constraints = asn_DEF_NativeInteger.oer_constraints;
if(!td->per_constraints)
td->per_constraints = asn_DEF_NativeInteger.per_constraints;
td->elements = asn_DEF_NativeInteger.elements;
td->elements_count = asn_DEF_NativeInteger.elements_count;
td->specifics = asn_DEF_NativeInteger.specifics;
}
void
C_vis_free(asn_TYPE_descriptor_t *td,
void *struct_ptr, int contents_only) {
C_vis_1_inherit_TYPE_descriptor(td);
td->free_struct(td, struct_ptr, contents_only);
}
int
C_vis_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
C_vis_1_inherit_TYPE_descriptor(td);
return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
}
asn_dec_rval_t
C_vis_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) {
C_vis_1_inherit_TYPE_descriptor(td);
return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
}
asn_enc_rval_t
C_vis_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) {
C_vis_1_inherit_TYPE_descriptor(td);
return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
}
asn_dec_rval_t
C_vis_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) {
C_vis_1_inherit_TYPE_descriptor(td);
return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
}
asn_enc_rval_t
C_vis_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) {
C_vis_1_inherit_TYPE_descriptor(td);
return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
}
asn_dec_rval_t
C_vis_decode_oer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
asn_oer_constraints_t *constraints, void **structure, const void *buffer, size_t size) {
C_vis_1_inherit_TYPE_descriptor(td);
return td->oer_decoder(opt_codec_ctx, td, constraints, structure, buffer, size);
}
asn_enc_rval_t
C_vis_encode_oer(asn_TYPE_descriptor_t *td,
asn_oer_constraints_t *constraints,
void *structure, asn_app_consume_bytes_f *cb, void *app_key) {
C_vis_1_inherit_TYPE_descriptor(td);
return td->uper_encoder(td, constraints, structure, cb, app_key);
}
/*** <<< CTDEFS [C-vis] >>> ***/
static asn_oer_constraints_t asn_OER_type_C_vis_constr_1 GCC_NOTUSED = {
{ AOC_HAS_LOWER_BOUND | AOC_HAS_UPPER_BOUND, -1, 1 } /* (-1..1) */,
{ 0, 0, 0 }};
/*** <<< STAT-DEFS [C-vis] >>> ***/
static const ber_tlv_tag_t asn_DEF_C_vis_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
};
asn_TYPE_descriptor_t asn_DEF_C_vis = {
"C-vis",
"C-vis",
C_vis_free,
C_vis_print,
C_vis_constraint,
C_vis_decode_ber,
C_vis_encode_der,
C_vis_decode_xer,
C_vis_encode_xer,
C_vis_decode_oer,
C_vis_encode_oer,
0, 0, /* No PER support, use "-gen-PER" to enable */
0, /* Use generic outmost tag fetcher */
asn_DEF_C_vis_tags_1,
sizeof(asn_DEF_C_vis_tags_1)
/sizeof(asn_DEF_C_vis_tags_1[0]), /* 1 */
asn_DEF_C_vis_tags_1, /* Same as above */
sizeof(asn_DEF_C_vis_tags_1)
/sizeof(asn_DEF_C_vis_tags_1[0]), /* 1 */
&asn_OER_type_C_vis_constr_1,
0, /* No PER visible constraints */
0, 0, /* No members */
0 /* No specifics */
};
/*** <<< INCLUDES [D-inv] >>> ***/
#include <NativeInteger.h>
/*** <<< TYPE-DECLS [D-inv] >>> ***/
typedef long D_inv_t;
/*** <<< FUNC-DECLS [D-inv] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_D_inv;
asn_struct_free_f D_inv_free;
asn_struct_print_f D_inv_print;
asn_constr_check_f D_inv_constraint;
ber_type_decoder_f D_inv_decode_ber;
der_type_encoder_f D_inv_encode_der;
xer_type_decoder_f D_inv_decode_xer;
xer_type_encoder_f D_inv_encode_xer;
oer_type_decoder_f D_inv_decode_oer;
oer_type_encoder_f D_inv_encode_oer;
/*** <<< CODE [D-inv] >>> ***/
int
D_inv_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) {
long value;
if(!sptr) {
ASN__CTFAIL(app_key, td, sptr,
"%s: value not given (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
value = *(const long *)sptr;
if((value >= 0 && value <= 10)) {
/* Constraint check succeeded */
return 0;
} else {
ASN__CTFAIL(app_key, td, sptr,
"%s: constraint failed (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
}
/*
* This type is implemented using NativeInteger,
* so here we adjust the DEF accordingly.
*/
static void
D_inv_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->check_constraints = asn_DEF_NativeInteger.check_constraints;
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->uper_decoder = asn_DEF_NativeInteger.uper_decoder;
td->uper_encoder = asn_DEF_NativeInteger.uper_encoder;
td->oer_decoder = asn_DEF_NativeInteger.oer_decoder;
td->oer_encoder = asn_DEF_NativeInteger.oer_encoder;
if(!td->oer_constraints)
td->oer_constraints = asn_DEF_NativeInteger.oer_constraints;
if(!td->per_constraints)
td->per_constraints = asn_DEF_NativeInteger.per_constraints;
td->elements = asn_DEF_NativeInteger.elements;
td->elements_count = asn_DEF_NativeInteger.elements_count;
td->specifics = asn_DEF_NativeInteger.specifics;
}
void
D_inv_free(asn_TYPE_descriptor_t *td,
void *struct_ptr, int contents_only) {
D_inv_1_inherit_TYPE_descriptor(td);
td->free_struct(td, struct_ptr, contents_only);
}
int
D_inv_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
D_inv_1_inherit_TYPE_descriptor(td);
return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
}
asn_dec_rval_t
D_inv_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) {
D_inv_1_inherit_TYPE_descriptor(td);
return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
}
asn_enc_rval_t
D_inv_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) {
D_inv_1_inherit_TYPE_descriptor(td);
return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
}
asn_dec_rval_t
D_inv_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) {
D_inv_1_inherit_TYPE_descriptor(td);
return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
}
asn_enc_rval_t
D_inv_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) {
D_inv_1_inherit_TYPE_descriptor(td);
return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
}
asn_dec_rval_t
D_inv_decode_oer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
asn_oer_constraints_t *constraints, void **structure, const void *buffer, size_t size) {
D_inv_1_inherit_TYPE_descriptor(td);
return td->oer_decoder(opt_codec_ctx, td, constraints, structure, buffer, size);
}
asn_enc_rval_t
D_inv_encode_oer(asn_TYPE_descriptor_t *td,
asn_oer_constraints_t *constraints,
void *structure, asn_app_consume_bytes_f *cb, void *app_key) {
D_inv_1_inherit_TYPE_descriptor(td);
return td->uper_encoder(td, constraints, structure, cb, app_key);
}
/*** <<< CTDEFS [D-inv] >>> ***/
static asn_oer_constraints_t asn_OER_type_D_inv_constr_1 GCC_NOTUSED = {
{ AOC_HAS_LOWER_BOUND | AOC_HAS_UPPER_BOUND, 0, 10 } /* (0..10,...) */,
{ 0, 0, 0 }};
/*** <<< STAT-DEFS [D-inv] >>> ***/
static const ber_tlv_tag_t asn_DEF_D_inv_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
};
asn_TYPE_descriptor_t asn_DEF_D_inv = {
"D-inv",
"D-inv",
D_inv_free,
D_inv_print,
D_inv_constraint,
D_inv_decode_ber,
D_inv_encode_der,
D_inv_decode_xer,
D_inv_encode_xer,
D_inv_decode_oer,
D_inv_encode_oer,
0, 0, /* No PER support, use "-gen-PER" to enable */
0, /* Use generic outmost tag fetcher */
asn_DEF_D_inv_tags_1,
sizeof(asn_DEF_D_inv_tags_1)
/sizeof(asn_DEF_D_inv_tags_1[0]), /* 1 */
asn_DEF_D_inv_tags_1, /* Same as above */
sizeof(asn_DEF_D_inv_tags_1)
/sizeof(asn_DEF_D_inv_tags_1[0]), /* 1 */
&asn_OER_type_D_inv_constr_1,
0, /* No PER visible constraints */
0, 0, /* No members */
0 /* No specifics */
};
/*** <<< INCLUDES [E-vis] >>> ***/
#include <NativeInteger.h>
/*** <<< TYPE-DECLS [E-vis] >>> ***/
typedef long E_vis_t;
/*** <<< FUNC-DECLS [E-vis] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_E_vis;
asn_struct_free_f E_vis_free;
asn_struct_print_f E_vis_print;
asn_constr_check_f E_vis_constraint;
ber_type_decoder_f E_vis_decode_ber;
der_type_encoder_f E_vis_encode_der;
xer_type_decoder_f E_vis_decode_xer;
xer_type_encoder_f E_vis_encode_xer;
oer_type_decoder_f E_vis_decode_oer;
oer_type_encoder_f E_vis_encode_oer;
/*** <<< CODE [E-vis] >>> ***/
int
E_vis_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) {
long value;
if(!sptr) {
ASN__CTFAIL(app_key, td, sptr,
"%s: value not given (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
value = *(const long *)sptr;
if((value >= 2 && value <= 5)) {
/* Constraint check succeeded */
return 0;
} else {
ASN__CTFAIL(app_key, td, sptr,
"%s: constraint failed (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
}
/*
* This type is implemented using NativeInteger,
* so here we adjust the DEF accordingly.
*/
static void
E_vis_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->check_constraints = asn_DEF_NativeInteger.check_constraints;
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->uper_decoder = asn_DEF_NativeInteger.uper_decoder;
td->uper_encoder = asn_DEF_NativeInteger.uper_encoder;
td->oer_decoder = asn_DEF_NativeInteger.oer_decoder;
td->oer_encoder = asn_DEF_NativeInteger.oer_encoder;
if(!td->oer_constraints)
td->oer_constraints = asn_DEF_NativeInteger.oer_constraints;
if(!td->per_constraints)
td->per_constraints = asn_DEF_NativeInteger.per_constraints;
td->elements = asn_DEF_NativeInteger.elements;
td->elements_count = asn_DEF_NativeInteger.elements_count;
td->specifics = asn_DEF_NativeInteger.specifics;
}
void
E_vis_free(asn_TYPE_descriptor_t *td,
void *struct_ptr, int contents_only) {
E_vis_1_inherit_TYPE_descriptor(td);
td->free_struct(td, struct_ptr, contents_only);
}
int
E_vis_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
E_vis_1_inherit_TYPE_descriptor(td);
return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
}
asn_dec_rval_t
E_vis_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) {
E_vis_1_inherit_TYPE_descriptor(td);
return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
}
asn_enc_rval_t
E_vis_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) {
E_vis_1_inherit_TYPE_descriptor(td);
return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
}
asn_dec_rval_t
E_vis_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) {
E_vis_1_inherit_TYPE_descriptor(td);
return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
}
asn_enc_rval_t
E_vis_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) {
E_vis_1_inherit_TYPE_descriptor(td);
return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
}
asn_dec_rval_t
E_vis_decode_oer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
asn_oer_constraints_t *constraints, void **structure, const void *buffer, size_t size) {
E_vis_1_inherit_TYPE_descriptor(td);
return td->oer_decoder(opt_codec_ctx, td, constraints, structure, buffer, size);
}
asn_enc_rval_t
E_vis_encode_oer(asn_TYPE_descriptor_t *td,
asn_oer_constraints_t *constraints,
void *structure, asn_app_consume_bytes_f *cb, void *app_key) {
E_vis_1_inherit_TYPE_descriptor(td);
return td->uper_encoder(td, constraints, structure, cb, app_key);
}
/*** <<< CTDEFS [E-vis] >>> ***/
static asn_oer_constraints_t asn_OER_type_E_vis_constr_1 GCC_NOTUSED = {
{ AOC_HAS_LOWER_BOUND | AOC_HAS_UPPER_BOUND, 2, 5 } /* (2..5) */,
{ 0, 0, 0 }};
/*** <<< STAT-DEFS [E-vis] >>> ***/
static const ber_tlv_tag_t asn_DEF_E_vis_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
};
asn_TYPE_descriptor_t asn_DEF_E_vis = {
"E-vis",
"E-vis",
E_vis_free,
E_vis_print,
E_vis_constraint,
E_vis_decode_ber,
E_vis_encode_der,
E_vis_decode_xer,
E_vis_encode_xer,
E_vis_decode_oer,
E_vis_encode_oer,
0, 0, /* No PER support, use "-gen-PER" to enable */
0, /* Use generic outmost tag fetcher */
asn_DEF_E_vis_tags_1,
sizeof(asn_DEF_E_vis_tags_1)
/sizeof(asn_DEF_E_vis_tags_1[0]), /* 1 */
asn_DEF_E_vis_tags_1, /* Same as above */
sizeof(asn_DEF_E_vis_tags_1)
/sizeof(asn_DEF_E_vis_tags_1[0]), /* 1 */
&asn_OER_type_E_vis_constr_1,
0, /* No PER visible constraints */
0, 0, /* No members */
0 /* No specifics */
};
/*** <<< INCLUDES [F-inv] >>> ***/
#include <NativeInteger.h>
/*** <<< TYPE-DECLS [F-inv] >>> ***/
typedef long F_inv_t;
/*** <<< FUNC-DECLS [F-inv] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_F_inv;
asn_struct_free_f F_inv_free;
asn_struct_print_f F_inv_print;
asn_constr_check_f F_inv_constraint;
ber_type_decoder_f F_inv_decode_ber;
der_type_encoder_f F_inv_encode_der;
xer_type_decoder_f F_inv_decode_xer;
xer_type_encoder_f F_inv_encode_xer;
oer_type_decoder_f F_inv_decode_oer;
oer_type_encoder_f F_inv_encode_oer;
/*** <<< CODE [F-inv] >>> ***/
int
F_inv_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) {
long value;
if(!sptr) {
ASN__CTFAIL(app_key, td, sptr,
"%s: value not given (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
value = *(const long *)sptr;
if((value >= 2 && value <= 5)) {
/* Constraint check succeeded */
return 0;
} else {
ASN__CTFAIL(app_key, td, sptr,
"%s: constraint failed (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
}
/*
* This type is implemented using NativeInteger,
* so here we adjust the DEF accordingly.
*/
static void
F_inv_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->check_constraints = asn_DEF_NativeInteger.check_constraints;
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->uper_decoder = asn_DEF_NativeInteger.uper_decoder;
td->uper_encoder = asn_DEF_NativeInteger.uper_encoder;
td->oer_decoder = asn_DEF_NativeInteger.oer_decoder;
td->oer_encoder = asn_DEF_NativeInteger.oer_encoder;
if(!td->oer_constraints)
td->oer_constraints = asn_DEF_NativeInteger.oer_constraints;
if(!td->per_constraints)
td->per_constraints = asn_DEF_NativeInteger.per_constraints;
td->elements = asn_DEF_NativeInteger.elements;
td->elements_count = asn_DEF_NativeInteger.elements_count;
td->specifics = asn_DEF_NativeInteger.specifics;
}
void
F_inv_free(asn_TYPE_descriptor_t *td,
void *struct_ptr, int contents_only) {
F_inv_1_inherit_TYPE_descriptor(td);
td->free_struct(td, struct_ptr, contents_only);
}
int
F_inv_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
F_inv_1_inherit_TYPE_descriptor(td);
return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
}
asn_dec_rval_t
F_inv_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) {
F_inv_1_inherit_TYPE_descriptor(td);
return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
}
asn_enc_rval_t
F_inv_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) {
F_inv_1_inherit_TYPE_descriptor(td);
return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
}
asn_dec_rval_t
F_inv_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) {
F_inv_1_inherit_TYPE_descriptor(td);
return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
}
asn_enc_rval_t
F_inv_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) {
F_inv_1_inherit_TYPE_descriptor(td);
return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
}
asn_dec_rval_t
F_inv_decode_oer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
asn_oer_constraints_t *constraints, void **structure, const void *buffer, size_t size) {
F_inv_1_inherit_TYPE_descriptor(td);
return td->oer_decoder(opt_codec_ctx, td, constraints, structure, buffer, size);
}
asn_enc_rval_t
F_inv_encode_oer(asn_TYPE_descriptor_t *td,
asn_oer_constraints_t *constraints,
void *structure, asn_app_consume_bytes_f *cb, void *app_key) {
F_inv_1_inherit_TYPE_descriptor(td);
return td->uper_encoder(td, constraints, structure, cb, app_key);
}
/*** <<< CTDEFS [F-inv] >>> ***/
static asn_oer_constraints_t asn_OER_type_F_inv_constr_1 GCC_NOTUSED = {
{ AOC_HAS_LOWER_BOUND | AOC_HAS_UPPER_BOUND, 2, 5 } /* (2..5,...) */,
{ 0, 0, 0 }};
/*** <<< STAT-DEFS [F-inv] >>> ***/
static const ber_tlv_tag_t asn_DEF_F_inv_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
};
asn_TYPE_descriptor_t asn_DEF_F_inv = {
"F-inv",
"F-inv",
F_inv_free,
F_inv_print,
F_inv_constraint,
F_inv_decode_ber,
F_inv_encode_der,
F_inv_decode_xer,
F_inv_encode_xer,
F_inv_decode_oer,
F_inv_encode_oer,
0, 0, /* No PER support, use "-gen-PER" to enable */
0, /* Use generic outmost tag fetcher */
asn_DEF_F_inv_tags_1,
sizeof(asn_DEF_F_inv_tags_1)
/sizeof(asn_DEF_F_inv_tags_1[0]), /* 1 */
asn_DEF_F_inv_tags_1, /* Same as above */
sizeof(asn_DEF_F_inv_tags_1)
/sizeof(asn_DEF_F_inv_tags_1[0]), /* 1 */
&asn_OER_type_F_inv_constr_1,
0, /* No PER visible constraints */
0, 0, /* No members */
0 /* No specifics */
};
/*** <<< INCLUDES [G-vis] >>> ***/
#include <NativeInteger.h>
/*** <<< TYPE-DECLS [G-vis] >>> ***/
typedef long G_vis_t;
/*** <<< FUNC-DECLS [G-vis] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_G_vis;
asn_struct_free_f G_vis_free;
asn_struct_print_f G_vis_print;
asn_constr_check_f G_vis_constraint;
ber_type_decoder_f G_vis_decode_ber;
der_type_encoder_f G_vis_encode_der;
xer_type_decoder_f G_vis_decode_xer;
xer_type_encoder_f G_vis_encode_xer;
oer_type_decoder_f G_vis_decode_oer;
oer_type_encoder_f G_vis_encode_oer;
/*** <<< CODE [G-vis] >>> ***/
int
G_vis_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) {
long value;
if(!sptr) {
ASN__CTFAIL(app_key, td, sptr,
"%s: value not given (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
value = *(const long *)sptr;
if((value == 3)) {
/* Constraint check succeeded */
return 0;
} else {
ASN__CTFAIL(app_key, td, sptr,
"%s: constraint failed (%s:%d)",
td->name, __FILE__, __LINE__);
return -1;
}
}
/*
* This type is implemented using NativeInteger,
* so here we adjust the DEF accordingly.
*/
static void
G_vis_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->check_constraints = asn_DEF_NativeInteger.check_constraints;
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->uper_decoder = asn_DEF_NativeInteger.uper_decoder;
td->uper_encoder = asn_DEF_NativeInteger.uper_encoder;
td->oer_decoder = asn_DEF_NativeInteger.oer_decoder;
td->oer_encoder = asn_DEF_NativeInteger.oer_encoder;
if(!td->oer_constraints)
td->oer_constraints = asn_DEF_NativeInteger.oer_constraints;
if(!td->per_constraints)
td->per_constraints = asn_DEF_NativeInteger.per_constraints;
td->elements = asn_DEF_NativeInteger.elements;
td->elements_count = asn_DEF_NativeInteger.elements_count;
td->specifics = asn_DEF_NativeInteger.specifics;
}
void
G_vis_free(asn_TYPE_descriptor_t *td,
void *struct_ptr, int contents_only) {
G_vis_1_inherit_TYPE_descriptor(td);
td->free_struct(td, struct_ptr, contents_only);
}
int
G_vis_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
G_vis_1_inherit_TYPE_descriptor(td);
return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
}
asn_dec_rval_t
G_vis_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) {
G_vis_1_inherit_TYPE_descriptor(td);
return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
}
asn_enc_rval_t
G_vis_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) {
G_vis_1_inherit_TYPE_descriptor(td);
return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
}
asn_dec_rval_t
G_vis_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) {
G_vis_1_inherit_TYPE_descriptor(td);
return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
}
asn_enc_rval_t
G_vis_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) {
G_vis_1_inherit_TYPE_descriptor(td);
return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
}
asn_dec_rval_t
G_vis_decode_oer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
asn_oer_constraints_t *constraints, void **structure, const void *buffer, size_t size) {
G_vis_1_inherit_TYPE_descriptor(td);
return td->oer_decoder(opt_codec_ctx, td, constraints, structure, buffer, size);
}
asn_enc_rval_t
G_vis_encode_oer(asn_TYPE_descriptor_t *td,
asn_oer_constraints_t *constraints,
void *structure, asn_app_consume_bytes_f *cb, void *app_key) {
G_vis_1_inherit_TYPE_descriptor(td);
return td->uper_encoder(td, constraints, structure, cb, app_key);
}
/*** <<< CTDEFS [G-vis] >>> ***/
static asn_oer_constraints_t asn_OER_type_G_vis_constr_1 GCC_NOTUSED = {
{ AOC_HAS_LOWER_BOUND | AOC_HAS_UPPER_BOUND, 3, 3 } /* (3..3) */,
{ 0, 0, 0 }};
/*** <<< STAT-DEFS [G-vis] >>> ***/
static const ber_tlv_tag_t asn_DEF_G_vis_tags_1[] = {
(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
};
asn_TYPE_descriptor_t asn_DEF_G_vis = {
"G-vis",
"G-vis",
G_vis_free,
G_vis_print,
G_vis_constraint,
G_vis_decode_ber,
G_vis_encode_der,
G_vis_decode_xer,
G_vis_encode_xer,
G_vis_decode_oer,
G_vis_encode_oer,
0, 0, /* No PER support, use "-gen-PER" to enable */
0, /* Use generic outmost tag fetcher */
asn_DEF_G_vis_tags_1,
sizeof(asn_DEF_G_vis_tags_1)
/sizeof(asn_DEF_G_vis_tags_1[0]), /* 1 */
asn_DEF_G_vis_tags_1, /* Same as above */
sizeof(asn_DEF_G_vis_tags_1)
/sizeof(asn_DEF_G_vis_tags_1[0]), /* 1 */
&asn_OER_type_G_vis_constr_1,
0, /* No PER visible constraints */
0, 0, /* No members */
0 /* No specifics */
};
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment