blob: 01d031197c66d3d9780043264a75fd01a3337232 [file] [log] [blame]
Lev Walkinf15320b2004-06-03 03:38:44 +00001/*-
Lev Walkin20696a42017-10-17 21:27:33 -07002 * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
Lev Walkinf15320b2004-06-03 03:38:44 +00003 * Redistribution and modifications are permitted subject to BSD license.
4 */
5#ifndef _CONSTR_SEQUENCE_H_
6#define _CONSTR_SEQUENCE_H_
7
Lev Walkin11c3e172004-09-24 21:00:50 +00008#include <asn_application.h>
Lev Walkinf15320b2004-06-03 03:38:44 +00009
Lev Walkin21b41ac2005-07-24 09:03:44 +000010#ifdef __cplusplus
11extern "C" {
12#endif
13
Lev Walkind84f6032017-10-03 16:33:59 -070014typedef struct asn_SEQUENCE_specifics_s {
Lev Walkinf15320b2004-06-03 03:38:44 +000015 /*
16 * Target structure description.
17 */
Lev Walkin9ec239e2017-08-10 05:46:42 -070018 unsigned struct_size; /* Size of the target structure. */
19 unsigned ctx_offset; /* Offset of the asn_struct_ctx_t member */
Lev Walkinf15320b2004-06-03 03:38:44 +000020
21 /*
Lev Walkin4c36e302004-06-06 07:20:02 +000022 * Tags to members mapping table (sorted).
23 */
Wim Lewisfb6344e2014-07-28 12:16:01 -070024 const asn_TYPE_tag2member_t *tag2el;
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +080025 unsigned tag2el_count;
Lev Walkin4c36e302004-06-06 07:20:02 +000026
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +080027 /*
Lev Walkin59b176e2005-11-26 11:25:14 +000028 * Optional members of the extensions root (roms) or additions (aoms).
29 * Meaningful for PER.
30 */
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +080031 const int *oms; /* Optional MemberS */
32 unsigned roms_count; /* Root optional members count */
33 unsigned aoms_count; /* Additions optional members count */
Lev Walkin59b176e2005-11-26 11:25:14 +000034
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +080035 /*
Lev Walkinf15320b2004-06-03 03:38:44 +000036 * Description of an extensions group.
37 */
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +080038 signed ext_after; /* Extensions start after this member */
39 signed ext_before; /* Extensions stop before this member */
Lev Walkin5e033762004-09-29 13:26:15 +000040} asn_SEQUENCE_specifics_t;
Lev Walkinf15320b2004-06-03 03:38:44 +000041
42
43/*
44 * A set specialized functions dealing with the SEQUENCE type.
45 */
Lev Walkina9cc46e2004-09-22 16:06:28 +000046asn_struct_free_f SEQUENCE_free;
47asn_struct_print_f SEQUENCE_print;
Lev Walkincd2f48e2017-08-10 02:14:59 -070048asn_struct_compare_f SEQUENCE_compare;
Lev Walkinf15320b2004-06-03 03:38:44 +000049asn_constr_check_f SEQUENCE_constraint;
50ber_type_decoder_f SEQUENCE_decode_ber;
51der_type_encoder_f SEQUENCE_encode_der;
Lev Walkin1bbc2002004-10-23 13:27:30 +000052xer_type_decoder_f SEQUENCE_decode_xer;
Lev Walkina9cc46e2004-09-22 16:06:28 +000053xer_type_encoder_f SEQUENCE_encode_xer;
Lev Walkin602aacb2017-07-24 01:46:41 +040054oer_type_decoder_f SEQUENCE_decode_oer;
55oer_type_encoder_f SEQUENCE_encode_oer;
Lev Walkin59b176e2005-11-26 11:25:14 +000056per_type_decoder_f SEQUENCE_decode_uper;
Lev Walkin523de9e2006-08-18 01:34:18 +000057per_type_encoder_f SEQUENCE_encode_uper;
Lev Walkina5972be2017-09-29 23:15:58 -070058asn_random_fill_f SEQUENCE_random_fill;
Bi-Ruei, Chiu1f87ac02017-08-20 01:25:45 +080059extern asn_TYPE_operation_t asn_OP_SEQUENCE;
Lev Walkinf15320b2004-06-03 03:38:44 +000060
Lev Walkin21b41ac2005-07-24 09:03:44 +000061#ifdef __cplusplus
62}
63#endif
64
Lev Walkinf15320b2004-06-03 03:38:44 +000065#endif /* _CONSTR_SEQUENCE_H_ */