1*dc8050e8SMarko Kiiskila /* 2*dc8050e8SMarko Kiiskila * This file and its contents are supplied under the terms of the 3*dc8050e8SMarko Kiiskila * Common Development and Distribution License ("CDDL"), version 1.0. 4*dc8050e8SMarko Kiiskila * You may only use this file in accordance with the terms of version 5*dc8050e8SMarko Kiiskila * 1.0 of the CDDL. 6*dc8050e8SMarko Kiiskila * 7*dc8050e8SMarko Kiiskila * A full copy of the text of the CDDL should have accompanied this 8*dc8050e8SMarko Kiiskila * source. A copy of the CDDL is also available via the Internet at 9*dc8050e8SMarko Kiiskila * http://www.illumos.org/license/CDDL. 10*dc8050e8SMarko Kiiskila */ 11*dc8050e8SMarko Kiiskila 12*dc8050e8SMarko Kiiskila /* 13*dc8050e8SMarko Kiiskila * Copyright 2020 OmniOS Community Edition (OmniOSce) Association. 14*dc8050e8SMarko Kiiskila */ 15*dc8050e8SMarko Kiiskila 16*dc8050e8SMarko Kiiskila #ifndef _COMPAT_FREEBSD_STDATOMIC_H_ 17*dc8050e8SMarko Kiiskila #define _COMPAT_FREEBSD_STDATOMIC_H_ 18*dc8050e8SMarko Kiiskila 19*dc8050e8SMarko Kiiskila #include <machine/atomic.h> 20*dc8050e8SMarko Kiiskila 21*dc8050e8SMarko Kiiskila /* 22*dc8050e8SMarko Kiiskila * For now, this is just enough to support the usage in usr/src/cmd/bhyve/rfb.c 23*dc8050e8SMarko Kiiskila * which uses these functions with atomic_bool/bool arguments. 24*dc8050e8SMarko Kiiskila */ 25*dc8050e8SMarko Kiiskila 26*dc8050e8SMarko Kiiskila #define atomic_bool volatile u_int 27*dc8050e8SMarko Kiiskila 28*dc8050e8SMarko Kiiskila #define atomic_compare_exchange_strong(p, ovalp, nval) \ 29*dc8050e8SMarko Kiiskila atomic_cmpset_int((p), *(ovalp), (nval)) 30*dc8050e8SMarko Kiiskila 31*dc8050e8SMarko Kiiskila #define atomic_exchange(p, nval) atomic_swap_int((p), (nval)) 32*dc8050e8SMarko Kiiskila 33*dc8050e8SMarko Kiiskila #endif /* _COMPAT_FREEBSD_STDATOMIC_H_ */ 34