90 ((name.flags & __IEC_FORCE_FLAG) ? name.fvalue __VA_ARGS__ : (*(name.value)) __VA_ARGS__) |
90 ((name.flags & __IEC_FORCE_FLAG) ? name.fvalue __VA_ARGS__ : (*(name.value)) __VA_ARGS__) |
91 #define __GET_EXTERNAL_FB(name, ...)\ |
91 #define __GET_EXTERNAL_FB(name, ...)\ |
92 __GET_VAR(((*name) __VA_ARGS__)) |
92 __GET_VAR(((*name) __VA_ARGS__)) |
93 #define __GET_LOCATED(name, ...)\ |
93 #define __GET_LOCATED(name, ...)\ |
94 ((name.flags & __IEC_FORCE_FLAG) ? name.fvalue __VA_ARGS__ : (*(name.value)) __VA_ARGS__) |
94 ((name.flags & __IEC_FORCE_FLAG) ? name.fvalue __VA_ARGS__ : (*(name.value)) __VA_ARGS__) |
|
95 |
95 #define __GET_VAR_BY_REF(name, ...)\ |
96 #define __GET_VAR_BY_REF(name, ...)\ |
96 ((name.flags & __IEC_FORCE_FLAG) ? &(name.fvalue __VA_ARGS__) : &(name.value __VA_ARGS__)) |
97 ((name.flags & __IEC_FORCE_FLAG) ? &(name.fvalue __VA_ARGS__) : &(name.value __VA_ARGS__)) |
97 #define __GET_EXTERNAL_BY_REF(name, ...)\ |
98 #define __GET_EXTERNAL_BY_REF(name, ...)\ |
98 ((name.flags & __IEC_FORCE_FLAG) ? &(name.fvalue __VA_ARGS__) : &((*(name.value)) __VA_ARGS__)) |
99 ((name.flags & __IEC_FORCE_FLAG) ? &(name.fvalue __VA_ARGS__) : &((*(name.value)) __VA_ARGS__)) |
99 #define __GET_EXTERNAL_FB_BY_REF(name, ...)\ |
100 #define __GET_EXTERNAL_FB_BY_REF(name, ...)\ |
100 __GET_EXTERNAL_BY_REF(((*name) __VA_ARGS__)) |
101 __GET_EXTERNAL_BY_REF(((*name) __VA_ARGS__)) |
101 #define __GET_LOCATED_BY_REF(name, ...)\ |
102 #define __GET_LOCATED_BY_REF(name, ...)\ |
102 ((name.flags & __IEC_FORCE_FLAG) ? &(name.fvalue __VA_ARGS__) : &((*(name.value)) __VA_ARGS__)) |
103 ((name.flags & __IEC_FORCE_FLAG) ? &(name.fvalue __VA_ARGS__) : &((*(name.value)) __VA_ARGS__)) |
|
104 |
|
105 #define __GET_VAR_REF(name, ...)\ |
|
106 (&(name.value __VA_ARGS__)) |
|
107 #define __GET_EXTERNAL_REF(name, ...)\ |
|
108 (&((*(name.value)) __VA_ARGS__)) |
|
109 #define __GET_EXTERNAL_FB_REF(name, ...)\ |
|
110 (&(__GET_VAR(((*name) __VA_ARGS__)))) |
|
111 #define __GET_LOCATED_REF(name, ...)\ |
|
112 (&((*(name.value)) __VA_ARGS__)) |
|
113 |
103 |
114 |
104 // variable setting macros |
115 // variable setting macros |
105 #define __SET_VAR(prefix, name, new_value, ...)\ |
116 #define __SET_VAR(prefix, name, new_value, ...)\ |
106 if (!(prefix name.flags & __IEC_FORCE_FLAG)) prefix name.value __VA_ARGS__ = new_value |
117 if (!(prefix name.flags & __IEC_FORCE_FLAG)) prefix name.value __VA_ARGS__ = new_value |
107 #define __SET_EXTERNAL(prefix, name, new_value, ...)\ |
118 #define __SET_EXTERNAL(prefix, name, new_value, ...)\ |