author | laurent |
Fri, 30 Dec 2011 18:25:39 +0100 | |
changeset 396 | 155560bfe837 |
parent 256 | 101c7f148b9a |
child 741 | cdce312be3c4 |
permissions | -rwxr-xr-x |
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 | 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 | 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 | 37 |
typedef IEC_TIMESPEC IEC_TIME; |
38 |
typedef IEC_TIMESPEC IEC_DATE; |
|
39 |
typedef IEC_TIMESPEC IEC_DT; |
|
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 | 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 | 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 | 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*/ |