opnsense-src/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 /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
bus.h Revert r216134. This checkin broke platforms where bus_space are macros: 2010-12-03 07:09:23 +00:00
bus_dma.h Provide a simple IOMMU framework on PowerPC, which is required to support 2010-12-03 16:37:37 +00:00
clock.h The "free-lance" timer in the i8254 is only used for the speaker 2008-03-26 20:09:21 +00:00
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 Expand the DBDMA API to allow setting device-dependent control bits. While 2008-09-27 15:41:16 +00:00
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 Use a common multi-inclusion protection, and add such a 2005-02-19 21:16:48 +00:00
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 /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
fpu.h Rename OEA to AIM. The former means nothing as it applies to all 2007-12-16 00:45:56 +00:00
frame.h Remove duplicate definition of FIRSTARG. 2011-03-17 19:44:00 +00:00
gdb_machdep.h Make remote GDB work for AIM processors. For BookE, the kernel 2008-03-17 00:46:52 +00:00
hid.h MFppc64: 2010-07-13 05:32:19 +00:00
ieee.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
ieeefp.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
in_cksum.h netchild's mega-patch to isolate compiler dependencies into a central 2005-03-02 21:33:29 +00:00
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 Unify and generalize PowerPC headers, adjust AIM code accordingly. 2008-03-02 17:05:57 +00:00
limits.h netchild's mega-patch to isolate compiler dependencies into a central 2005-03-02 21:33:29 +00:00
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 Add PIC support for IPIs. When registering an interrupt handler, 2008-02-12 18:14:46 +00:00
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 Add stubs to unbreak LINT. 2007-12-07 13:45:47 +00:00
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 /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
reg.h MFppc64: 2010-07-13 05:32:19 +00:00
reloc.h Remove 3rd clause, renumber, ok per email 2007-01-12 07:26:21 +00:00
resource.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
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 Move MINSIGSTKSZ from <machine/signal.h> to <machine/_limits.h> and rename 2005-08-20 16:44:41 +00:00
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 Break out stack(9) from ddb(4): 2007-12-02 20:40:35 +00:00
stdarg.h Use __builtin_va_start instead of __builtin_stdarg_start. GCC4 obsoletes 2006-09-21 01:37:02 +00:00
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.h Rework and extend PowerPC headers definitons towards Book-E/e500 CPUs support. 2008-03-03 13:20:52 +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 Rework and extend PowerPC headers definitons towards Book-E/e500 CPUs support. 2008-03-03 13:20:52 +00:00
ucontext.h MFppc64: 2010-07-13 05:32:19 +00:00
varargs.h netchild's mega-patch to isolate compiler dependencies into a central 2005-03-02 21:33:29 +00:00
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