lib/iec_types.h
author Manuele Conti <conti.ma@alice.it>
Mon, 30 Jul 2012 22:59:00 +0200
changeset 622 eaa49b276e17
parent 256 101c7f148b9a
child 741 cdce312be3c4
permissions -rwxr-xr-x
Add check bison version in configure.ac file.
To build correctly matiec we need bison greater or equals than 2.4 version.
Now the "configure" script is able to check if system has correctly requirements.
137
9ceda59abd27 Re-organized types headers, to ease debug code generation
etisserant
parents: 59
diff changeset
     1
#ifndef IEC_TYPES_H
9ceda59abd27 Re-organized types headers, to ease debug code generation
etisserant
parents: 59
diff changeset
     2
#define IEC_TYPES_H
9ceda59abd27 Re-organized types headers, to ease debug code generation
etisserant
parents: 59
diff changeset
     3
59
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
     4
#include <limits.h>
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
     5
#include <float.h>
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
     6
#include <stdint.h>
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
     7
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
     8
/*********************/
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
     9
/*  IEC Types defs   */
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    10
/*********************/
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    11
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    12
typedef uint8_t  IEC_BOOL;
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    13
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    14
typedef int8_t    IEC_SINT;
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    15
typedef int16_t   IEC_INT;
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    16
typedef int32_t   IEC_DINT;
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    17
typedef int64_t   IEC_LINT;
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    18
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    19
typedef uint8_t    IEC_USINT;
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    20
typedef uint16_t   IEC_UINT;
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    21
typedef uint32_t   IEC_UDINT;
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    22
typedef uint64_t   IEC_ULINT;
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    23
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    24
typedef uint8_t    IEC_BYTE;
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    25
typedef uint16_t   IEC_WORD;
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    26
typedef uint32_t   IEC_DWORD;
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    27
typedef uint64_t   IEC_LWORD;
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    28
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    29
typedef float    IEC_REAL;
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    30
typedef double   IEC_LREAL;
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    31
254
28bd86c56793 Initial TIME support in debugger
Edouard Tisserant
parents: 212
diff changeset
    32
typedef struct {
59
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    33
    long int tv_sec;            /* Seconds.  */
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    34
    long int tv_nsec;           /* Nanoseconds.  */
256
101c7f148b9a Changed packing declaration in iec_types
Edouard Tisserant
parents: 254
diff changeset
    35
}__attribute__((packed)) IEC_TIMESPEC;
59
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    36
254
28bd86c56793 Initial TIME support in debugger
Edouard Tisserant
parents: 212
diff changeset
    37
typedef IEC_TIMESPEC IEC_TIME;
28bd86c56793 Initial TIME support in debugger
Edouard Tisserant
parents: 212
diff changeset
    38
typedef IEC_TIMESPEC IEC_DATE;
28bd86c56793 Initial TIME support in debugger
Edouard Tisserant
parents: 212
diff changeset
    39
typedef IEC_TIMESPEC IEC_DT;
28bd86c56793 Initial TIME support in debugger
Edouard Tisserant
parents: 212
diff changeset
    40
typedef IEC_TIMESPEC IEC_TOD;
59
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    41
161
a27957e13d42 STRING max size and length type can now be overloaded (define STR_MAX_LEN and STR_LEN_TYPE before including iec_types.h)
etisserant
parents: 137
diff changeset
    42
#ifndef STR_MAX_LEN
170
e10fbd3707df Disable compiling warnings on Windows
lbessard
parents: 168
diff changeset
    43
#define STR_MAX_LEN 126
161
a27957e13d42 STRING max size and length type can now be overloaded (define STR_MAX_LEN and STR_LEN_TYPE before including iec_types.h)
etisserant
parents: 137
diff changeset
    44
#endif
a27957e13d42 STRING max size and length type can now be overloaded (define STR_MAX_LEN and STR_LEN_TYPE before including iec_types.h)
etisserant
parents: 137
diff changeset
    45
a27957e13d42 STRING max size and length type can now be overloaded (define STR_MAX_LEN and STR_LEN_TYPE before including iec_types.h)
etisserant
parents: 137
diff changeset
    46
#ifndef STR_LEN_TYPE
163
61f65dd6eeb9 Fixed errors in string_to_int.
etisserant
parents: 161
diff changeset
    47
#define STR_LEN_TYPE int8_t
161
a27957e13d42 STRING max size and length type can now be overloaded (define STR_MAX_LEN and STR_LEN_TYPE before including iec_types.h)
etisserant
parents: 137
diff changeset
    48
#endif
a27957e13d42 STRING max size and length type can now be overloaded (define STR_MAX_LEN and STR_LEN_TYPE before including iec_types.h)
etisserant
parents: 137
diff changeset
    49
a27957e13d42 STRING max size and length type can now be overloaded (define STR_MAX_LEN and STR_LEN_TYPE before including iec_types.h)
etisserant
parents: 137
diff changeset
    50
typedef STR_LEN_TYPE __strlen_t;
59
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    51
typedef struct {
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    52
    __strlen_t len;
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    53
    uint8_t body[STR_MAX_LEN];
256
101c7f148b9a Changed packing declaration in iec_types
Edouard Tisserant
parents: 254
diff changeset
    54
} __attribute__((packed)) IEC_STRING;
59
37ba6f9e51e2 Splitted type declaration out of iec std lib, to avoid DWORD, BOOL, TIME ,... clash with windows.h
etisserant
parents:
diff changeset
    55
137
9ceda59abd27 Re-organized types headers, to ease debug code generation
etisserant
parents: 59
diff changeset
    56
#endif /*IEC_TYPES_H*/