freebsd-dev/sys/arm
Konstantin Belousov 30d4f9e888 Add atomic_load(9) and atomic_store(9) operations.
They provide relaxed-ordered atomic access semantic.  Due to the
FreeBSD memory model, the operations are syntaxical wrappers around
the volatile accesses.  The volatile qualifier is used to ensure that
the access not optimized out and in turn depends on the volatile
semantic as implemented by supported compilers.

The motivation for adding the operation is to help people coming from
other systems or knowing the C11/C++ standards where atomics have
special type and require use of the special access operations.  It is
still the case that FreeBSD requires plain load and stores of aligned
integer types to be atomic.

Suggested by:	jhb
Reviewed by:	alc, jhb
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D13534
2017-12-19 09:59:20 +00:00
..
allwinner aw_mp.c: use argument name in macros 2017-12-06 14:53:53 +00:00
altera/socfpga Tag all armv7 kernels as such in their machine config line. 2017-10-05 23:01:50 +00:00
amlogic/aml8726 Tag all armv7 kernels as such in their machine config line. 2017-10-05 23:01:50 +00:00
annapurna/alpine Tag all armv7 kernels as such in their machine config line. 2017-10-05 23:01:50 +00:00
arm Move instantiation of msgbufp from 9 MD files to subr_prf.c. 2017-12-07 07:55:38 +00:00
at91 sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
broadcom/bcm2835 Do not attempt to refill the TX fifo if there is no data left to transfer. 2017-12-18 02:34:37 +00:00
cavium/cns11xx Allow setting access-width for UART registers. 2017-02-27 20:08:42 +00:00
cloudabi32 Correct some more places where TO_PTR() should be used. 2017-11-26 14:53:56 +00:00
conf It's time to retire AHC_REG_PRETTY_PRINT and AHD_REG_PRETTY_PRINT from 2017-11-29 23:41:49 +00:00
freescale sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
include Add atomic_load(9) and atomic_store(9) operations. 2017-12-19 09:59:20 +00:00
lpc sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
mv sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
nvidia tegra: Do not define early printf function 2017-10-19 20:52:17 +00:00
qemu Tag all armv7 kernels as such in their machine config line. 2017-10-05 23:01:50 +00:00
ralink [arm] [rt1310] add initial RT1310 SoC code. 2017-05-06 06:14:46 +00:00
rockchip sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
samsung/exynos sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
ti sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
versatile sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
xilinx sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00
xscale sys/arm: further adoption of SPDX licensing ID tags. 2017-11-27 15:04:10 +00:00