From 196eae0d9ee0d2d8ca42e96e49d6988313d39f6d Mon Sep 17 00:00:00 2001 From: Richard Braun Date: Wed, 15 Mar 2017 21:43:41 +0100 Subject: kern/syscnt: replace the evcnt module The syscnt module supports more generic counters, in addition to atomic access from any context on any architecture. --- kern/macros.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'kern/macros.h') 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) -- cgit v1.2.3