structure comparison functions

This commit is contained in:
Lev Walkin 2017-08-10 02:14:59 -07:00
parent 086ee9a355
commit cd2f48eb5a
119 changed files with 975 additions and 123 deletions

View File

@ -828,3 +828,12 @@ xer_whitespace_span(const void *chunk_buf, size_t chunk_size) {
(void)chunk_size;
return 0;
}
int
OCTET_STRING_compare(const asn_TYPE_descriptor_t *td, const void *a,
const void *b) {
(void)td;
(void)a;
(void)b;
return 0;
}

View File

@ -2829,6 +2829,7 @@ do { \
FUNCREF2(free);
FUNCREF2(print);
FUNCREF2(compare);
if (arg->flags & A1C_NO_CONSTRAINTS)
OUT("0,\t/* No check because of -fno-constraints */\n");
else

View File

@ -16,6 +16,7 @@ asn_TYPE_descriptor_t asn_DEF_ANY = {
"ANY",
OCTET_STRING_free,
OCTET_STRING_print,
OCTET_STRING_compare,
asn_generic_no_constraint,
OCTET_STRING_decode_ber,
OCTET_STRING_encode_der,

View File

@ -22,6 +22,7 @@ asn_TYPE_descriptor_t asn_DEF_BIT_STRING = {
"BIT_STRING",
OCTET_STRING_free, /* Implemented in terms of OCTET STRING */
BIT_STRING_print,
BIT_STRING_compare,
BIT_STRING_constraint,
OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */
OCTET_STRING_encode_der, /* Implemented in terms of OCTET STRING */
@ -200,3 +201,46 @@ BIT_STRING_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
return 0;
}
/*
* Lexicographically compare the common prefix of both strings,
* and if it is the same return -1 for the smallest string.
*/
int
BIT_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr,
const void *bptr) {
const BIT_STRING_t *a = aptr;
const BIT_STRING_t *b = bptr;
(void)td;
if(a && b) {
size_t common_prefix_size = a->size <= b->size ? a->size : b->size;
int ret = memcmp(a->buf, b->buf, common_prefix_size);
if(ret == 0) {
/* Figure out which string with equal prefixes is longer. */
if(a->size < b->size) {
return -1;
} else if(a->size > b->size) {
return 1;
} else {
/* Figure out how many unused bits */
if(a->bits_unused < b->bits_unused) {
return -1;
} else if(a->bits_unused > b->bits_unused) {
return 1;
} else {
return 0;
}
}
} else {
return ret;
}
} else if(!a && !b) {
return 0;
} else if(!a) {
return -1;
} else {
return 1;
}
}

View File

@ -24,6 +24,7 @@ extern asn_TYPE_descriptor_t asn_DEF_BIT_STRING;
extern asn_OCTET_STRING_specifics_t asn_SPC_BIT_STRING_specs;
asn_struct_print_f BIT_STRING_print; /* Human-readable output */
asn_struct_compare_f BIT_STRING_compare;
asn_constr_check_f BIT_STRING_constraint;
xer_type_encoder_f BIT_STRING_encode_xer;

View File

@ -28,6 +28,7 @@ asn_TYPE_descriptor_t asn_DEF_BMPString = {
"BMPString",
OCTET_STRING_free, /* Implemented in terms of OCTET STRING */
BMPString_print,
OCTET_STRING_compare,
asn_generic_no_constraint, /* No constraint by default */
OCTET_STRING_decode_ber,
OCTET_STRING_encode_der,

View File

@ -20,13 +20,14 @@ asn_struct_print_f BMPString_print; /* Human-readable output */
xer_type_decoder_f BMPString_decode_xer;
xer_type_encoder_f BMPString_encode_xer;
#define BMPString_free OCTET_STRING_free
#define BMPString_print BMPString_print
#define BMPString_constraint asn_generic_no_constraint
#define BMPString_decode_ber OCTET_STRING_decode_ber
#define BMPString_encode_der OCTET_STRING_encode_der
#define BMPString_decode_uper OCTET_STRING_decode_uper
#define BMPString_encode_uper OCTET_STRING_encode_uper
#define BMPString_free OCTET_STRING_free
#define BMPString_print BMPString_print
#define BMPString_compare OCTET_STRING_compare
#define BMPString_constraint asn_generic_no_constraint
#define BMPString_decode_ber OCTET_STRING_decode_ber
#define BMPString_encode_der OCTET_STRING_encode_der
#define BMPString_decode_uper OCTET_STRING_decode_uper
#define BMPString_encode_uper OCTET_STRING_encode_uper
#ifdef __cplusplus
}

View File

@ -17,6 +17,7 @@ asn_TYPE_descriptor_t asn_DEF_BOOLEAN = {
"BOOLEAN",
BOOLEAN_free,
BOOLEAN_print,
BOOLEAN_compare,
asn_generic_no_constraint,
BOOLEAN_decode_ber,
BOOLEAN_encode_der,
@ -296,3 +297,27 @@ BOOLEAN_encode_uper(asn_TYPE_descriptor_t *td,
ASN__ENCODED_OK(er);
}
int
BOOLEAN_compare(const asn_TYPE_descriptor_t *td, const void *aptr,
const void *bptr) {
const BOOLEAN_t *a = aptr;
const BOOLEAN_t *b = bptr;
(void)td;
if(a && b) {
if(*a == *b) {
return 0;
} else if(!*a) {
return -1;
} else {
return 1;
}
} else if(!a) {
return -1;
} else {
return 1;
}
}

View File

@ -22,6 +22,7 @@ extern asn_TYPE_descriptor_t asn_DEF_BOOLEAN;
asn_struct_free_f BOOLEAN_free;
asn_struct_print_f BOOLEAN_print;
asn_struct_compare_f BOOLEAN_compare;
ber_type_decoder_f BOOLEAN_decode_ber;
der_type_encoder_f BOOLEAN_encode_der;
xer_type_decoder_f BOOLEAN_decode_xer;

View File

@ -19,6 +19,7 @@ asn_TYPE_descriptor_t asn_DEF_ENUMERATED = {
"ENUMERATED",
ASN__PRIMITIVE_TYPE_free,
INTEGER_print, /* Implemented in terms of INTEGER */
INTEGER_compare, /* Implemented in terms of INTEGER */
asn_generic_no_constraint,
ber_decode_primitive,
INTEGER_encode_der, /* Implemented in terms of INTEGER */

View File

@ -20,6 +20,7 @@ per_type_encoder_f ENUMERATED_encode_uper;
#define ENUMERATED_free ASN__PRIMITIVE_TYPE_free
#define ENUMERATED_print INTEGER_print
#define ENUMERATED_compare INTEGER_compare
#define ENUMERATED_constraint asn_generic_no_constraint
#define ENUMERATED_decode_ber ber_decode_primitive
#define ENUMERATED_encode_der INTEGER_encode_der

View File

@ -17,6 +17,7 @@ asn_TYPE_descriptor_t asn_DEF_GeneralString = {
"GeneralString",
OCTET_STRING_free,
OCTET_STRING_print, /* non-ascii string */
OCTET_STRING_compare,
asn_generic_unknown_constraint,
OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */
OCTET_STRING_encode_der,

View File

@ -15,15 +15,16 @@ typedef OCTET_STRING_t GeneralString_t; /* Implemented via OCTET STRING */
extern asn_TYPE_descriptor_t asn_DEF_GeneralString;
#define GeneralString_free OCTET_STRING_free
#define GeneralString_print OCTET_STRING_print
#define GeneralString_constraint asn_generic_unknown_constraint
#define GeneralString_decode_ber OCTET_STRING_decode_ber
#define GeneralString_encode_der OCTET_STRING_encode_der
#define GeneralString_decode_xer OCTET_STRING_decode_xer_hex
#define GeneralString_encode_xer OCTET_STRING_encode_xer
#define GeneralString_decode_uper OCTET_STRING_decode_uper
#define GeneralString_encode_uper OCTET_STRING_encode_uper
#define GeneralString_free OCTET_STRING_free
#define GeneralString_print OCTET_STRING_print
#define GeneralString_compare OCTET_STRING_compare
#define GeneralString_constraint asn_generic_unknown_constraint
#define GeneralString_decode_ber OCTET_STRING_decode_ber
#define GeneralString_encode_der OCTET_STRING_encode_der
#define GeneralString_decode_xer OCTET_STRING_decode_xer_hex
#define GeneralString_encode_xer OCTET_STRING_encode_xer
#define GeneralString_decode_uper OCTET_STRING_decode_uper
#define GeneralString_encode_uper OCTET_STRING_encode_uper
#ifdef __cplusplus
}

View File

@ -176,6 +176,7 @@ asn_TYPE_descriptor_t asn_DEF_GeneralizedTime = {
"GeneralizedTime",
OCTET_STRING_free,
GeneralizedTime_print,
OCTET_STRING_compare, /* Does not normalize time zones! */
GeneralizedTime_constraint, /* Check validity of time */
OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */
GeneralizedTime_encode_der,

View File

@ -17,6 +17,7 @@ asn_TYPE_descriptor_t asn_DEF_GraphicString = {
"GraphicString",
OCTET_STRING_free,
OCTET_STRING_print, /* non-ascii string */
OCTET_STRING_compare,
asn_generic_unknown_constraint,
OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */
OCTET_STRING_encode_der,

View File

@ -15,15 +15,16 @@ typedef OCTET_STRING_t GraphicString_t; /* Implemented via OCTET STRING */
extern asn_TYPE_descriptor_t asn_DEF_GraphicString;
#define GraphicString_free OCTET_STRING_free
#define GraphicString_print OCTET_STRING_print
#define GraphicString_constraint asn_generic_unknown_constraint
#define GraphicString_decode_ber OCTET_STRING_decode_ber
#define GraphicString_encode_der OCTET_STRING_encode_der
#define GraphicString_decode_xer OCTET_STRING_decode_xer_hex
#define GraphicString_encode_xer OCTET_STRING_encode_xer
#define GraphicString_decode_uper OCTET_STRING_decode_uper
#define GraphicString_encode_uper OCTET_STRING_encode_uper
#define GraphicString_free OCTET_STRING_free
#define GraphicString_print OCTET_STRING_print
#define GraphicString_compare OCTET_STRING_compare
#define GraphicString_constraint asn_generic_unknown_constraint
#define GraphicString_decode_ber OCTET_STRING_decode_ber
#define GraphicString_encode_der OCTET_STRING_encode_der
#define GraphicString_decode_xer OCTET_STRING_decode_xer_hex
#define GraphicString_encode_xer OCTET_STRING_encode_xer
#define GraphicString_decode_uper OCTET_STRING_decode_uper
#define GraphicString_encode_uper OCTET_STRING_encode_uper
#ifdef __cplusplus
}

View File

@ -22,6 +22,7 @@ asn_TYPE_descriptor_t asn_DEF_IA5String = {
"IA5String",
OCTET_STRING_free,
OCTET_STRING_print_utf8, /* ASCII subset */
OCTET_STRING_compare,
IA5String_constraint, /* Constraint on the alphabet */
OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */
OCTET_STRING_encode_der,

View File

@ -20,14 +20,15 @@ extern asn_TYPE_descriptor_t asn_DEF_IA5String;
asn_constr_check_f IA5String_constraint;
#define IA5String_free OCTET_STRING_free
#define IA5String_print OCTET_STRING_print_utf8
#define IA5String_decode_ber OCTET_STRING_decode_ber
#define IA5String_encode_der OCTET_STRING_encode_der
#define IA5String_decode_xer OCTET_STRING_decode_xer_utf8
#define IA5String_encode_xer OCTET_STRING_encode_xer_utf8
#define IA5String_decode_uper OCTET_STRING_decode_uper
#define IA5String_encode_uper OCTET_STRING_encode_uper
#define IA5String_free OCTET_STRING_free
#define IA5String_print OCTET_STRING_print_utf8
#define IA5String_compare OCTET_STRING_compare
#define IA5String_decode_ber OCTET_STRING_decode_ber
#define IA5String_encode_der OCTET_STRING_encode_der
#define IA5String_decode_xer OCTET_STRING_decode_xer_utf8
#define IA5String_encode_xer OCTET_STRING_encode_xer_utf8
#define IA5String_decode_uper OCTET_STRING_decode_uper
#define IA5String_encode_uper OCTET_STRING_encode_uper
#ifdef __cplusplus
}

View File

@ -19,6 +19,7 @@ asn_TYPE_descriptor_t asn_DEF_INTEGER = {
"INTEGER",
INTEGER_free,
INTEGER_print,
INTEGER_compare,
asn_generic_no_constraint,
ber_decode_primitive,
INTEGER_encode_der,
@ -1084,3 +1085,46 @@ asn_strtol_lim(const char *str, const char **end, long *lp) {
return ASN_STRTOX_ERROR_INVAL;
}
int
INTEGER_compare(const asn_TYPE_descriptor_t *td, const void *aptr,
const void *bptr) {
const INTEGER_t *a = aptr;
const INTEGER_t *b = bptr;
(void)td;
if(a && b) {
if(a->size && b->size) {
int sign_a = (a->buf[0] & 0x80) ? -1 : 1;
int sign_b = (b->buf[0] & 0x80) ? -1 : 1;
if(sign_a < sign_b) return -1;
if(sign_a > sign_b) return 1;
/* The shortest integer wins, unless comparing negatives */
if(a->size < b->size) {
return -1 * sign_a;
} else if(a->size > b->size) {
return 1 * sign_b;
}
return sign_a * memcmp(a->buf, b->buf, a->size);
} else if(a->size) {
int sign = (a->buf[0] & 0x80) ? -1 : 1;
return (1) * sign;
} else if(b->size) {
int sign = (a->buf[0] & 0x80) ? -1 : 1;
return (-1) * sign;
} else {
return 0;
}
} else if(!a && !b) {
return 0;
} else if(!a) {
return -1;
} else {
return 1;
}
}

View File

@ -36,6 +36,7 @@ typedef const struct asn_INTEGER_specifics_s {
#define INTEGER_free ASN__PRIMITIVE_TYPE_free
asn_struct_print_f INTEGER_print;
asn_struct_compare_f INTEGER_compare;
ber_type_decoder_f INTEGER_decode_ber;
der_type_encoder_f INTEGER_encode_der;
xer_type_decoder_f INTEGER_decode_xer;

View File

@ -22,6 +22,7 @@ asn_TYPE_descriptor_t asn_DEF_ISO646String = {
"ISO646String",
OCTET_STRING_free,
OCTET_STRING_print_utf8, /* ASCII subset */
OCTET_STRING_compare,
VisibleString_constraint,
OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */
OCTET_STRING_encode_der,

View File

@ -16,15 +16,16 @@ typedef VisibleString_t ISO646String_t; /* Implemented using VisibleString */
extern asn_TYPE_descriptor_t asn_DEF_ISO646String;
#define ISO646String_free OCTET_STRING_free
#define ISO646String_print OCTET_STRING_print_utf8
#define ISO646String_constraint VisibleString_constraint
#define ISO646String_decode_ber OCTET_STRING_decode_ber
#define ISO646String_encode_der OCTET_STRING_encode_der
#define ISO646String_decode_xer OCTET_STRING_decode_xer_utf8
#define ISO646String_encode_xer OCTET_STRING_encode_xer_utf8
#define ISO646String_decode_uper OCTET_STRING_decode_uper
#define ISO646String_encode_uper OCTET_STRING_encode_uper
#define ISO646String_free OCTET_STRING_free
#define ISO646String_print OCTET_STRING_print_utf8
#define ISO646String_compare OCTET_STRING_compare
#define ISO646String_constraint VisibleString_constraint
#define ISO646String_decode_ber OCTET_STRING_decode_ber
#define ISO646String_encode_der OCTET_STRING_encode_der
#define ISO646String_decode_xer OCTET_STRING_decode_xer_utf8
#define ISO646String_encode_xer OCTET_STRING_encode_xer_utf8
#define ISO646String_decode_uper OCTET_STRING_decode_uper
#define ISO646String_encode_uper OCTET_STRING_encode_uper
#ifdef __cplusplus
}

View File

@ -18,6 +18,7 @@ asn_TYPE_descriptor_t asn_DEF_NULL = {
"NULL",
BOOLEAN_free,
NULL_print,
NULL_compare,
asn_generic_no_constraint,
BOOLEAN_decode_ber, /* Implemented in terms of BOOLEAN */
NULL_encode_der, /* Special handling of DER encoding */
@ -107,6 +108,14 @@ NULL_decode_xer(asn_codec_ctx_t *opt_codec_ctx,
NULL__xer_body_decode);
}
int
NULL_compare(const asn_TYPE_descriptor_t *td, const void *a, const void *b) {
(void)td;
(void)a;
(void)b;
return 0;
}
int
NULL_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
asn_app_consume_bytes_f *cb, void *app_key) {

View File

@ -21,6 +21,7 @@ typedef int NULL_t;
extern asn_TYPE_descriptor_t asn_DEF_NULL;
asn_struct_print_f NULL_print;
asn_struct_compare_f NULL_compare;
der_type_encoder_f NULL_encode_der;
xer_type_decoder_f NULL_decode_xer;
xer_type_encoder_f NULL_encode_xer;

View File

@ -23,6 +23,7 @@ asn_TYPE_descriptor_t asn_DEF_NativeEnumerated = {
"ENUMERATED",
NativeInteger_free,
NativeInteger_print,
NativeInteger_compare,
asn_generic_no_constraint,
NativeInteger_decode_ber,
NativeInteger_encode_der,

View File

@ -27,6 +27,7 @@ per_type_encoder_f NativeEnumerated_encode_uper;
#define NativeEnumerated_free NativeInteger_free
#define NativeEnumerated_print NativeInteger_print
#define NativeEnumerated_compare NativeInteger_compare
#define NativeEnumerated_constraint asn_generic_no_constraint
#define NativeEnumerated_decode_ber NativeInteger_decode_ber
#define NativeEnumerated_encode_der NativeInteger_encode_der

View File

@ -24,6 +24,7 @@ asn_TYPE_descriptor_t asn_DEF_NativeInteger = {
"INTEGER",
NativeInteger_free,
NativeInteger_print,
NativeInteger_compare,
asn_generic_no_constraint,
NativeInteger_decode_ber,
NativeInteger_encode_der,
@ -348,3 +349,37 @@ NativeInteger_free(asn_TYPE_descriptor_t *td, void *ptr, int contents_only) {
}
}
int
NativeInteger_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr) {
(void)td;
if(aptr && bptr) {
const asn_INTEGER_specifics_t *specs =
(const asn_INTEGER_specifics_t *)td->specifics;
if(specs->field_unsigned) {
const unsigned long *a = aptr;
const unsigned long *b = bptr;
if(*a < *b) {
return -1;
} else if(*a > *b) {
return 1;
} else {
return 1;
}
} else {
const long *a = aptr;
const long *b = bptr;
if(*a < *b) {
return -1;
} else if(*a > *b) {
return 1;
} else {
return 1;
}
}
} else if(!aptr) {
return -1;
} else {
return 1;
}
}

View File

@ -23,6 +23,7 @@ extern asn_TYPE_descriptor_t asn_DEF_NativeInteger;
asn_struct_free_f NativeInteger_free;
asn_struct_print_f NativeInteger_print;
asn_struct_compare_f NativeInteger_compare;
ber_type_decoder_f NativeInteger_decode_ber;
der_type_encoder_f NativeInteger_encode_der;
xer_type_decoder_f NativeInteger_decode_xer;

View File

@ -13,6 +13,7 @@
#include <NativeReal.h>
#include <REAL.h>
#include <OCTET_STRING.h>
#include <math.h>
/*
* NativeReal basic type description.
@ -25,6 +26,7 @@ asn_TYPE_descriptor_t asn_DEF_NativeReal = {
"REAL",
NativeReal_free,
NativeReal_print,
NativeReal_compare,
asn_generic_no_constraint,
NativeReal_decode_ber,
NativeReal_encode_der,
@ -341,6 +343,39 @@ NativeReal_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
return (REAL__dump(*Dbl, 0, cb, app_key) < 0) ? -1 : 0;
}
int
NativeReal_compare(const asn_TYPE_descriptor_t *td, const void *aptr,
const void *bptr) {
const double *a = aptr;
const double *b = bptr;
(void)td;
if(a && b) {
/* NaN sorted above everything else */
if(isnan(*a)) {
if(isnan(*b)) {
return 0;
} else {
return -1;
}
} else if(isnan(*b)) {
return 1;
}
/* Value comparison. */
if(*a < *b) {
return -1;
} else if(*a > *b) {
return 1;
} else {
return 0;
}
} else if(!a) {
return -1;
} else {
return 1;
}
}
void
NativeReal_free(asn_TYPE_descriptor_t *td, void *ptr, int contents_only) {

View File

@ -21,6 +21,7 @@ extern asn_TYPE_descriptor_t asn_DEF_NativeReal;
asn_struct_free_f NativeReal_free;
asn_struct_print_f NativeReal_print;
asn_struct_compare_f NativeReal_compare;
ber_type_decoder_f NativeReal_decode_ber;
der_type_encoder_f NativeReal_encode_der;
xer_type_decoder_f NativeReal_decode_xer;

View File

@ -42,6 +42,7 @@ asn_TYPE_descriptor_t asn_DEF_NumericString = {
"NumericString",
OCTET_STRING_free,
OCTET_STRING_print_utf8, /* ASCII subset */
OCTET_STRING_compare,
NumericString_constraint,
OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */
OCTET_STRING_encode_der,

View File

@ -17,14 +17,15 @@ extern asn_TYPE_descriptor_t asn_DEF_NumericString;
asn_constr_check_f NumericString_constraint;
#define NumericString_free OCTET_STRING_free
#define NumericString_print OCTET_STRING_print_utf8
#define NumericString_decode_ber OCTET_STRING_decode_ber
#define NumericString_encode_der OCTET_STRING_encode_der
#define NumericString_decode_xer OCTET_STRING_decode_xer_utf8
#define NumericString_encode_xer OCTET_STRING_encode_xer_utf8
#define NumericString_decode_uper OCTET_STRING_decode_uper
#define NumericString_encode_uper OCTET_STRING_encode_uper
#define NumericString_free OCTET_STRING_free
#define NumericString_print OCTET_STRING_print_utf8
#define NumericString_compare OCTET_STRING_compare
#define NumericString_decode_ber OCTET_STRING_decode_ber
#define NumericString_encode_der OCTET_STRING_encode_der
#define NumericString_decode_xer OCTET_STRING_decode_xer_utf8
#define NumericString_encode_xer OCTET_STRING_encode_xer_utf8
#define NumericString_decode_uper OCTET_STRING_decode_uper
#define NumericString_encode_uper OCTET_STRING_encode_uper
#ifdef __cplusplus
}

View File

@ -20,6 +20,7 @@ asn_TYPE_descriptor_t asn_DEF_OBJECT_IDENTIFIER = {
"OBJECT_IDENTIFIER",
ASN__PRIMITIVE_TYPE_free,
OBJECT_IDENTIFIER_print,
OCTET_STRING_compare, /* Implemented in terms of a string comparison */
OBJECT_IDENTIFIER_constraint,
ber_decode_primitive,
der_encode_primitive,

View File

@ -28,7 +28,8 @@ asn_TYPE_descriptor_t asn_DEF_OCTET_STRING = {
"OCTET STRING", /* Canonical name */
"OCTET_STRING", /* XML tag name */
OCTET_STRING_free,
OCTET_STRING_print, /* non-ascii stuff, generally */
OCTET_STRING_print, /* OCTET STRING generally means a non-ascii sequence */
OCTET_STRING_compare,
asn_generic_no_constraint,
OCTET_STRING_decode_ber,
OCTET_STRING_encode_der,
@ -1820,3 +1821,40 @@ OCTET_STRING_new_fromBuf(asn_TYPE_descriptor_t *td, const char *str, int len) {
return st;
}
/*
* Lexicographically compare the common prefix of both strings,
* and if it is the same return -1 for the smallest string.
*/
int
OCTET_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr,
const void *bptr) {
const OCTET_STRING_t *a = aptr;
const OCTET_STRING_t *b = bptr;
(void)td;
if(a && b) {
size_t common_prefix_size = a->size <= b->size ? a->size : b->size;
int ret = memcmp(a->buf, b->buf, common_prefix_size);
if(ret == 0) {
/* Figure out which string with equal prefixes is longer. */
if(a->size < b->size) {
return -1;
} else if(a->size > b->size) {
return 1;
} else {
return 0;
}
} else {
return ret;
}
} else if(!a && !b) {
return 0;
} else if(!a) {
return -1;
} else {
return 1;
}
}

View File

@ -23,6 +23,7 @@ extern asn_TYPE_descriptor_t asn_DEF_OCTET_STRING;
asn_struct_free_f OCTET_STRING_free;
asn_struct_print_f OCTET_STRING_print;
asn_struct_print_f OCTET_STRING_print_utf8;
asn_struct_compare_f OCTET_STRING_compare;
ber_type_decoder_f OCTET_STRING_decode_ber;
der_type_encoder_f OCTET_STRING_encode_der;
xer_type_decoder_f OCTET_STRING_decode_xer_hex; /* Hexadecimal */

View File

@ -17,6 +17,7 @@ asn_TYPE_descriptor_t asn_DEF_ObjectDescriptor = {
"ObjectDescriptor",
OCTET_STRING_free,
OCTET_STRING_print_utf8, /* Treat as ASCII subset (it's not) */
OCTET_STRING_compare,
asn_generic_unknown_constraint,
OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */
OCTET_STRING_encode_der,

View File

@ -52,6 +52,7 @@ asn_TYPE_descriptor_t asn_DEF_PrintableString = {
"PrintableString",
OCTET_STRING_free,
OCTET_STRING_print_utf8, /* ASCII subset */
OCTET_STRING_compare,
PrintableString_constraint,
OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */
OCTET_STRING_encode_der,

View File

@ -17,14 +17,15 @@ extern asn_TYPE_descriptor_t asn_DEF_PrintableString;
asn_constr_check_f PrintableString_constraint;
#define PrintableString_free OCTET_STRING_free
#define PrintableString_print OCTET_STRING_print_utf8
#define PrintableString_decode_ber OCTET_STRING_decode_ber
#define PrintableString_encode_der OCTET_STRING_encode_der
#define PrintableString_decode_xer OCTET_STRING_decode_xer_utf8
#define PrintableString_encode_xer OCTET_STRING_encode_xer_utf8
#define PrintableString_decode_uper OCTET_STRING_decode_uper
#define PrintableString_encode_uper OCTET_STRING_encode_uper
#define PrintableString_free OCTET_STRING_free
#define PrintableString_print OCTET_STRING_print_utf8
#define PrintableString_compare OCTET_STRING_compare
#define PrintableString_decode_ber OCTET_STRING_decode_ber
#define PrintableString_encode_der OCTET_STRING_encode_der
#define PrintableString_decode_xer OCTET_STRING_decode_xer_utf8
#define PrintableString_encode_xer OCTET_STRING_encode_xer_utf8
#define PrintableString_decode_uper OCTET_STRING_decode_uper
#define PrintableString_encode_uper OCTET_STRING_encode_uper
#ifdef __cplusplus
}

View File

@ -42,38 +42,40 @@ static const ber_tlv_tag_t asn_DEF_REAL_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (9 << 2))
};
asn_TYPE_descriptor_t asn_DEF_REAL = {
"REAL",
"REAL",
ASN__PRIMITIVE_TYPE_free,
REAL_print,
asn_generic_no_constraint,
ber_decode_primitive,
der_encode_primitive,
REAL_decode_xer,
REAL_encode_xer,
"REAL",
"REAL",
ASN__PRIMITIVE_TYPE_free,
REAL_print,
REAL_compare,
asn_generic_no_constraint,
ber_decode_primitive,
der_encode_primitive,
REAL_decode_xer,
REAL_encode_xer,
#ifdef ASN_DISABLE_OER_SUPPORT
0,
0,
0,
0,
#else
0,
0,
0,
0,
#endif /* ASN_DISABLE_OER_SUPPORT */
#ifdef ASN_DISABLE_PER_SUPPORT
0,
0,
0,
0,
#else
REAL_decode_uper,
REAL_encode_uper,
REAL_decode_uper,
REAL_encode_uper,
#endif /* ASN_DISABLE_PER_SUPPORT */
0, /* Use generic outmost tag fetcher */
asn_DEF_REAL_tags,
sizeof(asn_DEF_REAL_tags) / sizeof(asn_DEF_REAL_tags[0]),
asn_DEF_REAL_tags, /* Same as above */
sizeof(asn_DEF_REAL_tags) / sizeof(asn_DEF_REAL_tags[0]),
0, /* No OER visible constraints */
0, /* No PER visible constraints */
0, 0, /* No members */
0 /* No specifics */
0, /* Use generic outmost tag fetcher */
asn_DEF_REAL_tags,
sizeof(asn_DEF_REAL_tags) / sizeof(asn_DEF_REAL_tags[0]),
asn_DEF_REAL_tags, /* Same as above */
sizeof(asn_DEF_REAL_tags) / sizeof(asn_DEF_REAL_tags[0]),
0, /* No OER visible constraints */
0, /* No PER visible constraints */
0,
0, /* No members */
0 /* No specifics */
};
typedef enum specialRealValue {
@ -292,6 +294,49 @@ REAL_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
return (ret < 0) ? -1 : 0;
}
int
REAL_compare(const asn_TYPE_descriptor_t *td, const void *aptr,
const void *bptr) {
const REAL_t *a = aptr;
const REAL_t *b = bptr;
(void)td;
if(a && b) {
double adbl, bdbl;
int ra, rb;
ra = asn_REAL2double(a, &adbl);
rb = asn_REAL2double(b, &bdbl);
if(ra == 0 && rb == 0) {
if(isnan(adbl)) {
if(isnan(bdbl)) {
return 0;
} else {
return -1;
}
} else if(isnan(bdbl)) {
return 1;
}
/* Value comparison. */
if(adbl < bdbl) {
return -1;
} else if(adbl > bdbl) {
return 1;
} else {
return 0;
}
} else if(ra) {
return -1;
} else {
return 1;
}
} else if(!a) {
return -1;
} else {
return 1;
}
}
asn_enc_rval_t
REAL_encode_xer(asn_TYPE_descriptor_t *td, void *sptr,
int ilevel, enum xer_encoder_flags_e flags,

View File

@ -17,6 +17,7 @@ typedef ASN__PRIMITIVE_TYPE_t REAL_t;
extern asn_TYPE_descriptor_t asn_DEF_REAL;
asn_struct_print_f REAL_print;
asn_struct_compare_f REAL_compare;
xer_type_decoder_f REAL_decode_xer;
xer_type_encoder_f REAL_encode_xer;
per_type_decoder_f REAL_decode_uper;

View File

@ -21,6 +21,7 @@ asn_TYPE_descriptor_t asn_DEF_RELATIVE_OID = {
"RELATIVE_OID",
ASN__PRIMITIVE_TYPE_free,
RELATIVE_OID_print,
OCTET_STRING_compare, /* Implemented in terms of opaque comparison */
asn_generic_no_constraint,
ber_decode_primitive,
der_encode_primitive,

View File

@ -17,6 +17,7 @@ asn_TYPE_descriptor_t asn_DEF_T61String = {
"T61String",
OCTET_STRING_free,
OCTET_STRING_print, /* non-ascii string */
OCTET_STRING_compare,
asn_generic_unknown_constraint,
OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */
OCTET_STRING_encode_der,

View File

@ -15,15 +15,16 @@ typedef OCTET_STRING_t T61String_t; /* Implemented via OCTET STRING */
extern asn_TYPE_descriptor_t asn_DEF_T61String;
#define T61String_free OCTET_STRING_free
#define T61String_print OCTET_STRING_print
#define T61String_constraint asn_generic_unknown_constraint
#define T61String_decode_ber OCTET_STRING_decode_ber
#define T61String_encode_der OCTET_STRING_encode_der
#define T61String_decode_xer OCTET_STRING_decode_xer_hex
#define T61String_encode_xer OCTET_STRING_encode_xer
#define T61String_decode_uper OCTET_STRING_decode_uper
#define T61String_encode_uper OCTET_STRING_encode_uper
#define T61String_free OCTET_STRING_free
#define T61String_print OCTET_STRING_print
#define T61String_compare OCTET_STRING_compare
#define T61String_constraint asn_generic_unknown_constraint
#define T61String_decode_ber OCTET_STRING_decode_ber
#define T61String_encode_der OCTET_STRING_encode_der
#define T61String_decode_xer OCTET_STRING_decode_xer_hex
#define T61String_encode_xer OCTET_STRING_encode_xer
#define T61String_decode_uper OCTET_STRING_decode_uper
#define T61String_encode_uper OCTET_STRING_encode_uper
#ifdef __cplusplus
}

View File

@ -17,6 +17,7 @@ asn_TYPE_descriptor_t asn_DEF_TeletexString = {
"TeletexString",
OCTET_STRING_free,
OCTET_STRING_print, /* non-ascii string */
OCTET_STRING_compare,
asn_generic_unknown_constraint,
OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */
OCTET_STRING_encode_der,

View File

@ -15,15 +15,16 @@ typedef OCTET_STRING_t TeletexString_t; /* Implemented via OCTET STRING */
extern asn_TYPE_descriptor_t asn_DEF_TeletexString;
#define TeletexString_free OCTET_STRING_free
#define TeletexString_print OCTET_STRING_print
#define TeletexString_constraint asn_generic_unknown_constraint
#define TeletexString_decode_ber OCTET_STRING_decode_ber
#define TeletexString_encode_der OCTET_STRING_encode_der
#define TeletexString_decode_xer OCTET_STRING_decode_xer_hex
#define TeletexString_encode_xer OCTET_STRING_encode_xer
#define TeletexString_decode_uper OCTET_STRING_decode_uper
#define TeletexString_encode_uper OCTET_STRING_encode_uper
#define TeletexString_free OCTET_STRING_free
#define TeletexString_print OCTET_STRING_print
#define TeletexString_compare OCTET_STRING_compare
#define TeletexString_constraint asn_generic_unknown_constraint
#define TeletexString_decode_ber OCTET_STRING_decode_ber
#define TeletexString_encode_der OCTET_STRING_encode_der
#define TeletexString_decode_xer OCTET_STRING_decode_xer_hex
#define TeletexString_encode_xer OCTET_STRING_encode_xer
#define TeletexString_decode_uper OCTET_STRING_decode_uper
#define TeletexString_encode_uper OCTET_STRING_encode_uper
#ifdef __cplusplus
}

View File

@ -33,6 +33,7 @@ asn_TYPE_descriptor_t asn_DEF_UTCTime = {
"UTCTime",
OCTET_STRING_free,
UTCTime_print,
OCTET_STRING_compare, /* Does not deal with time zones. */
UTCTime_constraint,
OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */
OCTET_STRING_encode_der, /* Implemented in terms of OCTET STRING */

View File

@ -18,6 +18,7 @@ asn_TYPE_descriptor_t asn_DEF_UTF8String = {
"UTF8String",
OCTET_STRING_free,
UTF8String_print,
OCTET_STRING_compare,
UTF8String_constraint, /* Check for invalid codes, etc. */
OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */
OCTET_STRING_encode_der,

View File

@ -19,6 +19,7 @@ asn_struct_print_f UTF8String_print;
asn_constr_check_f UTF8String_constraint;
#define UTF8String_free OCTET_STRING_free
#define UTF8String_compare OCTET_STRING_compare
#define UTF8String_constraint UTF8String_constraint
#define UTF8String_decode_ber OCTET_STRING_decode_ber
#define UTF8String_encode_der OCTET_STRING_encode_der

View File

@ -28,6 +28,7 @@ asn_TYPE_descriptor_t asn_DEF_UniversalString = {
"UniversalString",
OCTET_STRING_free,
UniversalString_print, /* Convert into UTF8 and print */
OCTET_STRING_compare,
asn_generic_no_constraint,
OCTET_STRING_decode_ber,
OCTET_STRING_encode_der,

View File

@ -20,6 +20,13 @@ asn_struct_print_f UniversalString_print; /* Human-readable output */
xer_type_decoder_f UniversalString_decode_xer;
xer_type_encoder_f UniversalString_encode_xer;
#define UniversalString_free OCTET_STRING_free
#define UniversalString_compare OCTET_STRING_compare
#define UniversalString_decode_ber OCTET_STRING_decode_ber
#define UniversalString_encode_der OCTET_STRING_encode_der
#define UniversalString_decode_uper OCTET_STRING_decode_uper
#define UniversalString_encode_uper OCTET_STRING_encode_uper
#ifdef __cplusplus
}
#endif

View File

@ -17,6 +17,7 @@ asn_TYPE_descriptor_t asn_DEF_VideotexString = {
"VideotexString",
OCTET_STRING_free,
OCTET_STRING_print, /* non-ascii string */
OCTET_STRING_compare,
asn_generic_unknown_constraint,
OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */
OCTET_STRING_encode_der,

View File

@ -17,6 +17,7 @@ extern asn_TYPE_descriptor_t asn_DEF_VideotexString;
#define VideotexString_free OCTET_STRING_free
#define VideotexString_print OCTET_STRING_print
#define VideotexString_compare OCTET_STRING_compare
#define VideotexString_constraint asn_generic_unknown_constraint
#define VideotexString_decode_ber OCTET_STRING_decode_ber
#define VideotexString_encode_der OCTET_STRING_encode_der

View File

@ -22,6 +22,7 @@ asn_TYPE_descriptor_t asn_DEF_VisibleString = {
"VisibleString",
OCTET_STRING_free,
OCTET_STRING_print_utf8, /* ASCII subset */
OCTET_STRING_compare,
VisibleString_constraint,
OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */
OCTET_STRING_encode_der,

View File

@ -17,15 +17,16 @@ extern asn_TYPE_descriptor_t asn_DEF_VisibleString;
asn_constr_check_f VisibleString_constraint;
#define VisibleString_free OCTET_STRING_free
#define VisibleString_print OCTET_STRING_print
#define VisibleString_constraint VisibleString_constraint
#define VisibleString_decode_ber OCTET_STRING_decode_ber
#define VisibleString_encode_der OCTET_STRING_encode_der
#define VisibleString_decode_xer OCTET_STRING_decode_xer_hex
#define VisibleString_encode_xer OCTET_STRING_encode_xer
#define VisibleString_decode_uper OCTET_STRING_decode_uper
#define VisibleString_encode_uper OCTET_STRING_encode_uper
#define VisibleString_free OCTET_STRING_free
#define VisibleString_print OCTET_STRING_print
#define VisibleString_compare OCTET_STRING_compare
#define VisibleString_constraint VisibleString_constraint
#define VisibleString_decode_ber OCTET_STRING_decode_ber
#define VisibleString_encode_der OCTET_STRING_encode_der
#define VisibleString_decode_xer OCTET_STRING_decode_xer_hex
#define VisibleString_encode_xer OCTET_STRING_encode_xer
#define VisibleString_decode_uper OCTET_STRING_decode_uper
#define VisibleString_encode_uper OCTET_STRING_encode_uper
#ifdef __cplusplus
}

View File

@ -63,8 +63,11 @@
/*
* See the definitions.
*/
static int _fetch_present_idx(const void *struct_ptr, int off, int size);
static signed _fetch_present_idx(const void *struct_ptr, int off, int size);
static void _set_present_idx(void *sptr, int offset, int size, int pres);
static const void *_get_member_ptr(const asn_TYPE_descriptor_t *,
const void *sptr, asn_TYPE_member_t **elm,
signed *present);
/*
* Tags are canonically sorted in the tag to member table.
@ -362,7 +365,7 @@ CHOICE_encode_der(asn_TYPE_descriptor_t *td, void *sptr,
asn_enc_rval_t erval;
void *memb_ptr;
size_t computed_size = 0;
int present;
signed present;
if(!sptr) ASN__ENCODE_FAILED;
@ -447,7 +450,7 @@ CHOICE_encode_der(asn_TYPE_descriptor_t *td, void *sptr,
ber_tlv_tag_t
CHOICE_outmost_tag(const asn_TYPE_descriptor_t *td, const void *ptr, int tag_mode, ber_tlv_tag_t tag) {
asn_CHOICE_specifics_t *specs = (asn_CHOICE_specifics_t *)td->specifics;
int present;
signed present;
assert(tag_mode == 0); (void)tag_mode;
assert(tag == 0); (void)tag;
@ -480,7 +483,7 @@ int
CHOICE_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
asn_app_constraint_failed_f *ctfailcb, void *app_key) {
asn_CHOICE_specifics_t *specs = (asn_CHOICE_specifics_t *)td->specifics;
int present;
signed present;
if(!sptr) {
ASN__CTFAIL(app_key, td, sptr,
@ -777,7 +780,7 @@ CHOICE_encode_xer(asn_TYPE_descriptor_t *td, void *sptr,
asn_app_consume_bytes_f *cb, void *app_key) {
asn_CHOICE_specifics_t *specs=(asn_CHOICE_specifics_t *)td->specifics;
asn_enc_rval_t er;
int present;
signed present;
if(!sptr)
ASN__ENCODE_FAILED;
@ -914,7 +917,7 @@ CHOICE_encode_uper(asn_TYPE_descriptor_t *td,
asn_TYPE_member_t *elm; /* CHOICE's element */
const asn_per_constraint_t *ct;
void *memb_ptr;
int present;
signed present;
int present_enc;
if(!sptr) ASN__ENCODE_FAILED;
@ -995,7 +998,7 @@ int
CHOICE_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
asn_app_consume_bytes_f *cb, void *app_key) {
asn_CHOICE_specifics_t *specs = (asn_CHOICE_specifics_t *)td->specifics;
int present;
signed present;
if(!sptr) return (cb("<absent>", 8, app_key) < 0) ? -1 : 0;
@ -1035,7 +1038,7 @@ CHOICE_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
void
CHOICE_free(asn_TYPE_descriptor_t *td, void *ptr, int contents_only) {
asn_CHOICE_specifics_t *specs = (asn_CHOICE_specifics_t *)td->specifics;
int present;
signed present;
if(!td || !ptr)
return;
@ -1079,10 +1082,10 @@ CHOICE_free(asn_TYPE_descriptor_t *td, void *ptr, int contents_only) {
* is guaranteed to be aligned properly. ASN.1 compiler itself does not
* produce packed code.
*/
static int
static signed
_fetch_present_idx(const void *struct_ptr, int pres_offset, int pres_size) {
const void *present_ptr;
int present;
signed present;
present_ptr = ((const char *)struct_ptr) + pres_offset;
@ -1113,3 +1116,69 @@ _set_present_idx(void *struct_ptr, int pres_offset, int pres_size, int present)
assert(pres_size != sizeof(int));
}
}
static const void *
_get_member_ptr(const asn_TYPE_descriptor_t *td, const void *sptr,
asn_TYPE_member_t **elm_ptr, signed *present_out) {
asn_CHOICE_specifics_t *specs = (asn_CHOICE_specifics_t *)td->specifics;
signed present;
if(!sptr) {
*elm_ptr = NULL;
*present_out = 0;
return NULL;
}
/*
* Figure out which CHOICE element is encoded.
*/
present = _fetch_present_idx(sptr, specs->pres_offset, specs->pres_size);
*present_out = present;
/*
* The presence index is intentionally 1-based to avoid
* treating zeroed structure as a valid one.
*/
if(present > 0 && (unsigned)present <= td->elements_count) {
asn_TYPE_member_t *const elm = &td->elements[present - 1];
const void *memb_ptr;
if(elm->flags & ATF_POINTER) {
memb_ptr =
*(const void *const *)((const char *)sptr + elm->memb_offset);
} else {
memb_ptr = (const void *)((const char *)sptr + elm->memb_offset);
}
*elm_ptr = elm;
return memb_ptr;
} else {
*elm_ptr = NULL;
return NULL;
}
}
int
CHOICE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr) {
asn_TYPE_member_t *aelm;
asn_TYPE_member_t *belm;
signed apresent = 0;
signed bpresent = 0;
const void *amember = _get_member_ptr(td, aptr, &aelm, &apresent);
const void *bmember = _get_member_ptr(td, bptr, &belm, &apresent);
if(amember && bmember) {
if(apresent == bpresent) {
assert(aelm == belm);
return aelm->type->compare_struct(aelm->type, amember, bmember);
} else if(apresent < bpresent) {
return -1;
} else {
return 1;
}
} else if(!amember) {
return -1;
} else {
return 1;
}
}

View File

@ -41,6 +41,7 @@ typedef const struct asn_CHOICE_specifics_s {
*/
asn_struct_free_f CHOICE_free;
asn_struct_print_f CHOICE_print;
asn_struct_compare_f CHOICE_compare;
asn_constr_check_f CHOICE_constraint;
ber_type_decoder_f CHOICE_decode_ber;
der_type_encoder_f CHOICE_encode_der;

View File

@ -1,5 +1,5 @@
/*-
* Copyright (c) 2003, 2004, 2005, 2006, 2007 Lev Walkin <vlm@lionet.info>.
* Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>.
* All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
@ -1427,3 +1427,37 @@ SEQUENCE_encode_uper(asn_TYPE_descriptor_t *td,
ASN__ENCODED_OK(er);
}
int
SEQUENCE_compare(const asn_TYPE_descriptor_t *td, const void *aptr,
const void *bptr) {
size_t edx;
for(edx = 0; edx < td->elements_count; edx++) {
asn_TYPE_member_t *elm = &td->elements[edx];
const void *amemb;
const void *bmemb;
int ret;
if(elm->flags & ATF_POINTER) {
amemb =
*(const void *const *)((const char *)aptr + elm->memb_offset);
bmemb =
*(const void *const *)((const char *)bptr + elm->memb_offset);
if(!amemb) {
if(!bmemb) continue;
return -1;
} else if(!bmemb) {
return 1;
}
} else {
amemb = (const void *)((const char *)aptr + elm->memb_offset);
bmemb = (const void *)((const char *)bptr + elm->memb_offset);
}
ret = elm->type->compare_struct(elm->type, amemb, bmemb);
if(ret != 0) return ret;
}
return 0;
}

View File

@ -45,6 +45,7 @@ typedef const struct asn_SEQUENCE_specifics_s {
*/
asn_struct_free_f SEQUENCE_free;
asn_struct_print_f SEQUENCE_print;
asn_struct_compare_f SEQUENCE_compare;
asn_constr_check_f SEQUENCE_constraint;
ber_type_decoder_f SEQUENCE_decode_ber;
der_type_encoder_f SEQUENCE_encode_der;

View File

@ -18,6 +18,7 @@ extern "C" {
*/
#define SEQUENCE_OF_free SET_OF_free
#define SEQUENCE_OF_print SET_OF_print
#define SEQUENCE_OF_compare SET_OF_compare
#define SEQUENCE_OF_constraint SET_OF_constraint
#define SEQUENCE_OF_decode_ber SET_OF_decode_ber
#define SEQUENCE_OF_decode_xer SET_OF_decode_xer

View File

@ -987,3 +987,38 @@ SET_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
return 0;
}
int
SET_compare(const asn_TYPE_descriptor_t *td, const void *aptr,
const void *bptr) {
size_t edx;
for(edx = 0; edx < td->elements_count; edx++) {
asn_TYPE_member_t *elm = &td->elements[edx];
const void *amemb;
const void *bmemb;
int ret;
if(elm->flags & ATF_POINTER) {
amemb =
*(const void *const *)((const char *)aptr + elm->memb_offset);
bmemb =
*(const void *const *)((const char *)bptr + elm->memb_offset);
if(!amemb) {
if(!bmemb) continue;
return -1;
} else if(!bmemb) {
return 1;
}
} else {
amemb = (const void *)((const char *)aptr + elm->memb_offset);
bmemb = (const void *)((const char *)bptr + elm->memb_offset);
}
ret = elm->type->compare_struct(elm->type, amemb, bmemb);
if(ret != 0) return ret;
}
return 0;
}

View File

@ -47,6 +47,7 @@ typedef const struct asn_SET_specifics_s {
*/
asn_struct_free_f SET_free;
asn_struct_print_f SET_print;
asn_struct_compare_f SET_compare;
asn_constr_check_f SET_constraint;
ber_type_decoder_f SET_decode_ber;
der_type_encoder_f SET_encode_der;

View File

@ -953,3 +953,12 @@ SET_OF_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
return rv;
}
int
SET_OF_compare(const asn_TYPE_descriptor_t *td, const void *aptr,
const void *bptr) {
(void)td;
(void)aptr;
(void)bptr;
/* Not implemented yet. */
return 0;
}

View File

@ -27,6 +27,7 @@ typedef const struct asn_SET_OF_specifics_s {
*/
asn_struct_free_f SET_OF_free;
asn_struct_print_f SET_OF_print;
asn_struct_compare_f SET_OF_compare;
asn_constr_check_f SET_OF_constraint;
ber_type_decoder_f SET_OF_decode_ber;
der_type_encoder_f SET_OF_encode_der;

View File

@ -68,6 +68,17 @@ typedef int (asn_struct_print_f)(
int level, /* Indentation level */
asn_app_consume_bytes_f *callback, void *app_key);
/*
* Compare two structs between each other.
* Returns <0 if struct_A is "smaller" than struct_B, >0 if "greater",
* and =0 if "equal to", for some type-specific, stable definition of
* "smaller", "greater" and "equal to".
*/
typedef int (asn_struct_compare_f)(
const struct asn_TYPE_descriptor_s *type_descriptor,
const void *struct_A,
const void *struct_B);
/*
* Return the outmost tag of the type.
* If the type is untagged CHOICE, the dynamic operation is performed.
@ -94,6 +105,7 @@ typedef struct asn_TYPE_descriptor_s {
*/
asn_struct_free_f *free_struct; /* Free the structure */
asn_struct_print_f *print_struct; /* Human readable output */
asn_struct_compare_f *compare_struct; /* Compare two structures */
asn_constr_check_f *check_constraints; /* Constraints validator */
ber_type_decoder_f *ber_decoder; /* Generic BER decoder */
der_type_encoder_f *der_encoder; /* Canonical DER encoder */

View File

@ -70,6 +70,7 @@ asn_TYPE_descriptor_t asn_DEF_Enum1 = {
"Enum1",
ENUMERATED_free,
ENUMERATED_print,
ENUMERATED_compare,
ENUMERATED_constraint,
ENUMERATED_decode_ber,
ENUMERATED_encode_der,
@ -171,6 +172,7 @@ asn_TYPE_descriptor_t asn_DEF_Enum2 = {
"Enum2",
ENUMERATED_free,
ENUMERATED_print,
ENUMERATED_compare,
ENUMERATED_constraint,
ENUMERATED_decode_ber,
ENUMERATED_encode_der,
@ -260,6 +262,7 @@ asn_TYPE_descriptor_t asn_DEF_Enum3 = {
"Enum3",
ENUMERATED_free,
ENUMERATED_print,
ENUMERATED_compare,
ENUMERATED_constraint,
ENUMERATED_decode_ber,
ENUMERATED_encode_der,
@ -352,6 +355,7 @@ asn_TYPE_descriptor_t asn_DEF_Enum4 = {
"Enum4",
ENUMERATED_free,
ENUMERATED_print,
ENUMERATED_compare,
ENUMERATED_constraint,
ENUMERATED_decode_ber,
ENUMERATED_encode_der,
@ -441,6 +445,7 @@ asn_TYPE_descriptor_t asn_DEF_Enum5 = {
"Enum5",
ENUMERATED_free,
ENUMERATED_print,
ENUMERATED_compare,
ENUMERATED_constraint,
ENUMERATED_decode_ber,
ENUMERATED_encode_der,

View File

@ -57,6 +57,7 @@ asn_TYPE_descriptor_t asn_DEF_Collection_16P0 = {
"Collection",
SET_OF_free,
SET_OF_print,
SET_OF_compare,
SET_OF_constraint,
SET_OF_decode_ber,
SET_OF_encode_der,
@ -103,6 +104,7 @@ asn_TYPE_descriptor_t asn_DEF_Collection_16P1 = {
"Collection",
SET_OF_free,
SET_OF_print,
SET_OF_compare,
SET_OF_constraint,
SET_OF_decode_ber,
SET_OF_encode_der,
@ -189,6 +191,7 @@ asn_TYPE_descriptor_t asn_DEF_Bunch = {
"Bunch",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,

View File

@ -83,6 +83,7 @@ asn_TYPE_descriptor_t asn_DEF_SIGNED_16P0 = {
"SIGNED",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -143,6 +144,7 @@ asn_TYPE_descriptor_t asn_DEF_signed_4 = {
"signed",
SET_free,
SET_print,
SET_compare,
SET_constraint,
SET_decode_ber,
SET_encode_der,
@ -196,6 +198,7 @@ asn_TYPE_descriptor_t asn_DEF_SIGNED_16P1 = {
"SIGNED",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -254,6 +257,7 @@ asn_TYPE_descriptor_t asn_DEF_SignedREAL = {
"SignedREAL",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -312,6 +316,7 @@ asn_TYPE_descriptor_t asn_DEF_SignedSET = {
"SignedSET",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,

View File

@ -173,6 +173,7 @@ asn_TYPE_descriptor_t asn_DEF_Narrow_15P0 = {
"Narrow",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -231,6 +232,7 @@ asn_TYPE_descriptor_t asn_DEF_NarrowInteger = {
"NarrowInteger",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,

View File

@ -66,6 +66,7 @@ asn_TYPE_descriptor_t asn_DEF_MinMax_16P0 = {
"MinMax",
INTEGER_free,
INTEGER_print,
INTEGER_compare,
MinMax_16P0_constraint,
INTEGER_decode_ber,
INTEGER_encode_der,
@ -154,6 +155,7 @@ asn_TYPE_descriptor_t asn_DEF_ThreePlus = {
"ThreePlus",
INTEGER_free,
INTEGER_print,
INTEGER_compare,
ThreePlus_constraint,
INTEGER_decode_ber,
INTEGER_encode_der,

View File

@ -104,6 +104,7 @@ asn_TYPE_descriptor_t asn_DEF_Flag_16P0 = {
"Flag",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -173,6 +174,7 @@ asn_TYPE_descriptor_t asn_DEF_field_7 = {
"field",
ENUMERATED_free,
ENUMERATED_print,
ENUMERATED_compare,
ENUMERATED_constraint,
ENUMERATED_decode_ber,
ENUMERATED_encode_der,
@ -225,6 +227,7 @@ asn_TYPE_descriptor_t asn_DEF_Flag_16P1 = {
"Flag",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -283,6 +286,7 @@ asn_TYPE_descriptor_t asn_DEF_IntegerColorFlag = {
"IntegerColorFlag",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -341,6 +345,7 @@ asn_TYPE_descriptor_t asn_DEF_EnumeratedColorFlag = {
"EnumeratedColorFlag",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,

View File

@ -1210,6 +1210,7 @@ asn_TYPE_descriptor_t asn_DEF_many_2 = {
"many",
SEQUENCE_OF_free,
SEQUENCE_OF_print,
SEQUENCE_OF_compare,
SEQUENCE_OF_constraint,
SEQUENCE_OF_decode_ber,
SEQUENCE_OF_encode_der,
@ -1596,6 +1597,7 @@ asn_TYPE_descriptor_t asn_DEF_PDU = {
"PDU",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,

View File

@ -66,6 +66,7 @@ asn_TYPE_descriptor_t asn_DEF_T = {
"T",
BIT_STRING_free,
BIT_STRING_print,
BIT_STRING_compare,
T_constraint,
BIT_STRING_decode_ber,
BIT_STRING_encode_der,

View File

@ -103,6 +103,7 @@ asn_TYPE_descriptor_t asn_DEF_PDU = {
"PDU",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -208,6 +209,7 @@ asn_TYPE_descriptor_t asn_DEF_Singleton = {
"Singleton",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -334,6 +336,7 @@ asn_TYPE_descriptor_t asn_DEF_PDU_2 = {
"PDU-2",
CHOICE_free,
CHOICE_print,
CHOICE_compare,
CHOICE_constraint,
CHOICE_decode_ber,
CHOICE_encode_der,

View File

@ -215,6 +215,7 @@ asn_TYPE_descriptor_t asn_DEF_unsigned32_4 = {
"unsigned32",
NativeInteger_free,
NativeInteger_print,
NativeInteger_compare,
unsigned32_4_constraint,
NativeInteger_decode_ber,
NativeInteger_encode_der,
@ -251,6 +252,7 @@ asn_TYPE_descriptor_t asn_DEF_unsplit32_5 = {
"unsplit32",
NativeInteger_free,
NativeInteger_print,
NativeInteger_compare,
unsplit32_5_constraint,
NativeInteger_decode_ber,
NativeInteger_encode_der,
@ -337,6 +339,7 @@ asn_TYPE_descriptor_t asn_DEF_T = {
"T",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,

View File

@ -34,6 +34,7 @@ asn_TYPE_descriptor_t asn_DEF_T = {
"T",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,

View File

@ -237,6 +237,7 @@ asn_TYPE_descriptor_t asn_DEF_T = {
"T",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,

View File

@ -556,6 +556,7 @@ asn_TYPE_descriptor_t asn_DEF_T = {
"T",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,

View File

@ -225,6 +225,7 @@ asn_TYPE_descriptor_t asn_DEF_unconstrained_2 = {
"unconstrained",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -302,6 +303,7 @@ asn_TYPE_descriptor_t asn_DEF_constrained_6 = {
"constrained",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -367,6 +369,7 @@ asn_TYPE_descriptor_t asn_DEF_T = {
"T",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,

View File

@ -37,6 +37,7 @@ asn_TYPE_descriptor_t asn_DEF_A_noc = {
"A-noc",
NativeInteger_free,
NativeInteger_print,
NativeInteger_compare,
NativeInteger_constraint,
NativeInteger_decode_ber,
NativeInteger_encode_der,
@ -128,6 +129,7 @@ asn_TYPE_descriptor_t asn_DEF_B_0_0 = {
"B-0-0",
NativeInteger_free,
NativeInteger_print,
NativeInteger_compare,
B_0_0_constraint,
NativeInteger_decode_ber,
NativeInteger_encode_der,
@ -219,6 +221,7 @@ asn_TYPE_descriptor_t asn_DEF_C_1_2 = {
"C-1-2",
NativeInteger_free,
NativeInteger_print,
NativeInteger_compare,
C_1_2_constraint,
NativeInteger_decode_ber,
NativeInteger_encode_der,
@ -310,6 +313,7 @@ asn_TYPE_descriptor_t asn_DEF_D_inv = {
"D-inv",
NativeInteger_free,
NativeInteger_print,
NativeInteger_compare,
D_inv_constraint,
NativeInteger_decode_ber,
NativeInteger_encode_der,
@ -401,6 +405,7 @@ asn_TYPE_descriptor_t asn_DEF_E_2_5 = {
"E-2-5",
NativeInteger_free,
NativeInteger_print,
NativeInteger_compare,
E_2_5_constraint,
NativeInteger_decode_ber,
NativeInteger_encode_der,
@ -492,6 +497,7 @@ asn_TYPE_descriptor_t asn_DEF_F_inv = {
"F-inv",
NativeInteger_free,
NativeInteger_print,
NativeInteger_compare,
F_inv_constraint,
NativeInteger_decode_ber,
NativeInteger_encode_der,
@ -583,6 +589,7 @@ asn_TYPE_descriptor_t asn_DEF_G_3_3 = {
"G-3-3",
NativeInteger_free,
NativeInteger_print,
NativeInteger_compare,
G_3_3_constraint,
NativeInteger_decode_ber,
NativeInteger_encode_der,
@ -674,6 +681,7 @@ asn_TYPE_descriptor_t asn_DEF_H_4_5 = {
"H-4-5",
NativeInteger_free,
NativeInteger_print,
NativeInteger_compare,
H_4_5_constraint,
NativeInteger_decode_ber,
NativeInteger_encode_der,
@ -765,6 +773,7 @@ asn_TYPE_descriptor_t asn_DEF_I_0_5 = {
"I-0-5",
NativeInteger_free,
NativeInteger_print,
NativeInteger_compare,
I_0_5_constraint,
NativeInteger_decode_ber,
NativeInteger_encode_der,
@ -856,6 +865,7 @@ asn_TYPE_descriptor_t asn_DEF_J_4_9 = {
"J-4-9",
NativeInteger_free,
NativeInteger_print,
NativeInteger_compare,
J_4_9_constraint,
NativeInteger_decode_ber,
NativeInteger_encode_der,
@ -947,6 +957,7 @@ asn_TYPE_descriptor_t asn_DEF_K_inv = {
"K-inv",
NativeInteger_free,
NativeInteger_print,
NativeInteger_compare,
K_inv_constraint,
NativeInteger_decode_ber,
NativeInteger_encode_der,
@ -1038,6 +1049,7 @@ asn_TYPE_descriptor_t asn_DEF_L_0_5 = {
"L-0-5",
NativeInteger_free,
NativeInteger_print,
NativeInteger_compare,
L_0_5_constraint,
NativeInteger_decode_ber,
NativeInteger_encode_der,
@ -1129,6 +1141,7 @@ asn_TYPE_descriptor_t asn_DEF_M_inv = {
"M-inv",
NativeInteger_free,
NativeInteger_print,
NativeInteger_compare,
M_inv_constraint,
NativeInteger_decode_ber,
NativeInteger_encode_der,
@ -1220,6 +1233,7 @@ asn_TYPE_descriptor_t asn_DEF_N_inv = {
"N-inv",
NativeInteger_free,
NativeInteger_print,
NativeInteger_compare,
N_inv_constraint,
NativeInteger_decode_ber,
NativeInteger_encode_der,
@ -1311,6 +1325,7 @@ asn_TYPE_descriptor_t asn_DEF_O_inv = {
"O-inv",
NativeInteger_free,
NativeInteger_print,
NativeInteger_compare,
O_inv_constraint,
NativeInteger_decode_ber,
NativeInteger_encode_der,

View File

@ -122,6 +122,7 @@ asn_TYPE_descriptor_t asn_DEF_Frame = {
"Frame",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -180,6 +181,7 @@ asn_TYPE_descriptor_t asn_DEF_PrimitiveMessage = {
"PrimitiveMessage",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -237,6 +239,7 @@ asn_TYPE_descriptor_t asn_DEF_ComplexMessage = {
"ComplexMessage",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,

View File

@ -122,6 +122,7 @@ asn_TYPE_descriptor_t asn_DEF_Frame = {
"Frame",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -180,6 +181,7 @@ asn_TYPE_descriptor_t asn_DEF_PrimitiveMessage = {
"PrimitiveMessage",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -237,6 +239,7 @@ asn_TYPE_descriptor_t asn_DEF_ComplexMessage = {
"ComplexMessage",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,

View File

@ -122,6 +122,7 @@ asn_TYPE_descriptor_t asn_DEF_toBeSigned_2 = {
"toBeSigned",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -197,6 +198,7 @@ asn_TYPE_descriptor_t asn_DEF_SIGNED_15P0 = {
"SIGNED",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -255,6 +257,7 @@ asn_TYPE_descriptor_t asn_DEF_Certificate = {
"Certificate",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -332,6 +335,7 @@ asn_TYPE_descriptor_t asn_DEF_Name = {
"Name",
SEQUENCE_OF_free,
SEQUENCE_OF_print,
SEQUENCE_OF_compare,
SEQUENCE_OF_constraint,
SEQUENCE_OF_decode_ber,
SEQUENCE_OF_encode_der,
@ -457,6 +461,7 @@ asn_TYPE_descriptor_t asn_DEF_RelativeDistinguishedName = {
"RelativeDistinguishedName",
SET_OF_free,
SET_OF_print,
SET_OF_compare,
SET_OF_constraint,
SET_OF_decode_ber,
SET_OF_encode_der,

View File

@ -83,6 +83,7 @@ asn_TYPE_descriptor_t asn_DEF_b_3 = {
"b",
CHOICE_free,
CHOICE_print,
CHOICE_compare,
CHOICE_constraint,
CHOICE_decode_ber,
CHOICE_encode_der,
@ -156,6 +157,7 @@ asn_TYPE_descriptor_t asn_DEF_T1 = {
"T1",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,

View File

@ -103,6 +103,7 @@ asn_TYPE_descriptor_t asn_DEF_T = {
"T",
SET_free,
SET_print,
SET_compare,
SET_constraint,
SET_decode_ber,
SET_encode_der,

View File

@ -54,6 +54,7 @@ asn_TYPE_descriptor_t asn_DEF_Forest = {
"Forest",
SET_OF_free,
SET_OF_print,
SET_OF_compare,
SET_OF_constraint,
SET_OF_decode_ber,
SET_OF_encode_der,
@ -142,6 +143,7 @@ asn_TYPE_descriptor_t asn_DEF_Tree = {
"Tree",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -283,6 +285,7 @@ asn_TYPE_descriptor_t asn_DEF_trees_2 = {
"trees",
SET_OF_free,
SET_OF_print,
SET_OF_compare,
SET_OF_constraint,
SET_OF_decode_ber,
SET_OF_encode_der,
@ -337,6 +340,7 @@ asn_TYPE_descriptor_t asn_DEF_Member_5 = {
"SEQUENCE",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -385,6 +389,7 @@ asn_TYPE_descriptor_t asn_DEF_anything_4 = {
"anything",
SET_OF_free,
SET_OF_print,
SET_OF_compare,
SET_OF_constraint,
SET_OF_decode_ber,
SET_OF_encode_der,
@ -448,6 +453,7 @@ asn_TYPE_descriptor_t asn_DEF_other_9 = {
"other",
CHOICE_free,
CHOICE_print,
CHOICE_compare,
CHOICE_constraint,
CHOICE_decode_ber,
CHOICE_encode_der,
@ -533,6 +539,7 @@ asn_TYPE_descriptor_t asn_DEF_Stuff = {
"Stuff",
SET_free,
SET_print,
SET_compare,
SET_constraint,
SET_decode_ber,
SET_encode_der,

View File

@ -52,6 +52,7 @@ asn_TYPE_descriptor_t asn_DEF_Programming = {
"Programming",
SEQUENCE_OF_free,
SEQUENCE_OF_print,
SEQUENCE_OF_compare,
SEQUENCE_OF_constraint,
SEQUENCE_OF_decode_ber,
SEQUENCE_OF_encode_der,
@ -129,6 +130,7 @@ asn_TYPE_descriptor_t asn_DEF_Fault = {
"Fault",
SET_OF_free,
SET_OF_print,
SET_OF_compare,
SET_OF_constraint,
SET_OF_decode_ber,
SET_OF_encode_der,
@ -191,6 +193,7 @@ asn_TYPE_descriptor_t asn_DEF_Error = {
"Error",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -275,6 +278,7 @@ asn_TYPE_descriptor_t asn_DEF_seqOfMan_3 = {
"seqOfMan",
SEQUENCE_OF_free,
SEQUENCE_OF_print,
SEQUENCE_OF_compare,
SEQUENCE_OF_constraint,
SEQUENCE_OF_decode_ber,
SEQUENCE_OF_encode_der,
@ -339,6 +343,7 @@ asn_TYPE_descriptor_t asn_DEF_SeqWithMandatory = {
"SeqWithMandatory",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -424,6 +429,7 @@ asn_TYPE_descriptor_t asn_DEF_seqOfOpt_3 = {
"seqOfOpt",
SEQUENCE_OF_free,
SEQUENCE_OF_print,
SEQUENCE_OF_compare,
SEQUENCE_OF_constraint,
SEQUENCE_OF_decode_ber,
SEQUENCE_OF_encode_der,
@ -488,6 +494,7 @@ asn_TYPE_descriptor_t asn_DEF_SeqWithOptional = {
"SeqWithOptional",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,

View File

@ -101,6 +101,7 @@ asn_TYPE_descriptor_t asn_DEF_T = {
"T",
CHOICE_free,
CHOICE_print,
CHOICE_compare,
CHOICE_constraint,
CHOICE_decode_ber,
CHOICE_encode_der,
@ -197,6 +198,7 @@ asn_TYPE_descriptor_t asn_DEF_Choice1 = {
"Choice1",
CHOICE_free,
CHOICE_print,
CHOICE_compare,
CHOICE_constraint,
CHOICE_decode_ber,
CHOICE_encode_der,
@ -323,6 +325,7 @@ asn_TYPE_descriptor_t asn_DEF_Choice2 = {
"Choice2",
CHOICE_free,
CHOICE_print,
CHOICE_compare,
CHOICE_constraint,
CHOICE_decode_ber,
CHOICE_encode_der,
@ -382,6 +385,7 @@ asn_TYPE_descriptor_t asn_DEF_Choice3 = {
"Choice3",
CHOICE_free,
CHOICE_print,
CHOICE_compare,
CHOICE_constraint,
CHOICE_decode_ber,
CHOICE_encode_der,
@ -441,6 +445,7 @@ asn_TYPE_descriptor_t asn_DEF_Choice4 = {
"Choice4",
CHOICE_free,
CHOICE_print,
CHOICE_compare,
CHOICE_constraint,
CHOICE_decode_ber,
CHOICE_encode_der,
@ -499,6 +504,7 @@ asn_TYPE_descriptor_t asn_DEF_Choice5 = {
"Choice5",
CHOICE_free,
CHOICE_print,
CHOICE_compare,
CHOICE_constraint,
CHOICE_decode_ber,
CHOICE_encode_der,
@ -554,6 +560,7 @@ asn_TYPE_descriptor_t asn_DEF_Choice6 = {
"Choice6",
CHOICE_free,
CHOICE_print,
CHOICE_compare,
CHOICE_constraint,
CHOICE_decode_ber,
CHOICE_encode_der,

View File

@ -61,6 +61,7 @@ asn_TYPE_descriptor_t asn_DEF_collection_3 = {
"collection",
SEQUENCE_OF_free,
SEQUENCE_OF_print,
SEQUENCE_OF_compare,
SEQUENCE_OF_constraint,
SEQUENCE_OF_decode_ber,
SEQUENCE_OF_encode_der,
@ -125,6 +126,7 @@ asn_TYPE_descriptor_t asn_DEF_T = {
"T",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -214,6 +216,7 @@ asn_TYPE_descriptor_t asn_DEF_T2 = {
"T2",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,

View File

@ -94,6 +94,7 @@ asn_TYPE_descriptor_t asn_DEF_varsets_3 = {
"varsets",
SEQUENCE_OF_free,
SEQUENCE_OF_print,
SEQUENCE_OF_compare,
SEQUENCE_OF_constraint,
SEQUENCE_OF_decode_ber,
SEQUENCE_OF_encode_der,
@ -158,6 +159,7 @@ asn_TYPE_descriptor_t asn_DEF_LogLine = {
"LogLine",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -270,6 +272,7 @@ asn_TYPE_descriptor_t asn_DEF_vparts_2 = {
"vparts",
SEQUENCE_OF_free,
SEQUENCE_OF_print,
SEQUENCE_OF_compare,
SEQUENCE_OF_constraint,
SEQUENCE_OF_decode_ber,
SEQUENCE_OF_encode_der,
@ -334,6 +337,7 @@ asn_TYPE_descriptor_t asn_DEF_VariablePartSet = {
"VariablePartSet",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -469,6 +473,7 @@ asn_TYPE_descriptor_t asn_DEF_vset_2 = {
"vset",
SET_OF_free,
SET_OF_print,
SET_OF_compare,
SET_OF_constraint,
SET_OF_decode_ber,
SET_OF_encode_der,
@ -534,6 +539,7 @@ asn_TYPE_descriptor_t asn_DEF_vrange_4 = {
"vrange",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -596,6 +602,7 @@ asn_TYPE_descriptor_t asn_DEF_VariablePart = {
"VariablePart",
CHOICE_free,
CHOICE_print,
CHOICE_compare,
CHOICE_constraint,
CHOICE_decode_ber,
CHOICE_encode_der,
@ -711,6 +718,7 @@ asn_TYPE_descriptor_t asn_DEF_accept_as_2 = {
"accept-as",
NativeEnumerated_free,
NativeEnumerated_print,
NativeEnumerated_compare,
NativeEnumerated_constraint,
NativeEnumerated_decode_ber,
NativeEnumerated_encode_der,
@ -757,6 +765,7 @@ asn_TYPE_descriptor_t asn_DEF_email_9 = {
"email",
SET_OF_free,
SET_OF_print,
SET_OF_compare,
SET_OF_constraint,
SET_OF_decode_ber,
SET_OF_encode_der,
@ -822,6 +831,7 @@ asn_TYPE_descriptor_t asn_DEF_notify_7 = {
"notify",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -886,6 +896,7 @@ asn_TYPE_descriptor_t asn_DEF_ActionItem = {
"ActionItem",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,

View File

@ -72,6 +72,7 @@ asn_TYPE_descriptor_t asn_DEF_t_member1_2 = {
"t-member1",
SET_OF_free,
SET_OF_print,
SET_OF_compare,
SET_OF_constraint,
SET_OF_decode_ber,
SET_OF_encode_der,
@ -119,6 +120,7 @@ asn_TYPE_descriptor_t asn_DEF_t_member2_4 = {
"t-member2",
SEQUENCE_OF_free,
SEQUENCE_OF_print,
SEQUENCE_OF_compare,
SEQUENCE_OF_constraint,
SEQUENCE_OF_decode_ber,
SEQUENCE_OF_encode_der,
@ -205,6 +207,7 @@ asn_TYPE_descriptor_t asn_DEF_Test_structure_1 = {
"Test-structure-1",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -307,6 +310,7 @@ asn_TYPE_descriptor_t asn_DEF_or_3 = {
"or",
SET_OF_free,
SET_OF_print,
SET_OF_compare,
SET_OF_constraint,
SET_OF_decode_ber,
SET_OF_encode_der,
@ -391,6 +395,7 @@ asn_TYPE_descriptor_t asn_DEF_Choice_1 = {
"Choice-1",
CHOICE_free,
CHOICE_print,
CHOICE_compare,
CHOICE_constraint,
CHOICE_decode_ber,
CHOICE_encode_der,
@ -491,6 +496,7 @@ asn_TYPE_descriptor_t asn_DEF_Test_structure_2 = {
"Test-structure-2",
SET_free,
SET_print,
SET_compare,
SET_constraint,
SET_decode_ber,
SET_encode_der,
@ -593,6 +599,7 @@ asn_TYPE_descriptor_t asn_DEF_Test_structure_3 = {
"Test-structure-3",
SET_free,
SET_print,
SET_compare,
SET_constraint,
SET_decode_ber,
SET_encode_der,

View File

@ -112,6 +112,7 @@ asn_TYPE_descriptor_t asn_DEF_e_6 = {
"e",
CHOICE_free,
CHOICE_print,
CHOICE_compare,
CHOICE_constraint,
CHOICE_decode_ber,
CHOICE_encode_der,
@ -173,6 +174,7 @@ asn_TYPE_descriptor_t asn_DEF_h_9 = {
"h",
CHOICE_free,
CHOICE_print,
CHOICE_compare,
CHOICE_constraint,
CHOICE_decode_ber,
CHOICE_encode_der,
@ -257,6 +259,7 @@ asn_TYPE_descriptor_t asn_DEF_b_3 = {
"b",
CHOICE_free,
CHOICE_print,
CHOICE_compare,
CHOICE_constraint,
CHOICE_decode_ber,
CHOICE_encode_der,
@ -324,6 +327,7 @@ asn_TYPE_descriptor_t asn_DEF_T = {
"T",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,

View File

@ -35,6 +35,7 @@ asn_TYPE_descriptor_t asn_DEF_PrimitiveType = {
"PrimitiveType",
OCTET_STRING_free,
OCTET_STRING_print,
OCTET_STRING_compare,
OCTET_STRING_constraint,
OCTET_STRING_decode_ber,
OCTET_STRING_encode_der,
@ -110,6 +111,7 @@ asn_TYPE_descriptor_t asn_DEF_ConstructedType = {
"ConstructedType",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -169,6 +171,7 @@ asn_TYPE_descriptor_t asn_DEF_T = {
"T",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,

View File

@ -75,6 +75,7 @@ asn_TYPE_descriptor_t asn_DEF_T1 = {
"T1",
SET_free,
SET_print,
SET_compare,
SET_constraint,
SET_decode_ber,
SET_encode_der,
@ -173,6 +174,7 @@ asn_TYPE_descriptor_t asn_DEF_T2 = {
"T2",
SET_free,
SET_print,
SET_compare,
SET_constraint,
SET_decode_ber,
SET_encode_der,
@ -261,6 +263,7 @@ asn_TYPE_descriptor_t asn_DEF_T3 = {
"T3",
CHOICE_free,
CHOICE_print,
CHOICE_compare,
CHOICE_constraint,
CHOICE_decode_ber,
CHOICE_encode_der,
@ -347,6 +350,7 @@ asn_TYPE_descriptor_t asn_DEF_T4 = {
"T4",
CHOICE_free,
CHOICE_print,
CHOICE_compare,
CHOICE_constraint,
CHOICE_decode_ber,
CHOICE_encode_der,

View File

@ -35,6 +35,7 @@ asn_TYPE_descriptor_t asn_DEF_Int1 = {
"Int1",
INTEGER_free,
INTEGER_print,
INTEGER_compare,
INTEGER_constraint,
INTEGER_decode_ber,
INTEGER_encode_der,
@ -119,6 +120,7 @@ asn_TYPE_descriptor_t asn_DEF_Int2 = {
"Int2",
INTEGER_free,
INTEGER_print,
INTEGER_compare,
Int2_constraint,
INTEGER_decode_ber,
INTEGER_encode_der,
@ -207,6 +209,7 @@ asn_TYPE_descriptor_t asn_DEF_Int3 = {
"Int3",
INTEGER_free,
INTEGER_print,
INTEGER_compare,
Int3_constraint,
INTEGER_decode_ber,
INTEGER_encode_der,
@ -295,6 +298,7 @@ asn_TYPE_descriptor_t asn_DEF_Int4 = {
"Int4",
INTEGER_free,
INTEGER_print,
INTEGER_compare,
Int4_constraint,
INTEGER_decode_ber,
INTEGER_encode_der,
@ -383,6 +387,7 @@ asn_TYPE_descriptor_t asn_DEF_Int5 = {
"Int5",
INTEGER_free,
INTEGER_print,
INTEGER_compare,
Int5_constraint,
INTEGER_decode_ber,
INTEGER_encode_der,
@ -471,6 +476,7 @@ asn_TYPE_descriptor_t asn_DEF_ExtensibleExtensions = {
"ExtensibleExtensions",
INTEGER_free,
INTEGER_print,
INTEGER_compare,
ExtensibleExtensions_constraint,
INTEGER_decode_ber,
INTEGER_encode_der,
@ -528,6 +534,7 @@ asn_TYPE_descriptor_t asn_DEF_Str1 = {
"Str1",
IA5String_free,
IA5String_print,
IA5String_compare,
IA5String_constraint,
IA5String_decode_ber,
IA5String_encode_der,
@ -628,6 +635,7 @@ asn_TYPE_descriptor_t asn_DEF_Str2 = {
"Str2",
IA5String_free,
IA5String_print,
IA5String_compare,
Str2_constraint,
IA5String_decode_ber,
IA5String_encode_der,
@ -739,6 +747,7 @@ asn_TYPE_descriptor_t asn_DEF_Str3 = {
"Str3",
IA5String_free,
IA5String_print,
IA5String_compare,
Str3_constraint,
IA5String_decode_ber,
IA5String_encode_der,
@ -836,6 +845,7 @@ asn_TYPE_descriptor_t asn_DEF_Str4 = {
"Str4",
IA5String_free,
IA5String_print,
IA5String_compare,
Str4_constraint,
IA5String_decode_ber,
IA5String_encode_der,
@ -933,6 +943,7 @@ asn_TYPE_descriptor_t asn_DEF_PER_Visible = {
"PER-Visible",
IA5String_free,
IA5String_print,
IA5String_compare,
PER_Visible_constraint,
IA5String_decode_ber,
IA5String_encode_der,
@ -1030,6 +1041,7 @@ asn_TYPE_descriptor_t asn_DEF_PER_Visible_2 = {
"PER-Visible-2",
IA5String_free,
IA5String_print,
IA5String_compare,
PER_Visible_2_constraint,
IA5String_decode_ber,
IA5String_encode_der,
@ -1127,6 +1139,7 @@ asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_1 = {
"Not-PER-Visible-1",
IA5String_free,
IA5String_print,
IA5String_compare,
Not_PER_Visible_1_constraint,
IA5String_decode_ber,
IA5String_encode_der,
@ -1224,6 +1237,7 @@ asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_2 = {
"Not-PER-Visible-2",
IA5String_free,
IA5String_print,
IA5String_compare,
Not_PER_Visible_2_constraint,
IA5String_decode_ber,
IA5String_encode_der,
@ -1321,6 +1335,7 @@ asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_3 = {
"Not-PER-Visible-3",
IA5String_free,
IA5String_print,
IA5String_compare,
Not_PER_Visible_3_constraint,
IA5String_decode_ber,
IA5String_encode_der,
@ -1421,6 +1436,7 @@ asn_TYPE_descriptor_t asn_DEF_SIZE_but_not_FROM = {
"SIZE-but-not-FROM",
IA5String_free,
IA5String_print,
IA5String_compare,
SIZE_but_not_FROM_constraint,
IA5String_decode_ber,
IA5String_encode_der,
@ -1521,6 +1537,7 @@ asn_TYPE_descriptor_t asn_DEF_SIZE_and_FROM = {
"SIZE-and-FROM",
IA5String_free,
IA5String_print,
IA5String_compare,
SIZE_and_FROM_constraint,
IA5String_decode_ber,
IA5String_encode_der,
@ -1618,6 +1635,7 @@ asn_TYPE_descriptor_t asn_DEF_Neither_SIZE_nor_FROM = {
"Neither-SIZE-nor-FROM",
IA5String_free,
IA5String_print,
IA5String_compare,
Neither_SIZE_nor_FROM_constraint,
IA5String_decode_ber,
IA5String_encode_der,
@ -1709,6 +1727,7 @@ asn_TYPE_descriptor_t asn_DEF_Utf8_4 = {
"Utf8-4",
UTF8String_free,
UTF8String_print,
UTF8String_compare,
Utf8_4_constraint,
UTF8String_decode_ber,
UTF8String_encode_der,
@ -1828,6 +1847,7 @@ asn_TYPE_descriptor_t asn_DEF_Utf8_3 = {
"Utf8-3",
UTF8String_free,
UTF8String_print,
UTF8String_compare,
Utf8_3_constraint,
UTF8String_decode_ber,
UTF8String_encode_der,
@ -1917,6 +1937,7 @@ asn_TYPE_descriptor_t asn_DEF_Utf8_2 = {
"Utf8-2",
UTF8String_free,
UTF8String_print,
UTF8String_compare,
Utf8_2_constraint,
UTF8String_decode_ber,
UTF8String_encode_der,
@ -1974,6 +1995,7 @@ asn_TYPE_descriptor_t asn_DEF_Utf8_1 = {
"Utf8-1",
UTF8String_free,
UTF8String_print,
UTF8String_compare,
UTF8String_constraint,
UTF8String_decode_ber,
UTF8String_encode_der,
@ -2086,6 +2108,7 @@ asn_TYPE_descriptor_t asn_DEF_VisibleIdentifier = {
"VisibleIdentifier",
VisibleString_free,
VisibleString_print,
VisibleString_compare,
VisibleIdentifier_constraint,
VisibleString_decode_ber,
VisibleString_encode_der,
@ -2324,6 +2347,7 @@ asn_TYPE_descriptor_t asn_DEF_enum_c_6 = {
"enum-c",
ENUMERATED_free,
ENUMERATED_print,
ENUMERATED_compare,
ENUMERATED_constraint,
ENUMERATED_decode_ber,
ENUMERATED_encode_der,
@ -2442,6 +2466,7 @@ asn_TYPE_descriptor_t asn_DEF_Sequence = {
"Sequence",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -2517,6 +2542,7 @@ asn_TYPE_descriptor_t asn_DEF_SequenceOf = {
"SequenceOf",
SEQUENCE_OF_free,
SEQUENCE_OF_print,
SEQUENCE_OF_compare,
SEQUENCE_OF_constraint,
SEQUENCE_OF_decode_ber,
SEQUENCE_OF_encode_der,
@ -2599,6 +2625,7 @@ asn_TYPE_descriptor_t asn_DEF_Enum0 = {
"Enum0",
ENUMERATED_free,
ENUMERATED_print,
ENUMERATED_compare,
ENUMERATED_constraint,
ENUMERATED_decode_ber,
ENUMERATED_encode_der,
@ -2705,6 +2732,7 @@ asn_TYPE_descriptor_t asn_DEF_Enum1 = {
"Enum1",
NativeEnumerated_free,
NativeEnumerated_print,
NativeEnumerated_compare,
Enum1_constraint,
NativeEnumerated_decode_ber,
NativeEnumerated_encode_der,
@ -2817,6 +2845,7 @@ asn_TYPE_descriptor_t asn_DEF_Identifier = {
"Identifier",
VisibleString_free,
VisibleString_print,
VisibleString_compare,
Identifier_constraint,
VisibleString_decode_ber,
VisibleString_encode_der,

View File

@ -37,6 +37,7 @@ asn_TYPE_descriptor_t asn_DEF_Int1 = {
"Int1",
NativeInteger_free,
NativeInteger_print,
NativeInteger_compare,
NativeInteger_constraint,
NativeInteger_decode_ber,
NativeInteger_encode_der,
@ -131,6 +132,7 @@ asn_TYPE_descriptor_t asn_DEF_Int2 = {
"Int2",
NativeInteger_free,
NativeInteger_print,
NativeInteger_compare,
Int2_constraint,
NativeInteger_decode_ber,
NativeInteger_encode_der,
@ -225,6 +227,7 @@ asn_TYPE_descriptor_t asn_DEF_Int3 = {
"Int3",
NativeInteger_free,
NativeInteger_print,
NativeInteger_compare,
Int3_constraint,
NativeInteger_decode_ber,
NativeInteger_encode_der,
@ -319,6 +322,7 @@ asn_TYPE_descriptor_t asn_DEF_Int4 = {
"Int4",
NativeInteger_free,
NativeInteger_print,
NativeInteger_compare,
Int4_constraint,
NativeInteger_decode_ber,
NativeInteger_encode_der,
@ -413,6 +417,7 @@ asn_TYPE_descriptor_t asn_DEF_Int5 = {
"Int5",
NativeInteger_free,
NativeInteger_print,
NativeInteger_compare,
Int5_constraint,
NativeInteger_decode_ber,
NativeInteger_encode_der,
@ -506,6 +511,7 @@ asn_TYPE_descriptor_t asn_DEF_ExtensibleExtensions = {
"ExtensibleExtensions",
NativeInteger_free,
NativeInteger_print,
NativeInteger_compare,
ExtensibleExtensions_constraint,
NativeInteger_decode_ber,
NativeInteger_encode_der,
@ -566,6 +572,7 @@ asn_TYPE_descriptor_t asn_DEF_Str1 = {
"Str1",
IA5String_free,
IA5String_print,
IA5String_compare,
IA5String_constraint,
IA5String_decode_ber,
IA5String_encode_der,
@ -678,6 +685,7 @@ asn_TYPE_descriptor_t asn_DEF_Str2 = {
"Str2",
IA5String_free,
IA5String_print,
IA5String_compare,
Str2_constraint,
IA5String_decode_ber,
IA5String_encode_der,
@ -814,6 +822,7 @@ asn_TYPE_descriptor_t asn_DEF_Str3 = {
"Str3",
IA5String_free,
IA5String_print,
IA5String_compare,
Str3_constraint,
IA5String_decode_ber,
IA5String_encode_der,
@ -922,6 +931,7 @@ asn_TYPE_descriptor_t asn_DEF_Str4 = {
"Str4",
IA5String_free,
IA5String_print,
IA5String_compare,
Str4_constraint,
IA5String_decode_ber,
IA5String_encode_der,
@ -1031,6 +1041,7 @@ asn_TYPE_descriptor_t asn_DEF_PER_Visible = {
"PER-Visible",
IA5String_free,
IA5String_print,
IA5String_compare,
PER_Visible_constraint,
IA5String_decode_ber,
IA5String_encode_der,
@ -1139,6 +1150,7 @@ asn_TYPE_descriptor_t asn_DEF_PER_Visible_2 = {
"PER-Visible-2",
IA5String_free,
IA5String_print,
IA5String_compare,
PER_Visible_2_constraint,
IA5String_decode_ber,
IA5String_encode_der,
@ -1247,6 +1259,7 @@ asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_1 = {
"Not-PER-Visible-1",
IA5String_free,
IA5String_print,
IA5String_compare,
Not_PER_Visible_1_constraint,
IA5String_decode_ber,
IA5String_encode_der,
@ -1355,6 +1368,7 @@ asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_2 = {
"Not-PER-Visible-2",
IA5String_free,
IA5String_print,
IA5String_compare,
Not_PER_Visible_2_constraint,
IA5String_decode_ber,
IA5String_encode_der,
@ -1463,6 +1477,7 @@ asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_3 = {
"Not-PER-Visible-3",
IA5String_free,
IA5String_print,
IA5String_compare,
Not_PER_Visible_3_constraint,
IA5String_decode_ber,
IA5String_encode_der,
@ -1574,6 +1589,7 @@ asn_TYPE_descriptor_t asn_DEF_SIZE_but_not_FROM = {
"SIZE-but-not-FROM",
IA5String_free,
IA5String_print,
IA5String_compare,
SIZE_but_not_FROM_constraint,
IA5String_decode_ber,
IA5String_encode_der,
@ -1685,6 +1701,7 @@ asn_TYPE_descriptor_t asn_DEF_SIZE_and_FROM = {
"SIZE-and-FROM",
IA5String_free,
IA5String_print,
IA5String_compare,
SIZE_and_FROM_constraint,
IA5String_decode_ber,
IA5String_encode_der,
@ -1793,6 +1810,7 @@ asn_TYPE_descriptor_t asn_DEF_Neither_SIZE_nor_FROM = {
"Neither-SIZE-nor-FROM",
IA5String_free,
IA5String_print,
IA5String_compare,
Neither_SIZE_nor_FROM_constraint,
IA5String_decode_ber,
IA5String_encode_der,
@ -1895,6 +1913,7 @@ asn_TYPE_descriptor_t asn_DEF_Utf8_4 = {
"Utf8-4",
UTF8String_free,
UTF8String_print,
UTF8String_compare,
Utf8_4_constraint,
UTF8String_decode_ber,
UTF8String_encode_der,
@ -2025,6 +2044,7 @@ asn_TYPE_descriptor_t asn_DEF_Utf8_3 = {
"Utf8-3",
UTF8String_free,
UTF8String_print,
UTF8String_compare,
Utf8_3_constraint,
UTF8String_decode_ber,
UTF8String_encode_der,
@ -2126,6 +2146,7 @@ asn_TYPE_descriptor_t asn_DEF_Utf8_2 = {
"Utf8-2",
UTF8String_free,
UTF8String_print,
UTF8String_compare,
Utf8_2_constraint,
UTF8String_decode_ber,
UTF8String_encode_der,
@ -2186,6 +2207,7 @@ asn_TYPE_descriptor_t asn_DEF_Utf8_1 = {
"Utf8-1",
UTF8String_free,
UTF8String_print,
UTF8String_compare,
UTF8String_constraint,
UTF8String_decode_ber,
UTF8String_encode_der,
@ -2308,6 +2330,7 @@ asn_TYPE_descriptor_t asn_DEF_VisibleIdentifier = {
"VisibleIdentifier",
VisibleString_free,
VisibleString_print,
VisibleString_compare,
VisibleIdentifier_constraint,
VisibleString_decode_ber,
VisibleString_encode_der,
@ -2550,6 +2573,7 @@ asn_TYPE_descriptor_t asn_DEF_enum_c_6 = {
"enum-c",
NativeEnumerated_free,
NativeEnumerated_print,
NativeEnumerated_compare,
NativeEnumerated_constraint,
NativeEnumerated_decode_ber,
NativeEnumerated_encode_der,
@ -2671,6 +2695,7 @@ asn_TYPE_descriptor_t asn_DEF_Sequence = {
"Sequence",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -2755,6 +2780,7 @@ asn_TYPE_descriptor_t asn_DEF_SequenceOf = {
"SequenceOf",
SEQUENCE_OF_free,
SEQUENCE_OF_print,
SEQUENCE_OF_compare,
SEQUENCE_OF_constraint,
SEQUENCE_OF_decode_ber,
SEQUENCE_OF_encode_der,
@ -2848,6 +2874,7 @@ asn_TYPE_descriptor_t asn_DEF_Enum0 = {
"Enum0",
NativeEnumerated_free,
NativeEnumerated_print,
NativeEnumerated_compare,
NativeEnumerated_constraint,
NativeEnumerated_decode_ber,
NativeEnumerated_encode_der,
@ -2965,6 +2992,7 @@ asn_TYPE_descriptor_t asn_DEF_Enum1 = {
"Enum1",
NativeEnumerated_free,
NativeEnumerated_print,
NativeEnumerated_compare,
Enum1_constraint,
NativeEnumerated_decode_ber,
NativeEnumerated_encode_der,
@ -3107,6 +3135,7 @@ asn_TYPE_descriptor_t asn_DEF_Identifier = {
"Identifier",
VisibleString_free,
VisibleString_print,
VisibleString_compare,
Identifier_constraint,
VisibleString_decode_ber,
VisibleString_encode_der,

View File

@ -103,6 +103,7 @@ asn_TYPE_descriptor_t asn_DEF_Choice = {
"Choice",
CHOICE_free,
CHOICE_print,
CHOICE_compare,
CHOICE_constraint,
CHOICE_decode_ber,
CHOICE_encode_der,

View File

@ -63,6 +63,7 @@ asn_TYPE_descriptor_t asn_DEF_T1 = {
"T1",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -150,6 +151,7 @@ asn_TYPE_descriptor_t asn_DEF_T2 = {
"T2",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -232,6 +234,7 @@ asn_TYPE_descriptor_t asn_DEF_T3 = {
"T3",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,

View File

@ -46,6 +46,7 @@ asn_TYPE_descriptor_t asn_DEF_T1 = {
"T1",
NativeReal_free,
NativeReal_print,
NativeReal_compare,
NativeReal_constraint,
NativeReal_decode_ber,
NativeReal_encode_der,
@ -112,6 +113,7 @@ asn_TYPE_descriptor_t asn_DEF_T2 = {
"T2",
NativeReal_free,
NativeReal_print,
NativeReal_compare,
NativeReal_constraint,
NativeReal_decode_ber,
NativeReal_encode_der,
@ -176,6 +178,7 @@ asn_TYPE_descriptor_t asn_DEF_T3 = {
"T3",
NativeReal_free,
NativeReal_print,
NativeReal_compare,
NativeReal_constraint,
NativeReal_decode_ber,
NativeReal_encode_der,
@ -235,6 +238,7 @@ asn_TYPE_descriptor_t asn_DEF_T4 = {
"T4",
NativeReal_free,
NativeReal_print,
NativeReal_compare,
NativeReal_constraint,
NativeReal_decode_ber,
NativeReal_encode_der,
@ -293,6 +297,7 @@ asn_TYPE_descriptor_t asn_DEF_T5 = {
"T5",
NativeReal_free,
NativeReal_print,
NativeReal_compare,
NativeReal_constraint,
NativeReal_decode_ber,
NativeReal_encode_der,
@ -350,6 +355,7 @@ asn_TYPE_descriptor_t asn_DEF_T6 = {
"T6",
NativeReal_free,
NativeReal_print,
NativeReal_compare,
NativeReal_constraint,
NativeReal_decode_ber,
NativeReal_encode_der,
@ -409,6 +415,7 @@ asn_TYPE_descriptor_t asn_DEF_T = {
"T",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -511,6 +518,7 @@ asn_TYPE_descriptor_t asn_DEF_Ts = {
"Ts",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,

View File

@ -46,6 +46,7 @@ asn_TYPE_descriptor_t asn_DEF_T1 = {
"T1",
REAL_free,
REAL_print,
REAL_compare,
REAL_constraint,
REAL_decode_ber,
REAL_encode_der,
@ -112,6 +113,7 @@ asn_TYPE_descriptor_t asn_DEF_T2 = {
"T2",
REAL_free,
REAL_print,
REAL_compare,
REAL_constraint,
REAL_decode_ber,
REAL_encode_der,
@ -176,6 +178,7 @@ asn_TYPE_descriptor_t asn_DEF_T3 = {
"T3",
REAL_free,
REAL_print,
REAL_compare,
REAL_constraint,
REAL_decode_ber,
REAL_encode_der,
@ -235,6 +238,7 @@ asn_TYPE_descriptor_t asn_DEF_T4 = {
"T4",
REAL_free,
REAL_print,
REAL_compare,
REAL_constraint,
REAL_decode_ber,
REAL_encode_der,
@ -293,6 +297,7 @@ asn_TYPE_descriptor_t asn_DEF_T5 = {
"T5",
REAL_free,
REAL_print,
REAL_compare,
REAL_constraint,
REAL_decode_ber,
REAL_encode_der,
@ -350,6 +355,7 @@ asn_TYPE_descriptor_t asn_DEF_T6 = {
"T6",
REAL_free,
REAL_print,
REAL_compare,
REAL_constraint,
REAL_decode_ber,
REAL_encode_der,
@ -409,6 +415,7 @@ asn_TYPE_descriptor_t asn_DEF_T = {
"T",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@ -511,6 +518,7 @@ asn_TYPE_descriptor_t asn_DEF_Ts = {
"Ts",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_compare,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,

View File

@ -45,6 +45,7 @@ asn_TYPE_descriptor_t asn_DEF_T = {
"T",
SET_OF_free,
SET_OF_print,
SET_OF_compare,
SET_OF_constraint,
SET_OF_decode_ber,
SET_OF_encode_der,
@ -131,6 +132,7 @@ asn_TYPE_descriptor_t asn_DEF_SimpleType = {
"SimpleType",
ENUMERATED_free,
ENUMERATED_print,
ENUMERATED_compare,
ENUMERATED_constraint,
ENUMERATED_decode_ber,
ENUMERATED_encode_der,

Some files were not shown because too many files have changed in this diff Show More