123 |
123 |
124 // variable setting macros |
124 // variable setting macros |
125 #define __SET_VAR(prefix, name, suffix, new_value)\ |
125 #define __SET_VAR(prefix, name, suffix, new_value)\ |
126 if (!(prefix name.flags & __IEC_FORCE_FLAG)) prefix name.value suffix = new_value |
126 if (!(prefix name.flags & __IEC_FORCE_FLAG)) prefix name.value suffix = new_value |
127 #define __SET_EXTERNAL(prefix, name, suffix, new_value)\ |
127 #define __SET_EXTERNAL(prefix, name, suffix, new_value)\ |
128 {extern IEC_BYTE __IS_GLOBAL_##name##_FORCED();\ |
128 {extern IEC_BYTE __IS_GLOBAL_##name##_FORCED(void);\ |
129 if (!(prefix name.flags & __IEC_FORCE_FLAG || __IS_GLOBAL_##name##_FORCED()))\ |
129 if (!(prefix name.flags & __IEC_FORCE_FLAG || __IS_GLOBAL_##name##_FORCED()))\ |
130 (*(prefix name.value)) suffix = new_value;} |
130 (*(prefix name.value)) suffix = new_value;} |
131 #define __SET_EXTERNAL_FB(prefix, name, suffix, new_value)\ |
131 #define __SET_EXTERNAL_FB(prefix, name, suffix, new_value)\ |
132 __SET_VAR((*(prefix name)), suffix, new_value) |
132 __SET_VAR((*(prefix name)), suffix, new_value) |
133 #define __SET_LOCATED(prefix, name, suffix, new_value)\ |
133 #define __SET_LOCATED(prefix, name, suffix, new_value)\ |