freebsd-dev/sys/powerpc/include
Konstantin Belousov 0b39ffb35f On PowerPC 64bit, the linux-compat mb() definition is implemented with
lwsync instruction, which does not provide Store/Load barrier.  Fix
this by using "full" sync barrier for mb().

atomic_store_rel() does not need full barrier, change mb() call there
to the lwsync instruction if not hitting the known CPU erratas
(i.e. on 32bit).  Provide powerpc_lwsync() helper to isolate the
lwsync/sync compile time selection, and use it in atomic_store_rel()
and several other places which duplicate the code.

Noted by:	alc
Reviewed and tested by:	nwhitehorn
Sponsored by:	The FreeBSD Foundation
2015-11-24 09:13:21 +00:00
..
_align.h
_bus.h
_inttypes.h
_limits.h
_stdint.h
_types.h Follow up to r287014 2015-08-22 07:27:06 +00:00
altivec.h Dump VMX registers into the userland coredump. 2015-01-03 21:06:06 +00:00
asm.h Provide support for userland binaries using the new ELFv2 ABI. This is a 2015-11-23 17:07:51 +00:00
atomic.h On PowerPC 64bit, the linux-compat mb() definition is implemented with 2015-11-24 09:13:21 +00:00
bat.h
bus_dma.h
bus.h Revert r291009 until rman changes go in. 2015-11-19 04:41:16 +00:00
clock.h
counter.h
cpu.h cpu_number and cpu_swapout are never used, and only defined in powerpc. 2015-07-11 17:33:50 +00:00
cpufunc.h
db_machdep.h Truncate DB_SMALL_VALUE_MAX to a much lower value. 2015-01-04 01:45:26 +00:00
dbdma.h
dump.h Factor out duplicated code from dumpsys() on each architecture into generic 2015-01-07 01:01:39 +00:00
elf.h
endian.h
exec.h
float.h Rationalize BSD license on sys/*/include/float.h 2015-08-05 17:05:35 +00:00
floatingpoint.h
fpu.h
frame.h The AIM DAR (data access fault address register) and Book-E DEAR registers 2015-03-04 21:06:57 +00:00
gdb_machdep.h
hid.h
ieee.h
ieeefp.h
in_cksum.h Rationalize BSD license on sys/*/include/in_cksum.h 2015-08-05 19:05:12 +00:00
intr_machdep.h
kdb.h
limits.h
machdep.h
md_var.h Provide support for userland binaries using the new ELFv2 ABI. This is a 2015-11-23 17:07:51 +00:00
memdev.h
metadata.h
mmuvar.h
ofw_machdep.h
openpicreg.h
openpicvar.h
param.h Make kstack_pages a tunable on arm, x86, and powepc. On i386, the 2015-08-10 17:18:21 +00:00
pcb.h Kernel support for the Vector-Scalar eXtension (VSX) found on the POWER7 2015-02-22 21:40:27 +00:00
pcpu.h Add two new pmap functions: 2015-08-04 19:46:13 +00:00
pio.h
platform.h
platformvar.h
pmap.h pmap_mapdev_attr() also takes a vm_paddr_t. 2015-09-03 01:38:15 +00:00
pmc_mdep.h Implement hwpmc(4) for Freescale e500 core. 2015-04-18 21:39:17 +00:00
proc.h
profile.h Provide support for userland binaries using the new ELFv2 ABI. This is a 2015-11-23 17:07:51 +00:00
psl.h Kernel support for the Vector-Scalar eXtension (VSX) found on the POWER7 2015-02-22 21:40:27 +00:00
pte.h Follow up to r287014 2015-08-22 07:27:06 +00:00
ptrace.h Add Altivec/VMX register support to ptrace. 2015-01-14 07:01:21 +00:00
reg.h Move the 32-bit compatible procfs types from freebsd32.h to <sys/procfs.h> 2015-04-08 16:30:45 +00:00
reloc.h
resource.h
rtas.h
runq.h
sc_machdep.h
setjmp.h
sigframe.h
signal.h
slb.h Deallocate any leftover page table entries in the LPAR at boot. This 2015-03-13 00:08:58 +00:00
smp.h
spr.h Add PVR identifier for E6500, from the reference. 2015-09-09 03:15:25 +00:00
sr.h
stack.h
stdarg.h
sysarch.h
tlb.h Extend pmap to support e500mc and e5500. 2015-08-28 03:03:09 +00:00
trap.h Missed this in r281096 as well. 2015-04-05 16:35:13 +00:00
ucontext.h Provide VSX context in ucontext(3) API. 2015-03-12 21:15:38 +00:00
varargs.h
vdso.h
vm.h
vmparam.h Retire VM_FREEPOOL_CACHE as the next step in eliminating PG_CACHE pages. 2015-06-08 04:59:32 +00:00