diff -r 3d682f87c870 -r dea39ef02847 lib/accessor.h --- a/lib/accessor.h Mon Feb 24 22:00:55 2014 +0000 +++ b/lib/accessor.h Sun Mar 02 16:42:56 2014 +0000 @@ -92,6 +92,7 @@ __GET_VAR(((*name) __VA_ARGS__)) #define __GET_LOCATED(name, ...)\ ((name.flags & __IEC_FORCE_FLAG) ? name.fvalue __VA_ARGS__ : (*(name.value)) __VA_ARGS__) + #define __GET_VAR_BY_REF(name, ...)\ ((name.flags & __IEC_FORCE_FLAG) ? &(name.fvalue __VA_ARGS__) : &(name.value __VA_ARGS__)) #define __GET_EXTERNAL_BY_REF(name, ...)\ @@ -101,6 +102,16 @@ #define __GET_LOCATED_BY_REF(name, ...)\ ((name.flags & __IEC_FORCE_FLAG) ? &(name.fvalue __VA_ARGS__) : &((*(name.value)) __VA_ARGS__)) +#define __GET_VAR_REF(name, ...)\ + (&(name.value __VA_ARGS__)) +#define __GET_EXTERNAL_REF(name, ...)\ + (&((*(name.value)) __VA_ARGS__)) +#define __GET_EXTERNAL_FB_REF(name, ...)\ + (&(__GET_VAR(((*name) __VA_ARGS__)))) +#define __GET_LOCATED_REF(name, ...)\ + (&((*(name.value)) __VA_ARGS__)) + + // variable setting macros #define __SET_VAR(prefix, name, new_value, ...)\ if (!(prefix name.flags & __IEC_FORCE_FLAG)) prefix name.value __VA_ARGS__ = new_value