Commit cd2f48eb authored by Lev Walkin's avatar Lev Walkin

structure comparison functions

parent 086ee9a3
......@@ -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;
}
......@@ -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
......
......@@ -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,
......
......@@ -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;
}
}
......@@ -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;
......
......@@ -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,
......
......@@ -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
}
......
......@@ -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;
}
}
......@@ -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;
......
......@@ -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 */
......
......@@ -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
......
......@@ -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,
......
......@@ -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
}
......
......@@ -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,
......
......@@ -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,
......
......@@ -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
}
......
......@@ -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,
......
......@@ -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
}
......
......@@ -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;
}
}
......@@ -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;
......
......@@ -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,
......
......@@ -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
}
......
......@@ -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) {
......
......@@ -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;
......
......@@ -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,
......
......@@ -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
......
......@@ -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;
}
}
......@@ -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;
......
......@@ -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) {
......
......@@ -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;
......
......@@ -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,
......
......@@ -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
}
......
......@@ -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,
......
......@@ -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;
}
}
......@@ -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 */
......
......@@ -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,
......
......@@ -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,
......
......@@ -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
}
......
......@@ -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,
......
......@@ -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;
......
......@@ -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,
......
......@@ -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,
......
......@@ -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
}
......
......@@ -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,
......
......@@ -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
}
......
......@@ -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 */
......
......@@ -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,
......
......@@ -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
......
......@@ -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,
......
......@@ -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
......
......@@ -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,
......
......@@ -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
......
......@@ -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,
......
......@@ -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
}
......
......@@ -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;
}
}
......@@ -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;
......
/*-
* 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;
}
......@@ -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;
......
......@@ -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
......
......@@ -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;
}
......@@ -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;
......
......@@ -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;
}
......@@ -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;
......
......@@ -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 */
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
......@@ -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,
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment