freebsd-dev/sys/powerpc/include
Nathan Whitehorn e69dff491d Use the ABI-mandated thread pointer register (r2 for ppc32, r13 for ppc64)
instead of a PCPU field for curthread. This averts a race on SMP systems
with a high interrupt rate where the thread looking up the value of
curthread could be preempted and migrated between obtaining the PCPU
pointer and reading the value of pc_curthread, resulting in curthread being
observed to be the current thread on the thread's original CPU. This played
merry havoc with the system, in particular with mutexes. Many thanks to
jhb for helping me work this one out.

Note that Book-E is in principle susceptible to the same problem, but has
not been modified yet due to lack of Book-E hardware.

MFC after:	2 weeks
2011-06-23 22:21:28 +00:00
..
_align.h MFppc64: 2010-07-13 05:32:19 +00:00
_bus.h MFppc64: 2010-07-13 05:32:19 +00:00
_inttypes.h White space changes to align comments. The mips and powerpc _inttypes.h 2011-01-08 18:02:46 +00:00
_limits.h On mixed 32/64 bit architectures (mips, powerpc) use __LP64__ rather than 2011-01-08 12:43:05 +00:00
_stdint.h On mixed 32/64 bit architectures (mips, powerpc) use __LP64__ rather than 2011-01-08 12:43:05 +00:00
_types.h Add the powerpc support. 2011-05-09 16:16:15 +00:00
altivec.h Handle vector assist traps without a kernel panic, by setting denormalized 2010-10-05 18:08:07 +00:00
asm.h Turn off default generation of userland dot symbols on powerpc64 now that 2011-02-18 21:44:53 +00:00
atomic.h Merge r221614,221696,221737,221840 from largeSMP project branch: 2011-05-22 20:55:54 +00:00
bat.h
bus_dma.h Provide a simple IOMMU framework on PowerPC, which is required to support 2010-12-03 16:37:37 +00:00
bus.h Revert r216134. This checkin broke platforms where bus_space are macros: 2010-12-03 07:09:23 +00:00
clock.h
cpu.h Add a CPU features framework on PowerPC and simplify CPU setup a little 2009-11-28 17:33:19 +00:00
cpufunc.h Add CPU support code for the IBM Cell Broadband Engine. 2010-11-12 15:20:10 +00:00
db_machdep.h MFppc64: 2010-07-13 05:32:19 +00:00
dbdma.h
elf.h Add AT_STACKPROT elf aux vector. Will be used to inform rtld about the 2011-01-07 14:22:34 +00:00
endian.h Define bswap macros for constants to allow the compiler to pre-compute 2010-12-02 15:10:27 +00:00
exec.h
fdt.h Introduce macro FDT_MAP_IRQ to map from an interrupt controller and 2011-01-29 20:25:20 +00:00
float.h We don't support any floating point types larger than double on 2011-01-09 06:05:22 +00:00
floatingpoint.h
fpu.h
frame.h Remove duplicate definition of FIRSTARG. 2011-03-17 19:44:00 +00:00
gdb_machdep.h
hid.h MFppc64: 2010-07-13 05:32:19 +00:00
ieee.h
ieeefp.h
in_cksum.h
intr_machdep.h Rename INTR_VEC to MAP_IRQ. From the OFW or FDT we obtain a 2011-02-02 05:58:51 +00:00
kdb.h
limits.h
md_var.h Update PowerPC event timer code to use new event timers infrastructure. 2010-09-11 04:45:51 +00:00
memdev.h Add reader/writer lock around mem_range_attr_get() and mem_range_attr_set(). 2011-01-17 22:58:28 +00:00
metadata.h Don't redefine MODINFOMD_BOOTINFO as MODINFOMD_DTBP. This 2011-01-15 20:18:08 +00:00
mmuvar.h Introduce inheritance into the PowerPC MMU kobj interface. 2010-09-15 00:17:52 +00:00
ofw_machdep.h Restructure how reset and poweroff are handled on PowerPC systems, since 2010-08-31 15:27:46 +00:00
openpicreg.h
openpicvar.h Add the powerpc support. 2011-05-09 16:16:15 +00:00
param.h MFC 2011-05-29 00:59:38 +00:00
pcb.h Restructure the way the copyin/copyout segment is stored to prevent a 2010-10-30 23:07:30 +00:00
pcpu.h Use the ABI-mandated thread pointer register (r2 for ppc32, r13 for ppc64) 2011-06-23 22:21:28 +00:00
pio.h Provide 64-bit big endian bus space operations for PowerPC. They are required 2009-06-06 09:33:32 +00:00
platform.h Add some platform KOBJ extensions and continue integrating PowerPC 2010-11-12 04:18:19 +00:00
platformvar.h Factor out platform dependent things unrelated to device drivers into a 2009-05-14 00:34:26 +00:00
pmap.h Add the powerpc support. 2011-05-09 16:16:15 +00:00
pmc_mdep.h
proc.h MFppc64: 2010-07-13 05:32:19 +00:00
profile.h Turn off default generation of userland dot symbols on powerpc64 now that 2011-02-18 21:44:53 +00:00
psl.h MFppc64: 2010-07-13 05:32:19 +00:00
pte.h Import support for the Sony Playstation 3 using the OtherOS feature 2011-01-06 04:12:29 +00:00
ptrace.h
reg.h MFppc64: 2010-07-13 05:32:19 +00:00
reloc.h
resource.h
rtas.h MFpseries: 2011-06-02 14:12:37 +00:00
runq.h MFppc64: 2010-07-13 05:32:19 +00:00
sc_machdep.h
setjmp.h
sf_buf.h Add support for 64-bit PowerPC CPUs operating in the 64-bit bridge mode 2009-04-04 00:22:44 +00:00
sigframe.h
signal.h
slb.h The POWER7 has only 32 SLB slots instead of 64, like other supported 2011-06-02 14:25:52 +00:00
smp.h Add the powerpc support. 2011-05-09 16:16:15 +00:00
spr.h MFC 2011-05-29 00:59:38 +00:00
sr.h Restructure the way the copyin/copyout segment is stored to prevent a 2010-10-30 23:07:30 +00:00
stack.h
stdarg.h
sysarch.h Add sysarch.h. It's included by drm(4). 2009-04-04 22:05:36 +00:00
tlb.h Use local TLB_UNLOCKED marker instead of MTX_UNOWNED for Book-E PowerPC trap 2010-11-11 13:35:23 +00:00
trap_aim.h Handle vector assist traps without a kernel panic, by setting denormalized 2010-10-05 18:08:07 +00:00
trap_booke.h
trap.h
ucontext.h MFppc64: 2010-07-13 05:32:19 +00:00
varargs.h
vm.h Add support for memory attributes (pmap_mapdev_attr() and friends) on 2010-09-30 18:14:12 +00:00
vmparam.h Move the ZERO_REGION_SIZE to a machine-dependent file, as on many 2011-05-13 19:35:01 +00:00