diff --git a/sys/sys/param.h b/sys/sys/param.h index 8920f78..7fad5d7 100644 --- a/sys/sys/param.h +++ b/sys/sys/param.h @@ -344,4 +344,11 @@ __END_DECLS */ #define __PAST_END(array, offset) (((__typeof__(*(array)) *)(array))[offset]) +/* + * Make sure to read given variable only once. Useful e.g. if you are reading + * a pointer and dereference it multiple times, but some other code may set it + * to something else. + */ +#define READ_ONCE(var) (*(volatile __typeof(var) *)&(var)) + #endif /* _SYS_PARAM_H_ */