103 |
103 |
104 // variable setting macros |
104 // variable setting macros |
105 #define __SET_VAR(prefix, name, new_value, ...)\ |
105 #define __SET_VAR(prefix, name, new_value, ...)\ |
106 if (!(prefix name.flags & __IEC_FORCE_FLAG)) prefix name.value __VA_ARGS__ = new_value |
106 if (!(prefix name.flags & __IEC_FORCE_FLAG)) prefix name.value __VA_ARGS__ = new_value |
107 #define __SET_EXTERNAL(prefix, name, new_value, ...)\ |
107 #define __SET_EXTERNAL(prefix, name, new_value, ...)\ |
108 {extern IEC_BYTE __IS_GLOBAL_##name##_FORCED();\ |
108 {extern IEC_BYTE __IS_GLOBAL_##name##_FORCED(void);\ |
109 if (!(prefix name.flags & __IEC_FORCE_FLAG || __IS_GLOBAL_##name##_FORCED()))\ |
109 if (!(prefix name.flags & __IEC_FORCE_FLAG || __IS_GLOBAL_##name##_FORCED()))\ |
110 (*(prefix name.value)) __VA_ARGS__ = new_value;} |
110 (*(prefix name.value)) __VA_ARGS__ = new_value;} |
111 #define __SET_EXTERNAL_FB(prefix, name, new_value, ...)\ |
111 #define __SET_EXTERNAL_FB(prefix, name, new_value, ...)\ |
112 __SET_VAR((*(prefix name)), __VA_ARGS__, new_value) |
112 __SET_VAR((*(prefix name)), __VA_ARGS__, new_value) |
113 #define __SET_LOCATED(prefix, name, new_value, ...)\ |
113 #define __SET_LOCATED(prefix, name, new_value, ...)\ |
114 if (!(prefix name.flags & __IEC_FORCE_FLAG)) *(prefix name.value) __VA_ARGS__ = new_value |
114 if (!(prefix name.flags & __IEC_FORCE_FLAG)) *(prefix name.value) __VA_ARGS__ = new_value |
115 |
115 |