opnsense-src/sys/i386/include
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
..
pc sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
xen xen/i386: enable the platform hypercall for i386 2016-05-03 08:05:14 +00:00
_align.h
_bus.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
_inttypes.h
_limits.h Copy amd64 _limits.h to x86 and merge with i386 _limits.h. Replace 2012-02-28 18:24:28 +00:00
_stdint.h Copy amd64 _stdint.h to x86 and merge with i386 _stdint.h. Replace 2012-02-28 18:38:33 +00:00
_types.h Copy amd64 _types.h to x86 and merge with i386 _types.h. Replace existing 2012-02-28 18:15:28 +00:00
acpica_machdep.h Merge acpica_machdep.h for amd64 and i386 and move to x86. In fact, these 2013-08-13 22:05:10 +00:00
apm_bios.h
apm_segments.h
asm.h Remove lint support from system headers and MD x86 headers. 2017-11-23 11:40:16 +00:00
asmacros.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
atomic.h Add atomic_load(9) and atomic_store(9) operations. 2017-12-19 09:59:20 +00:00
bootinfo.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
bus.h Revert r243960 based on feedback regarding keeping x86 headers unified 2012-12-13 21:27:20 +00:00
bus_dma.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
clock.h xen: implement an early timer for Xen PVH 2014-03-11 10:20:42 +00:00
counter.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
cpu.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
cpufunc.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
cputypes.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
cserial.h Fix improper use of "its". 2016-11-08 23:59:41 +00:00
db_machdep.h Fix printing of negative offsets (typically from frame pointers) again. 2017-03-26 18:46:35 +00:00
dump.h Factor out duplicated code from dumpsys() on each architecture into generic 2015-01-07 01:01:39 +00:00
efi.h Fix building on i386 and arm. But 'public domain' headers on the files 2016-10-13 06:56:23 +00:00
elan_mmcr.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
elf.h Convert machine/elf.h, machine/frame.h, machine/sigframe.h, 2013-02-20 17:39:52 +00:00
endian.h Copy amd64 endian.h to x86 and merge with i386 endian.h. Replace 2012-02-28 19:39:54 +00:00
exec.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
fdt.h Add basic support for FDT to i386 & amd64. This change includes: 2013-05-21 03:05:49 +00:00
float.h Copy amd64 float.h to x86 and merge with i386 float.h. Replace 2012-03-04 14:00:32 +00:00
floatingpoint.h spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
frame.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
gdb_machdep.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
ieeefp.h spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
if_wl_wavelan.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
in_cksum.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
intr_machdep.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
ioctl_bt848.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
ioctl_meteor.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
iodev.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
kdb.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
limits.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
md_var.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
memdev.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
metadata.h Move amd64 metadata.h to x86 and share with i386 2016-01-07 19:47:26 +00:00
minidump.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
mp_watchdog.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
nexusvar.h
npx.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ofw_machdep.h Add basic support for FDT to i386 & amd64. This change includes: 2013-05-21 03:05:49 +00:00
param.h i386: Bump KSTACK_PAGES default to match amd64 2017-12-11 04:32:37 +00:00
pcaudioio.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
pcb.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
pcb_ext.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
pci_cfgreg.h Move {amd64,i386}/pci/pci_bus.c and {amd64,i386}/include/pci_cfgreg.h to 2011-06-22 21:04:13 +00:00
pcpu.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
perfmon.h
pmap.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
pmc_mdep.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
ppireg.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
proc.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
profile.h Remove lint support from system headers and MD x86 headers. 2017-11-23 11:40:16 +00:00
psl.h Copy i386 psl.h to x86 and replace amd64/i386/pc98 psl.h with stubs. 2012-03-19 21:29:57 +00:00
ptrace.h Copy amd64 ptrace.h to x86 and merge with i386 ptrace.h. Replace 2012-03-04 20:24:28 +00:00
pvclock.h Generalized parts of the XEN timer code into a generic pvclock 2015-02-04 08:26:43 +00:00
reg.h Copy i386 reg.h to x86 and merge with amd64 reg.h. Replace i386/amd64/pc98 2012-03-18 19:06:38 +00:00
reloc.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
resource.h Add support for managing PCI bus numbers. As with BARs and PCI-PCI bridge 2014-02-12 04:30:37 +00:00
runq.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
segments.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
setjmp.h Copy amd64 setjmp.h to x86 and replace amd64/i386/pc98 setjmp.h with stubs. 2012-02-28 22:17:52 +00:00
sf_buf.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
sigframe.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
signal.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
smapi.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
smp.h Merge common parts of i386 and amd64 md_var.h and smp.h into 2015-12-07 17:41:20 +00:00
speaker.h
specialreg.h Copy i386 specialreg.h to x86 and merge with amd64 specialreg.h. Replace 2012-03-19 21:34:11 +00:00
stack.h Merge stack(9) implementations for i386 and amd64 under x86/. 2015-09-11 03:24:07 +00:00
stdarg.h Copy amd64 stdarg.h to x86 and replace amd64/i386/pc98 stdarg.h with stubs. 2012-02-28 22:30:58 +00:00
sysarch.h Copy amd64 sysarch.h to x86 and merge with i386 sysarch.h. Replace 2012-03-19 21:57:31 +00:00
timerreg.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
trap.h Copy amd64 trap.h to x86 and replace amd64/i386/pc98 trap.h with stubs. 2012-03-04 14:12:57 +00:00
tss.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ucontext.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
varargs.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vdso.h Implement mechanism to export some kernel timekeeping data to 2012-06-22 07:06:40 +00:00
vm.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
vm86.h sys/i386: further adoption of SPDX licensing ID tags. 2017-11-27 15:08:52 +00:00
vmparam.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00