asn1c/tests/42-real-life-OK.asn1.-PR

600 lines
15 KiB
Plaintext

/*** <<< DEPS [LogLine] >>> ***/
/* Dependencies for LogLine */
#include <IA5String.h>
/* Dependencies for varsets */
#include <VariablePartSet.h>
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE.h>
extern asn1_TYPE_descriptor_t asn1_DEF_LogLine;
/*** <<< TYPE-DECLS [LogLine] >>> ***/
typedef struct LogLine {
IA5String_t line_digest;
struct varsets {
A_SEQUENCE_OF(struct VariablePartSet) list;
/* Context for parsing across buffer boundaries */
ber_dec_ctx_t _ber_dec_ctx;
} varsets;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
ber_dec_ctx_t _ber_dec_ctx;
} LogLine_t;
/*** <<< STAT-DEFS [LogLine] >>> ***/
static asn1_SET_OF_element_t asn1_DEF_varsets_elements[] = {
{ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
(void *)&asn1_DEF_VariablePartSet },
};
static ber_tlv_tag_t asn1_DEF_varsets_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static asn1_SET_OF_specifics_t asn1_DEF_varsets_specs = {
sizeof(struct varsets),
offsetof(struct varsets, _ber_dec_ctx),
asn1_DEF_varsets_elements
};
asn1_TYPE_descriptor_t asn1_DEF_varsets = {
"varsets",
SEQUENCE_OF_constraint,
SEQUENCE_OF_decode_ber,
SEQUENCE_OF_encode_der,
SEQUENCE_OF_print,
SEQUENCE_OF_free,
0, /* Use generic outmost tag fetcher */
asn1_DEF_varsets_tags,
sizeof(asn1_DEF_varsets_tags)
/sizeof(asn1_DEF_varsets_tags[0]),
1, /* Tags to skip */
1, /* Whether CONSTRUCTED */
&asn1_DEF_varsets_specs /* Additional specs */
};
#include <constr_SEQUENCE.h>
static asn1_SEQUENCE_element_t asn1_DEF_LogLine_elements[] = {
{ offsetof(struct LogLine, line_digest), 0,
(ASN_TAG_CLASS_UNIVERSAL | (22 << 2)),
0,
(void *)&asn1_DEF_IA5String,
"line-digest"
},
{ offsetof(struct LogLine, varsets), 0,
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
0,
(void *)&asn1_DEF_varsets,
"varsets"
},
};
static ber_tlv_tag_t asn1_DEF_LogLine_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static asn1_TYPE_tag2member_t asn1_DEF_LogLine_tag2el[] = {
{ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* varsets at 25 */
{ (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)), 0, 0, 0 }, /* line-digest at 23 */
};
static asn1_SEQUENCE_specifics_t asn1_DEF_LogLine_specs = {
sizeof(struct LogLine),
offsetof(struct LogLine, _ber_dec_ctx),
asn1_DEF_LogLine_elements,
2, /* Elements count */
asn1_DEF_LogLine_tag2el,
2, /* Count of tags in the map */
1, /* Start extensions */
3 /* Stop extensions */
};
asn1_TYPE_descriptor_t asn1_DEF_LogLine = {
"LogLine",
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
SEQUENCE_print,
SEQUENCE_free,
0, /* Use generic outmost tag fetcher */
asn1_DEF_LogLine_tags,
sizeof(asn1_DEF_LogLine_tags)
/sizeof(asn1_DEF_LogLine_tags[0]),
1, /* Tags to skip */
1, /* Whether CONSTRUCTED */
&asn1_DEF_LogLine_specs /* Additional specs */
};
/*** <<< DEPS [VariablePartSet] >>> ***/
/* Dependencies for VariablePartSet */
#include <ActionItem.h>
/* Dependencies for vparts */
#include <VariablePart.h>
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE.h>
extern asn1_TYPE_descriptor_t asn1_DEF_VariablePartSet;
/*** <<< TYPE-DECLS [VariablePartSet] >>> ***/
typedef struct VariablePartSet {
struct vparts {
A_SEQUENCE_OF(struct VariablePart) list;
/* Context for parsing across buffer boundaries */
ber_dec_ctx_t _ber_dec_ctx;
} vparts;
ActionItem_t resolution;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
ber_dec_ctx_t _ber_dec_ctx;
} VariablePartSet_t;
/*** <<< STAT-DEFS [VariablePartSet] >>> ***/
static asn1_SET_OF_element_t asn1_DEF_vparts_elements[] = {
{ -1 /* Ambiguous tag (CHOICE?) */,
(void *)&asn1_DEF_VariablePart },
};
static ber_tlv_tag_t asn1_DEF_vparts_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static asn1_SET_OF_specifics_t asn1_DEF_vparts_specs = {
sizeof(struct vparts),
offsetof(struct vparts, _ber_dec_ctx),
asn1_DEF_vparts_elements
};
asn1_TYPE_descriptor_t asn1_DEF_vparts = {
"vparts",
SEQUENCE_OF_constraint,
SEQUENCE_OF_decode_ber,
SEQUENCE_OF_encode_der,
SEQUENCE_OF_print,
SEQUENCE_OF_free,
0, /* Use generic outmost tag fetcher */
asn1_DEF_vparts_tags,
sizeof(asn1_DEF_vparts_tags)
/sizeof(asn1_DEF_vparts_tags[0]),
1, /* Tags to skip */
1, /* Whether CONSTRUCTED */
&asn1_DEF_vparts_specs /* Additional specs */
};
#include <constr_SEQUENCE.h>
static asn1_SEQUENCE_element_t asn1_DEF_VariablePartSet_elements[] = {
{ offsetof(struct VariablePartSet, vparts), 0,
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
0,
(void *)&asn1_DEF_vparts,
"vparts"
},
{ offsetof(struct VariablePartSet, resolution), 0,
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
0,
(void *)&asn1_DEF_ActionItem,
"resolution"
},
};
static ber_tlv_tag_t asn1_DEF_VariablePartSet_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static asn1_TYPE_tag2member_t asn1_DEF_VariablePartSet_tag2el[] = {
{ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* vparts at 33 */
{ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 }, /* resolution at 35 */
};
static asn1_SEQUENCE_specifics_t asn1_DEF_VariablePartSet_specs = {
sizeof(struct VariablePartSet),
offsetof(struct VariablePartSet, _ber_dec_ctx),
asn1_DEF_VariablePartSet_elements,
2, /* Elements count */
asn1_DEF_VariablePartSet_tag2el,
2, /* Count of tags in the map */
1, /* Start extensions */
3 /* Stop extensions */
};
asn1_TYPE_descriptor_t asn1_DEF_VariablePartSet = {
"VariablePartSet",
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
SEQUENCE_print,
SEQUENCE_free,
0, /* Use generic outmost tag fetcher */
asn1_DEF_VariablePartSet_tags,
sizeof(asn1_DEF_VariablePartSet_tags)
/sizeof(asn1_DEF_VariablePartSet_tags[0]),
1, /* Tags to skip */
1, /* Whether CONSTRUCTED */
&asn1_DEF_VariablePartSet_specs /* Additional specs */
};
/*** <<< DEPS [VariablePart] >>> ***/
/* Dependencies for vset */
#include <VisibleString.h>
#include <asn_SET_OF.h>
#include <constr_SET_OF.h>
/* Dependencies for vrange */
#include <VisibleString.h>
#include <VisibleString.h>
#include <constr_SEQUENCE.h>
extern asn1_TYPE_descriptor_t asn1_DEF_VariablePart;
/*** <<< TYPE-DECLS [VariablePart] >>> ***/
typedef struct VariablePart {
enum {
VariablePart_PR_NOTHING, /* No components present */
VariablePart_PR_vset,
VariablePart_PR_vrange,
} present;
union {
struct vset {
A_SET_OF(VisibleString_t) list;
/* Context for parsing across buffer boundaries */
ber_dec_ctx_t _ber_dec_ctx;
} vset;
struct vrange {
VisibleString_t from;
VisibleString_t to;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
ber_dec_ctx_t _ber_dec_ctx;
} vrange;
/*
* This type is extensible,
* possible extensions are below.
*/
} choice;
/* Context for parsing across buffer boundaries */
ber_dec_ctx_t _ber_dec_ctx;
} VariablePart_t;
/*** <<< STAT-DEFS [VariablePart] >>> ***/
static asn1_SET_OF_element_t asn1_DEF_vset_elements[] = {
{ (ASN_TAG_CLASS_UNIVERSAL | (26 << 2)),
(void *)&asn1_DEF_VisibleString },
};
static ber_tlv_tag_t asn1_DEF_vset_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
};
static asn1_SET_OF_specifics_t asn1_DEF_vset_specs = {
sizeof(struct vset),
offsetof(struct vset, _ber_dec_ctx),
asn1_DEF_vset_elements
};
asn1_TYPE_descriptor_t asn1_DEF_vset = {
"vset",
SET_OF_constraint,
SET_OF_decode_ber,
SET_OF_encode_der,
SET_OF_print,
SET_OF_free,
0, /* Use generic outmost tag fetcher */
asn1_DEF_vset_tags,
sizeof(asn1_DEF_vset_tags)
/sizeof(asn1_DEF_vset_tags[0]),
1, /* Tags to skip */
1, /* Whether CONSTRUCTED */
&asn1_DEF_vset_specs /* Additional specs */
};
#include <constr_SEQUENCE.h>
static asn1_SEQUENCE_element_t asn1_DEF_vrange_elements[] = {
{ offsetof(struct vrange, from), 0,
(ASN_TAG_CLASS_UNIVERSAL | (26 << 2)),
0,
(void *)&asn1_DEF_VisibleString,
"from"
},
{ offsetof(struct vrange, to), 0,
(ASN_TAG_CLASS_UNIVERSAL | (26 << 2)),
0,
(void *)&asn1_DEF_VisibleString,
"to"
},
};
static ber_tlv_tag_t asn1_DEF_vrange_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static asn1_TYPE_tag2member_t asn1_DEF_vrange_tag2el[] = {
{ (ASN_TAG_CLASS_UNIVERSAL | (26 << 2)), 0, 0, 1 }, /* from at 45 */
{ (ASN_TAG_CLASS_UNIVERSAL | (26 << 2)), 1, -1, 0 }, /* to at 46 */
};
static asn1_SEQUENCE_specifics_t asn1_DEF_vrange_specs = {
sizeof(struct vrange),
offsetof(struct vrange, _ber_dec_ctx),
asn1_DEF_vrange_elements,
2, /* Elements count */
asn1_DEF_vrange_tag2el,
2, /* Count of tags in the map */
1, /* Start extensions */
3 /* Stop extensions */
};
asn1_TYPE_descriptor_t asn1_DEF_vrange = {
"vrange",
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
SEQUENCE_print,
SEQUENCE_free,
0, /* Use generic outmost tag fetcher */
asn1_DEF_vrange_tags,
sizeof(asn1_DEF_vrange_tags)
/sizeof(asn1_DEF_vrange_tags[0]),
1, /* Tags to skip */
1, /* Whether CONSTRUCTED */
&asn1_DEF_vrange_specs /* Additional specs */
};
#include <constr_CHOICE.h>
static asn1_CHOICE_element_t asn1_DEF_VariablePart_elements[] = {
{ offsetof(struct VariablePart, choice.vset), 0,
(ASN_TAG_CLASS_UNIVERSAL | (17 << 2)),
0,
(void *)&asn1_DEF_vset,
"vset"
},
{ offsetof(struct VariablePart, choice.vrange), 0,
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
0,
(void *)&asn1_DEF_vrange,
"vrange"
},
};
static ber_tlv_tag_t asn1_DEF_VariablePart_tags[] = {
};
static asn1_TYPE_tag2member_t asn1_DEF_VariablePart_tag2el[] = {
{ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* vrange at 45 */
{ (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 0, 0, 0 }, /* vset at 42 */
};
static asn1_CHOICE_specifics_t asn1_DEF_VariablePart_specs = {
sizeof(struct VariablePart),
offsetof(struct VariablePart, _ber_dec_ctx),
offsetof(struct VariablePart, present),
sizeof(((struct VariablePart *)0)->present),
asn1_DEF_VariablePart_elements,
2, /* Elements count */
asn1_DEF_VariablePart_tag2el,
2, /* Count of tags in the map */
1 /* Whether extensible */
};
asn1_TYPE_descriptor_t asn1_DEF_VariablePart = {
"VariablePart",
CHOICE_constraint,
CHOICE_decode_ber,
CHOICE_encode_der,
CHOICE_print,
CHOICE_free,
CHOICE_outmost_tag,
asn1_DEF_VariablePart_tags,
sizeof(asn1_DEF_VariablePart_tags)
/sizeof(asn1_DEF_VariablePart_tags[0]),
0, /* Tags to skip */
1, /* Whether CONSTRUCTED */
&asn1_DEF_VariablePart_specs /* Additional specs */
};
/*** <<< DEPS [ActionItem] >>> ***/
/* Dependencies for ActionItem */
#include <ENUMERATED.h>
typedef enum accept_as {
accept_as_unknown = 0,
accept_as_safe = 1,
accept_as_unsafe = 2,
/*
* Enumeration is extensible
*/
} accept_as_e;
/* Dependencies for notify */
#include <BOOLEAN.h>
/* Dependencies for email */
#include <VisibleString.h>
#include <asn_SET_OF.h>
#include <constr_SET_OF.h>
#include <constr_SEQUENCE.h>
#include <constr_SEQUENCE.h>
extern asn1_TYPE_descriptor_t asn1_DEF_ActionItem;
/*** <<< TYPE-DECLS [ActionItem] >>> ***/
typedef struct ActionItem {
ENUMERATED_t accept_as;
struct notify {
BOOLEAN_t critical;
struct email {
A_SET_OF(VisibleString_t) list;
/* Context for parsing across buffer boundaries */
ber_dec_ctx_t _ber_dec_ctx;
} email;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
ber_dec_ctx_t _ber_dec_ctx;
} *notify;
/*
* This type is extensible,
* possible extensions are below.
*/
/* Context for parsing across buffer boundaries */
ber_dec_ctx_t _ber_dec_ctx;
} ActionItem_t;
/*** <<< STAT-DEFS [ActionItem] >>> ***/
static asn1_SET_OF_element_t asn1_DEF_email_elements[] = {
{ (ASN_TAG_CLASS_UNIVERSAL | (26 << 2)),
(void *)&asn1_DEF_VisibleString },
};
static ber_tlv_tag_t asn1_DEF_email_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
};
static asn1_SET_OF_specifics_t asn1_DEF_email_specs = {
sizeof(struct email),
offsetof(struct email, _ber_dec_ctx),
asn1_DEF_email_elements
};
asn1_TYPE_descriptor_t asn1_DEF_email = {
"email",
SET_OF_constraint,
SET_OF_decode_ber,
SET_OF_encode_der,
SET_OF_print,
SET_OF_free,
0, /* Use generic outmost tag fetcher */
asn1_DEF_email_tags,
sizeof(asn1_DEF_email_tags)
/sizeof(asn1_DEF_email_tags[0]),
1, /* Tags to skip */
1, /* Whether CONSTRUCTED */
&asn1_DEF_email_specs /* Additional specs */
};
#include <constr_SEQUENCE.h>
static asn1_SEQUENCE_element_t asn1_DEF_notify_elements[] = {
{ offsetof(struct notify, critical), 0,
(ASN_TAG_CLASS_UNIVERSAL | (1 << 2)),
0,
(void *)&asn1_DEF_BOOLEAN,
"critical"
},
{ offsetof(struct notify, email), 0,
(ASN_TAG_CLASS_UNIVERSAL | (17 << 2)),
0,
(void *)&asn1_DEF_email,
"email"
},
};
static ber_tlv_tag_t asn1_DEF_notify_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static asn1_TYPE_tag2member_t asn1_DEF_notify_tag2el[] = {
{ (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)), 0, 0, 0 }, /* critical at 61 */
{ (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 1, 0, 0 }, /* email at 62 */
};
static asn1_SEQUENCE_specifics_t asn1_DEF_notify_specs = {
sizeof(struct notify),
offsetof(struct notify, _ber_dec_ctx),
asn1_DEF_notify_elements,
2, /* Elements count */
asn1_DEF_notify_tag2el,
2, /* Count of tags in the map */
1, /* Start extensions */
3 /* Stop extensions */
};
asn1_TYPE_descriptor_t asn1_DEF_notify = {
"notify",
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
SEQUENCE_print,
SEQUENCE_free,
0, /* Use generic outmost tag fetcher */
asn1_DEF_notify_tags,
sizeof(asn1_DEF_notify_tags)
/sizeof(asn1_DEF_notify_tags[0]),
1, /* Tags to skip */
1, /* Whether CONSTRUCTED */
&asn1_DEF_notify_specs /* Additional specs */
};
#include <constr_SEQUENCE.h>
static asn1_SEQUENCE_element_t asn1_DEF_ActionItem_elements[] = {
{ offsetof(struct ActionItem, accept_as), 0,
(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
0,
(void *)&asn1_DEF_ENUMERATED,
"accept-as"
},
{ offsetof(struct ActionItem, notify), 1,
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
0,
(void *)&asn1_DEF_notify,
"notify"
},
};
static ber_tlv_tag_t asn1_DEF_ActionItem_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static asn1_TYPE_tag2member_t asn1_DEF_ActionItem_tag2el[] = {
{ (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 }, /* accept-as at 55 */
{ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* notify at 61 */
};
static asn1_SEQUENCE_specifics_t asn1_DEF_ActionItem_specs = {
sizeof(struct ActionItem),
offsetof(struct ActionItem, _ber_dec_ctx),
asn1_DEF_ActionItem_elements,
2, /* Elements count */
asn1_DEF_ActionItem_tag2el,
2, /* Count of tags in the map */
1, /* Start extensions */
3 /* Stop extensions */
};
asn1_TYPE_descriptor_t asn1_DEF_ActionItem = {
"ActionItem",
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
SEQUENCE_print,
SEQUENCE_free,
0, /* Use generic outmost tag fetcher */
asn1_DEF_ActionItem_tags,
sizeof(asn1_DEF_ActionItem_tags)
/sizeof(asn1_DEF_ActionItem_tags[0]),
1, /* Tags to skip */
1, /* Whether CONSTRUCTED */
&asn1_DEF_ActionItem_specs /* Additional specs */
};