lib/accessor.h
changeset 227 560c1231ad1f
parent 225 36d05588f91b
parent 224 270ba3d91e59
child 231 b8527b0abe75
equal deleted inserted replaced
226:29f8ffc203c1 227:560c1231ad1f
    19 	__IEC_##type##_p name;
    19 	__IEC_##type##_p name;
    20 
    20 
    21 
    21 
    22 // variable initialization macros
    22 // variable initialization macros
    23 #define __INIT_RETAIN(name, retained)\
    23 #define __INIT_RETAIN(name, retained)\
    24     name.flags |= retained?__RETAIN_FLAG:0;
    24     name.flags |= retained?__IEC_RETAIN_FLAG:0;
    25 #define __INIT_VAR(name, initial, retained)\
    25 #define __INIT_VAR(name, initial, retained)\
    26 	name.value = initial;\
    26 	name.value = initial;\
    27 	__INIT_RETAIN(name, retained)
    27 	__INIT_RETAIN(name, retained)
    28 #define __INIT_GLOBAL(name, initial, retained)\
    28 #define __INIT_GLOBAL(name, initial, retained)\
    29 	(*GLOBAL__##name).value = initial;\
    29 	(*GLOBAL__##name).value = initial;\
    45 
    45 
    46 // variable getting macros
    46 // variable getting macros
    47 #define __GET_VAR(name, ...)\
    47 #define __GET_VAR(name, ...)\
    48 	name.value __VA_ARGS__
    48 	name.value __VA_ARGS__
    49 #define __GET_EXTERNAL(name, ...)\
    49 #define __GET_EXTERNAL(name, ...)\
    50 	(name.flags & __FORCE_FLAG) ? name.fvalue __VA_ARGS__ : *(name.value) __VA_ARGS__
    50 	(name.flags & __IEC_FORCE_FLAG) ? name.fvalue __VA_ARGS__ : *(name.value) __VA_ARGS__
    51 #define __GET_LOCATED(name, ...)\
    51 #define __GET_LOCATED(name, ...)\
    52 	(name.flags & __FORCE_FLAG) ? name.fvalue __VA_ARGS__ : *(name.value) __VA_ARGS__
    52 	(name.flags & __IEC_FORCE_FLAG) ? name.fvalue __VA_ARGS__ : *(name.value) __VA_ARGS__
    53 #define __GET_VAR_BY_REF(name)\
    53 #define __GET_VAR_BY_REF(name)\
    54 	&(name)
    54 	&(name)
    55 #define __GET_EXTERNAL_BY_REF(name)\
    55 #define __GET_EXTERNAL_BY_REF(name)\
    56 	name.value
    56 	name.value
    57 #define __GET_LOCATED_BY_REF(name)\
    57 #define __GET_LOCATED_BY_REF(name)\
    58 	name.value
    58 	name.value
    59 
    59 
    60 // variable setting macros
    60 // variable setting macros
    61 #define __SET_VAR(name, new_value, ...)\
    61 #define __SET_VAR(name, new_value, ...)\
    62 	if (!(name.flags & __FORCE_FLAG)) name.value __VA_ARGS__ = new_value
    62 	if (!(name.flags & __IEC_FORCE_FLAG)) name.value __VA_ARGS__ = new_value
    63 #define __SET_EXTERNAL(name, new_value, ...)\
    63 #define __SET_EXTERNAL(name, new_value, ...)\
    64 	if (!(name.flags & __FORCE_FLAG)) *(name.value) __VA_ARGS__ = new_value
    64 	if (!(name.flags & __IEC_FORCE_FLAG)) *(name.value) __VA_ARGS__ = new_value
    65 #define __SET_LOCATED(name, new_value, ...)\
    65 #define __SET_LOCATED(name, new_value, ...)\
    66 	if (!(name.flags & __FORCE_FLAG)) *(name.value) __VA_ARGS__ = new_value
    66 	if (!(name.flags & __IEC_FORCE_FLAG)) *(name.value) __VA_ARGS__ = new_value
    67 
    67 
    68 #endif //__ACCESSOR_H
    68 #endif //__ACCESSOR_H