freebsd-dev/sys/arm
Ian Lepore 044477e294 Add 8 and 16 bit versions of atomic_cmpset and atomic_fcmpset for arm.
This adds 8 and 16 bit versions of the cmpset and fcmpset functions. Macros
are used to generate all the flavors from the same set of instructions; the
macro expansion handles the couple minor differences between each size
variation (generating ldrexb/ldrexh/ldrex for 8/16/32, etc).

In addition to handling new sizes, the instruction sequences used for cmpset
and fcmpset are rewritten to be a bit shorter/faster, and the new sequence
will not return false when *dst==*old but the store-exclusive fails because
of concurrent writers. Instead, it just loops like ldrex/strex sequences
normally do until it gets a non-conflicted store. The manpage allows LL/SC
architectures to bogusly return false, but there's no reason to actually do
so, at least on arm.

Reviewed by:	cognet
2019-10-01 19:39:00 +00:00
..
allwinner arm: allwinner: Add pll_mipi to the files 2019-09-28 23:01:23 +00:00
altera/socfpga o Add support for multi-port instances of Synopsys DesignWare APB GPIO 2019-09-04 15:37:24 +00:00
amlogic/aml8726 Implement missing MMCBR ivars 2019-07-04 14:15:04 +00:00
annapurna/alpine
arm Improve MD page fault handlers. 2019-09-27 18:43:36 +00:00
broadcom/bcm2835 [rpi] Inherit framebuffer BPP value from the VideoCore firmware 2019-09-08 09:47:21 +00:00
cloudabi32
conf Include dwgpio to the build. 2019-09-04 15:55:44 +00:00
freescale Apply a runtime patch to the FDT data for imx6 to fix iomuxc problems. 2019-09-15 19:38:15 +00:00
include Add 8 and 16 bit versions of atomic_cmpset and atomic_fcmpset for arm. 2019-10-01 19:39:00 +00:00
mv arm64: a37x0_gpio: Use syscon instead of MMIO region 2019-08-19 14:28:54 +00:00
nvidia Change synchonization rules for vm_page reference counting. 2019-09-09 21:32:42 +00:00
qemu
ralink Remove support for kernel.tramp and kernel.tramp.gz 2019-07-27 17:24:19 +00:00
rockchip
samsung/exynos exynos5: avoid NULL deref in error case 2019-08-30 00:36:17 +00:00
ti Make the ti_sysc device quiet. It's an internal utility pseudo-device 2019-09-15 01:02:01 +00:00
versatile
xilinx