1 /******************************************************************************
2 * Copyright (c) 2000-2016 Ericsson Telecom AB
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
11 * Szabo, Janos Zoltan – initial implementation
14 ******************************************************************************/
18 #define XDEFUNSIGNED 1
34 #define XDEFDEFAULT -1
38 int bitorder
; /* Invert bitorder of the encoded data */
41 typedef enum { MANDATORY_FIELD
, OPTIONAL_FIELD
, UNION_FIELD
42 } rawAST_coding_field_type
;
46 const char* nthfieldname
;
47 rawAST_coding_field_type fieldtype
;
49 const char* typedescr
;
50 }rawAST_coding_fields
;
54 rawAST_coding_fields
* fields
;
57 int temporal_variable_index
;
58 }rawAST_coding_field_list
;
61 const char* fieldName
;
64 rawAST_coding_field_list
* fields
;
65 }rawAST_coding_taglist
;
69 rawAST_coding_taglist
* list
;
70 }rawAST_coding_taglist_list
;
76 }rawAST_coding_ext_group
;
81 int byteorder
; /* XDEFMSB, XDEFLSB */
82 int align
; /* XDEFLEFT, XDEFRIGHT */
83 int bitorderinfield
; /* XDEFMSB, XDEFLSB */
84 int bitorderinoctet
; /* XDEFMSB, XDEFLSB */
85 int extension_bit
; /* XDEFYES, XDEFNO
86 can be used for record fields:
87 variant (field1) EXTENSION_BIT(use)*/
89 rawAST_coding_ext_group
* ext_bit_groups
;
90 int hexorder
; /* XDEFLOW, XDEFHIGH */
91 int padding
; /* XDEFYES: next field starts at next octet */
92 int fieldorder
; /* XDEFMSB, XDEFLSB */
94 int *lengthto
; /* list of fields to generate length for */
95 int pointerto
; /* pointer to the specified field is contained
97 int ptrunit
; /* number of bits in pointerto value */
98 int ptroffset
; /* offset to the pointer value in bits
99 Actual position will be:
100 pointerto*ptrunit + ptroffset */
102 int unit
; /* number of bits in an unit */
103 rawAST_coding_fields
*lengthindex
; /* stores subattribute of the lengthto
105 rawAST_coding_taglist_list taglist
;
106 rawAST_coding_taglist_list crosstaglist
; /* field IDs in form of
107 [unionField.sub]field_N,
108 keyField.subfield_M = tagValue
109 multiple tagValues may be specified */
110 rawAST_coding_taglist presence
; /* Presence indicator expressions for an
113 rawAST_toplevel toplevel
; /* Toplevel attributes */
114 int union_member_num
;
115 const char **member_name
;
117 int length
; /* used only for record fields: the length of the
118 field measured in bits, it is set to -1 if
129 indent-tabs-mode: nil