opnsense-src/sys/mips/include
Adrian Chadd b812fe4d6b [mips] add support for using the MIPS user register for TLS data.
This work, originally from Stacey Son, uses the MIPS UserReg for
reading the TLS data, and will fall back to the normal syscall path
when it isn't supported.

This code dynamically patches cpu_switch() to bypass the UserReg
instruction so to avoid generating a machine exception.

Thanks to sson for the original work, and to Dan Nelson for
bringing it to date and testing it on MIPS32 with me.

Tested:

* mips64 (sson)
* mips74k (dnelson_1901@yahoo.com) - AR9344 SoC, UserReg support
* mips24k (adrian) - AR9331 SoC, no UserReg support

Obtained from:	sson, dnelson_1901@yahoo.com
2016-08-07 01:29:55 +00:00
..
_align.h
_bus.h o) Use ABI, not ISA_* options, to determine whether to compile bits if libkern 2012-03-12 21:25:32 +00:00
_inttypes.h Replace __LP64__ with __mips_n64. This partly reverts r217147. 2011-02-04 13:09:46 +00:00
_limits.h Replace __LP64__ with __mips_n64. This partly reverts r217147. 2011-02-04 13:09:46 +00:00
_stdint.h Newer versions of gcc define __INT64_C and __UINT64_C, so avoid 2013-09-03 22:04:55 +00:00
_types.h Rename __wchar_t so it no longer conflicts with __wchar_t from clang 3.4 2014-04-01 14:46:11 +00:00
asm.h Rename some CPU_MIPSxxx options and add new CPU_MIPSxxx options 2016-02-02 07:47:38 +00:00
atomic.h Add the atomic_thread_fence() family of functions with intent to 2015-07-08 18:12:24 +00:00
bootinfo.h Update MIPS bootinfo.h to reflect the actual MIPS boot2/loader boot-time 2014-02-19 09:19:09 +00:00
bus.h Missing commit - remove MIPS fdt bus space. 2016-02-11 06:19:58 +00:00
bus_dma.h
cache.h Remove more unused code and declarations, and add dire warnings to the 64-bit 2012-03-12 08:13:04 +00:00
cache_mipsNN.h Add 64 byte linesize cache flushing routines for L1 instruction, L1 data 2015-03-26 14:51:24 +00:00
cache_r4k.h Add 64 byte linesize cache flushing routines for L1 instruction, L1 data 2015-03-26 14:51:24 +00:00
cdefs.h
clock.h Garbage collect unused prototype for clockintr(). 2016-05-20 15:34:03 +00:00
counter.h Fix issues with zeroing and fetching the counters, on x86 and ppc64. 2013-07-01 02:48:27 +00:00
cpu.h Revert r253748,253749 2013-07-28 18:44:17 +00:00
cpufunc.h [mips] add support for using the MIPS user register for TLS data. 2016-08-07 01:29:55 +00:00
cpuinfo.h [mips] add support for using the MIPS user register for TLS data. 2016-08-07 01:29:55 +00:00
cpuregs.h [mips] add support for using the MIPS user register for TLS data. 2016-08-07 01:29:55 +00:00
db_machdep.h Fix backtrace for MIPS64: 2012-01-13 23:31:36 +00:00
dump.h Factor out duplicated code from dumpsys() on each architecture into generic 2015-01-07 01:01:39 +00:00
elf.h Update ELF headers to include additional defines 2015-01-02 15:36:29 +00:00
endian.h
exec.h
fdt.h Remove bus space fdt for MIPS. 2016-02-11 06:19:32 +00:00
float.h Rationalize BSD license on sys/*/include/float.h 2015-08-05 17:05:35 +00:00
floatingpoint.h
fls64.h
fpu.h
frame.h Update trapframe to be consistent with the changes made to regnum.h. This 2013-04-23 09:38:18 +00:00
gdb_machdep.h
hwfunc.h Remove platform APIs which are not used by any code and which had only stub 2012-03-12 07:34:15 +00:00
ieee.h
ieeefp.h People porting FreeBSD to new architectures ought not have to 2011-10-21 06:41:46 +00:00
in_cksum.h Rationalize BSD license on sys/*/include/in_cksum.h 2015-08-05 19:05:12 +00:00
intr.h Rename ARM_INTRNG and MIPS_INTRNG to INTRNG. This will help with machine 2016-04-15 16:05:41 +00:00
intr_machdep.h Increment the vm stats "v_intr" counter so the global system interrupt 2015-05-16 23:51:24 +00:00
kdb.h
limits.h
locore.h At the risk of reducing source compatibility with old NetBSD and Sprite: 2012-03-06 19:01:32 +00:00
md_var.h Factor out duplicated code from dumpsys() on each architecture into generic 2015-01-07 01:01:39 +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 Merge Perforce change @219948 to head: 2013-01-12 13:20:21 +00:00
minidump.h
mips_opcode.h - Emulate RDHWR instruction for TLS support 2012-02-09 22:17:13 +00:00
octeon_cop2.h - Add better COP2 (crypto coprocessor) context handler for Octeon. Keep 2012-01-06 01:23:26 +00:00
ofw_machdep.h Tidy up mips ofw_machdep.h. Don't include openfirm.h because openfirm.h 2015-12-20 19:09:12 +00:00
param.h When attempting to satisfy mmap() requests for superpage alignment on 2016-04-30 19:29:03 +00:00
pcb.h Move DO_AST into pcb.h where it should have been all along. Move some 2013-10-15 04:36:34 +00:00
pcpu.h Similarly to other architecture, add the include for cpufunc.h which is 2015-05-28 12:33:21 +00:00
pmap.h Introduce a new mechanism for relocating virtual pages to a new physical 2015-12-19 18:42:50 +00:00
pmc_mdep.h Add software PMC support. 2012-03-28 20:58:30 +00:00
proc.h Remove more unused code and declarations, and add dire warnings to the 64-bit 2012-03-12 08:13:04 +00:00
profile.h
pte.h [mips] Add TLB pagemask probing code, and print out the allowable page sizes. 2015-12-22 15:59:41 +00:00
ptrace.h
reg.h Move the 32-bit compatible procfs types from freebsd32.h to <sys/procfs.h> 2015-04-08 16:30:45 +00:00
regdef.h Don't include asm.h in non-asm files. 2013-05-01 06:57:46 +00:00
regnum.h Use the offsets from pcb.h rather than regnum.h to store the registers 2013-04-25 17:23:54 +00:00
reloc.h
resource.h Define PCI_RES_BUS for MIPS. 2016-04-12 07:18:48 +00:00
runq.h
sc_machdep.h Add MD syscons header file for MIPS. 2012-08-25 17:57:50 +00:00
setjmp.h
sf_buf.h style(9) 2014-09-07 05:47:48 +00:00
sigframe.h o) Add COMPAT_FREEBSD32 support for MIPS kernels using the n64 ABI with userlands 2012-03-03 08:19:18 +00:00
signal.h
smp.h Rename ARM_INTRNG and MIPS_INTRNG to INTRNG. This will help with machine 2016-04-15 16:05:41 +00:00
stdarg.h
sysarch.h
tlb.h Introduce a new TLB invalidation function for efficiently invalidating 2012-10-02 07:14:22 +00:00
tls.h When emulating rdhwr for TLS, use the 32-bit offset under COMPAT_FREEBSD32. 2012-03-06 07:47:28 +00:00
trap.h Remove platform APIs which are not used by any code and which had only stub 2012-03-12 07:34:15 +00:00
ucontext.h POSIX states that #include <signal.h> shall make both mcontext_t and 2016-02-12 07:38:19 +00:00
varargs.h
vdso.h Implement mechanism to export some kernel timekeeping data to 2012-06-22 07:06:40 +00:00
vm.h Use VM_MEMATTR_UNCACHEABLE for the constant for UC memory rather than 2012-03-29 16:48:36 +00:00
vmparam.h Retire VM_FREEPOOL_CACHE as the next step in eliminating PG_CACHE pages. 2015-06-08 04:59:32 +00:00