opnsense-src/sys/powerpc/include
Nathan Whitehorn 54c562081f Restructure the way the copyin/copyout segment is stored to prevent a
concurrency bug. Since all SLB/SR entries were invalidated during an
exception, a decrementer exception could cause the user segment to be
invalidated during a copyin()/copyout() without a thread switch that
would cause it to be restored from the PCB, potentially causing the
operation to continue on invalid memory. This is now handled by explicit
restoration of segment 12 from the PCB on 32-bit systems and a check in
the Data Segment Exception handler on 64-bit.

While here, cause copyin()/copyout() to check whether the requested
user segment is already installed, saving some pipeline flushes, and
fix the synchronization primitives around the mtsr and slbmte
instructions to prevent accessing stale segments.

MFC after:	2 weeks
2010-10-30 23:07:30 +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 MFppc64: 2010-07-13 05:32:19 +00:00
_limits.h MFppc64: 2010-07-13 05:32:19 +00:00
_stdint.h MFppc64: 2010-07-13 05:32:19 +00:00
_types.h MFppc64: 2010-07-13 05:32:19 +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 MFppc64: 2010-07-13 05:32:19 +00:00
atomic.h MFppc64: 2010-07-13 05:32:19 +00:00
bat.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
bus.h MFppc64: 2010-07-13 05:32:19 +00:00
bus_dma.h Refactor the bus_dma header files so that the interface is described in 2005-03-14 16:46:28 +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 MFppc64: 2010-07-13 05:32:19 +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 Supply some useful information to the started image using ELF aux vectors. 2010-08-17 08:55:45 +00:00
endian.h Add support for little-endian compilations to this file. 2008-10-30 03:31:33 +00:00
exec.h Use a common multi-inclusion protection, and add such a 2005-02-19 21:16:48 +00:00
fdt.h Eliminate FDT_IMMR_VA define. 2010-07-19 18:47:18 +00:00
float.h Define LDBL_EPSILON, LDBL_MAX and LDBL_MIN as long double constants. 2008-11-16 19:20:29 +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 MFppc64: 2010-07-13 05:32:19 +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 Update PowerPC event timer code to use new event timers infrastructure. 2010-09-11 04:45: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 a memory-range interface to /dev/mem on PowerPC using PAT attributes. 2010-10-03 16:02:53 +00:00
metadata.h Convert Freescale PowerPC platforms to FDT convention. 2010-07-11 21:08:29 +00:00
mmuvar.h Introduce inheritance into the PowerPC MMU kobj interface. 2010-09-15 00:17:52 +00:00
mutex.h Initial support for SMP on PowerPC MPC85xx. 2009-05-21 11:43:37 +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 Configure interrupts on SMP systems to be distributed among all online 2010-06-23 22:33:03 +00:00
param.h - Bump MAXCPU to 4. Tested on a quad G5 with both 32 and 64-bit kernels. 2010-09-03 03:56:09 +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 Split the SLB mirror cache into two kinds of object, one for kernel maps 2010-09-16 03:46:17 +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 Factor out platform dependent things unrelated to device drivers into a 2009-05-14 00:34:26 +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 support for memory attributes (pmap_mapdev_attr() and friends) on 2010-09-30 18:14:12 +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 MFppc64: 2010-07-13 05:32:19 +00:00
psl.h MFppc64: 2010-07-13 05:32:19 +00:00
pte.h MFppc64: 2010-07-13 05:32:19 +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
runq.h MFppc64: 2010-07-13 05:32:19 +00:00
sc_machdep.h A syscons implementation using the 8-bit framebuffer set up by 2004-01-21 05:16:23 +00:00
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 Restructure the way the copyin/copyout segment is stored to prevent a 2010-10-30 23:07:30 +00:00
smp.h Refactor timer management code with priority to one-shot operation mode. 2010-09-13 07:25:35 +00:00
spr.h MFppc64: 2010-07-13 05:32:19 +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 Rework BookE pmap towards multi-core support. 2009-01-13 15:41:58 +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 Very rough first cut at NUMA support for the physical page allocator. For 2010-07-27 20:33:50 +00:00