From 8c0c96c5ced30d03454e3a1af20223585b3cf8db Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Tue, 20 Apr 2021 15:34:56 -0600 Subject: global: use ck for loads/stores, rather than macro maze Signed-off-by: Jason A. Donenfeld --- src/support.h | 30 +++++++++--------------------- 1 file changed, 9 insertions(+), 21 deletions(-) (limited to 'src/support.h') diff --git a/src/support.h b/src/support.h index 041ffc3..5eff4fb 100644 --- a/src/support.h +++ b/src/support.h @@ -57,6 +57,15 @@ MALLOC_DECLARE(M_WG); #define IFT_WIREGUARD IFT_PPP #endif +#ifndef ck_pr_store_bool +#define ck_pr_store_bool(dst, val) ck_pr_store_8((uint8_t *)(dst), (uint8_t)(val)) +#endif + +#ifndef ck_pr_load_bool +#define ck_pr_load_bool(src) ((bool)ck_pr_load_8((uint8_t *)(src))) +#endif + + static inline int sogetsockaddr(struct socket *so, struct sockaddr **nam) { @@ -68,25 +77,4 @@ sogetsockaddr(struct socket *so, struct sockaddr **nam) return (error); } -/* These are defined in sys/compat/linuxkpi/common/include/linux/compiler.h, - * however I don't really want to include all that. */ -#define barrier() __asm__ __volatile__("": : :"memory") - -#define ACCESS_ONCE(x) (*(volatile __typeof(x) *)&(x)) - -#define WRITE_ONCE(x,v) do { \ - barrier(); \ - ACCESS_ONCE(x) = (v); \ - barrier(); \ -} while (0) - -#define READ_ONCE(x) ({ \ - __typeof(x) __var = ({ \ - barrier(); \ - ACCESS_ONCE(x); \ - }); \ - barrier(); \ - __var; \ -}) - #endif -- cgit v1.2.3-59-g8ed1b