xref: /illumos-gate/usr/src/compat/bhyve/stdatomic.h (revision dc8050e8)
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