71 |
71 |
72 // variable getting macros |
72 // variable getting macros |
73 #define __GET_VAR(name, ...)\ |
73 #define __GET_VAR(name, ...)\ |
74 name.value __VA_ARGS__ |
74 name.value __VA_ARGS__ |
75 #define __GET_EXTERNAL(name, ...)\ |
75 #define __GET_EXTERNAL(name, ...)\ |
76 ((name.flags & __IEC_FORCE_FLAG) ? name.fvalue __VA_ARGS__ : *(name.value) __VA_ARGS__) |
76 ((name.flags & __IEC_FORCE_FLAG) ? name.fvalue __VA_ARGS__ : (*(name.value)) __VA_ARGS__) |
77 #define __GET_LOCATED(name, ...)\ |
77 #define __GET_LOCATED(name, ...)\ |
78 ((name.flags & __IEC_FORCE_FLAG) ? name.fvalue __VA_ARGS__ : *(name.value) __VA_ARGS__) |
78 ((name.flags & __IEC_FORCE_FLAG) ? name.fvalue __VA_ARGS__ : (*(name.value)) __VA_ARGS__) |
79 #define __GET_VAR_BY_REF(name, ...)\ |
79 #define __GET_VAR_BY_REF(name, ...)\ |
80 ((name.flags & __IEC_FORCE_FLAG) ? &(name.fvalue __VA_ARGS__) : &(name.value __VA_ARGS__)) |
80 ((name.flags & __IEC_FORCE_FLAG) ? &(name.fvalue __VA_ARGS__) : &(name.value __VA_ARGS__)) |
81 #define __GET_EXTERNAL_BY_REF(name, ...)\ |
81 #define __GET_EXTERNAL_BY_REF(name, ...)\ |
82 ((name.flags & __IEC_FORCE_FLAG) ? &(name.fvalue __VA_ARGS__) : &(*(name.value) __VA_ARGS__)) |
82 ((name.flags & __IEC_FORCE_FLAG) ? &(name.fvalue __VA_ARGS__) : &((*(name.value)) __VA_ARGS__)) |
83 #define __GET_LOCATED_BY_REF(name, ...)\ |
83 #define __GET_LOCATED_BY_REF(name, ...)\ |
84 ((name.flags & __IEC_FORCE_FLAG) ? &(name.fvalue __VA_ARGS__) : &(*(name.value) __VA_ARGS__)) |
84 ((name.flags & __IEC_FORCE_FLAG) ? &(name.fvalue __VA_ARGS__) : &((*(name.value)) __VA_ARGS__)) |
85 |
85 |
86 // variable setting macros |
86 // variable setting macros |
87 #define __SET_VAR(prefix, name, new_value, ...)\ |
87 #define __SET_VAR(prefix, name, new_value, ...)\ |
88 if (!(prefix name.flags & __IEC_FORCE_FLAG)) prefix name.value __VA_ARGS__ = new_value |
88 if (!(prefix name.flags & __IEC_FORCE_FLAG)) prefix name.value __VA_ARGS__ = new_value |
89 #define __SET_EXTERNAL(prefix, name, new_value, ...)\ |
89 #define __SET_EXTERNAL(prefix, name, new_value, ...)\ |