diff options
Diffstat (limited to 'kern/macros.h')
-rw-r--r-- | kern/macros.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/kern/macros.h b/kern/macros.h index a5b7b032..f3eb1075 100644 --- a/kern/macros.h +++ b/kern/macros.h @@ -55,6 +55,9 @@ #define structof(ptr, type, member) \ ((type *)((char *)(ptr) - offsetof(type, member))) +#define read_once(x) (*(volatile typeof(x) *)&(x)) +#define write_once(x, v) (read_once(x) = (v)) + #define alignof(x) __alignof__(x) #define likely(expr) __builtin_expect(!!(expr), 1) |