E2AP code changes
[o-du/l2.git] / src / codec_utils / E2AP / asn_ioc.h
1 /*
2  * Run-time support for Information Object Classes.
3  * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
4  * Redistribution and modifications are permitted subject to BSD license.
5  */
6 #ifndef ASN_IOC_H
7 #define ASN_IOC_H
8
9 #include <asn_system.h>         /* Platform-specific types */
10
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14
15 struct asn_TYPE_descriptor_s;
16 struct asn_ioc_cell_s;
17
18 /*
19  * X.681, #13
20  */
21 typedef struct asn_ioc_set_s {
22     size_t rows_count;
23     size_t columns_count;
24     const struct asn_ioc_cell_s *rows;
25 } asn_ioc_set_t;
26
27
28 typedef struct asn_ioc_cell_s {
29     const char *field_name; /* Is equal to corresponding column_name */
30     enum {
31         aioc__undefined = 0,
32         aioc__value,
33         aioc__type,
34         aioc__open_type,
35     } cell_kind;
36     struct asn_TYPE_descriptor_s *type_descriptor;
37     const void *value_sptr;
38     struct {
39         size_t types_count;
40         struct {
41             unsigned choice_position;
42         } *types;
43     } open_type;
44 } asn_ioc_cell_t;
45
46
47 #ifdef __cplusplus
48 }
49 #endif
50
51 #endif  /* ASN_IOC_H */