lib/accessor.h
changeset 885 b2604fc6d25c
parent 873 dea39ef02847
child 894 39086e324665
equal deleted inserted replaced
880:599e88d12f9a 885:b2604fc6d25c
   111 #define __GET_LOCATED_REF(name, ...)\
   111 #define __GET_LOCATED_REF(name, ...)\
   112 	(&((*(name.value)) __VA_ARGS__))
   112 	(&((*(name.value)) __VA_ARGS__))
   113 
   113 
   114 
   114 
   115 // variable setting macros
   115 // variable setting macros
   116 #define __SET_VAR(prefix, name, new_value, ...)\
   116 #define __SET_VAR(prefix, name, suffix, new_value)\
   117 	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 suffix = new_value
   118 #define __SET_EXTERNAL(prefix, name, new_value, ...)\
   118 #define __SET_EXTERNAL(prefix, name, suffix, new_value)\
   119 	{extern IEC_BYTE __IS_GLOBAL_##name##_FORCED();\
   119 	{extern IEC_BYTE __IS_GLOBAL_##name##_FORCED();\
   120     if (!(prefix name.flags & __IEC_FORCE_FLAG || __IS_GLOBAL_##name##_FORCED()))\
   120     if (!(prefix name.flags & __IEC_FORCE_FLAG || __IS_GLOBAL_##name##_FORCED()))\
   121 		(*(prefix name.value)) __VA_ARGS__ = new_value;}
   121 		(*(prefix name.value)) suffix = new_value;}
   122 #define __SET_EXTERNAL_FB(prefix, name, new_value, ...)\
   122 #define __SET_EXTERNAL_FB(prefix, name, suffix, new_value)\
   123 	__SET_VAR((*(prefix name)), __VA_ARGS__, new_value)
   123 	__SET_VAR((*(prefix name)), suffix, new_value)
   124 #define __SET_LOCATED(prefix, name, new_value, ...)\
   124 #define __SET_LOCATED(prefix, name, suffix, new_value)\
   125 	if (!(prefix name.flags & __IEC_FORCE_FLAG)) *(prefix name.value) __VA_ARGS__ = new_value
   125 	if (!(prefix name.flags & __IEC_FORCE_FLAG)) *(prefix name.value) suffix = new_value
   126 
   126 
   127 #endif //__ACCESSOR_H
   127 #endif //__ACCESSOR_H