20 |
20 |
21 |
21 |
22 // variable initialization macros |
22 // variable initialization macros |
23 #define __INIT_STRUCT(name, initial, retained)\ |
23 #define __INIT_STRUCT(name, initial, retained)\ |
24 name.value = initial;\ |
24 name.value = initial;\ |
25 name.flags |= retained?RETAIN_FLAG:0; |
25 name.flags |= retained?__IEC_RETAIN_FLAG:0; |
26 #define __INIT_VAR(name, initial, retained)\ |
26 #define __INIT_VAR(name, initial, retained)\ |
27 __INIT_STRUCT(name, initial, retained) |
27 __INIT_STRUCT(name, initial, retained) |
28 #define __INIT_GLOBAL(name, initial, retained)\ |
28 #define __INIT_GLOBAL(name, initial, retained)\ |
29 __INIT_STRUCT((*GLOBAL__##name), initial, retained) |
29 __INIT_STRUCT((*GLOBAL__##name), initial, retained) |
30 #define __INIT_GLOBAL_LOCATED(resource, name, location, retained)\ |
30 #define __INIT_GLOBAL_LOCATED(resource, name, location, retained)\ |
41 |
41 |
42 // variable getting macros |
42 // variable getting macros |
43 #define __GET_VAR(name, ...)\ |
43 #define __GET_VAR(name, ...)\ |
44 name.value __VA_ARGS__ |
44 name.value __VA_ARGS__ |
45 #define __GET_EXTERNAL(name)\ |
45 #define __GET_EXTERNAL(name)\ |
46 name.flags & FORCE_FLAG ? name.fvalue : *(name.value) |
46 name.flags & __IEC_FORCE_FLAG ? name.fvalue : *(name.value) |
47 #define __GET_LOCATED(name)\ |
47 #define __GET_LOCATED(name)\ |
48 name.flags & FORCE_FLAG ? name.fvalue : *(name.value) |
48 name.flags & __IEC_FORCE_FLAG ? name.fvalue : *(name.value) |
49 #define __GET_VAR_BY_REF(name)\ |
49 #define __GET_VAR_BY_REF(name)\ |
50 &(name) |
50 &(name) |
51 #define __GET_EXTERNAL_BY_REF(name)\ |
51 #define __GET_EXTERNAL_BY_REF(name)\ |
52 name.value |
52 name.value |
53 #define __GET_LOCATED_BY_REF(name)\ |
53 #define __GET_LOCATED_BY_REF(name)\ |
54 name.value |
54 name.value |
55 |
55 |
56 // variable setting macros |
56 // variable setting macros |
57 #define __SET_VAR(name, new_value, ...)\ |
57 #define __SET_VAR(name, new_value, ...)\ |
58 if (!(name.flags & FORCE_FLAG)) name.value __VA_ARGS__ = new_value |
58 if (!(name.flags & __IEC_FORCE_FLAG)) name.value __VA_ARGS__ = new_value |
59 #define __SET_EXTERNAL(name, new_value)\ |
59 #define __SET_EXTERNAL(name, new_value)\ |
60 if (!(name.flags & FORCE_FLAG)) *(name.value) = new_value |
60 if (!(name.flags & __IEC_FORCE_FLAG)) *(name.value) = new_value |
61 #define __SET_LOCATED(name, new_value)\ |
61 #define __SET_LOCATED(name, new_value)\ |
62 if (!(name.flags & FORCE_FLAG)) *(name.value) = new_value |
62 if (!(name.flags & __IEC_FORCE_FLAG)) *(name.value) = new_value |
63 |
63 |
64 #endif //__ACCESSOR_H |
64 #endif //__ACCESSOR_H |