opnsense-src/sys/mips/include
Konstantin Belousov aea810386d Implement mechanism to export some kernel timekeeping data to
usermode, using shared page.  The structures and functions have vdso
prefix, to indicate the intended location of the code in some future.

The versioned per-algorithm data is exported in the format of struct
vdso_timehands, which mostly repeats the content of in-kernel struct
timehands. Usermode reading of the structure can be lockless.
Compatibility export for 32bit processes on 64bit host is also
provided. Kernel also provides usermode with indication about
currently used timecounter, so that libc can fall back to syscall if
configured timecounter is unknown to usermode code.

The shared data updates are initiated both from the tc_windup(), where
a fast task is queued to do the update, and from sysctl handlers which
change timecounter. A manual override switch
kern.timecounter.fast_gettime allows to turn off the mechanism.

Only x86 architectures export the real algorithm data, and there, only
for tsc timecounter. HPET counters page could be exported as well, but
I prefer to not further glue the kernel and libc ABI there until
proper vdso-based solution is developed.

Minimal stubs neccessary for non-x86 architectures to still compile
are provided.

Discussed with:	bde
Reviewed by:	jhb
Tested by:	flo
MFC after:	1 month
2012-06-22 07:06:40 +00:00
..
_align.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
_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 Apply the same change as in r229494. 2012-01-04 16:07:16 +00:00
_types.h Fix the value of float_t to match what is implied by FLT_EVAL_METHOD. 2012-01-16 20:17:51 +00:00
asm.h At the risk of reducing source compatibility with old NetBSD and Sprite: 2012-03-06 19:01:32 +00:00
atomic.h Fix the _long() rappresentation on mips by casting the long arguments 2011-05-13 16:39:47 +00:00
bootinfo.h
bus.h Use 64-bit bus space constants on 64-bit kernels. 2012-03-12 18:56:16 +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 Update the port of FreeBSD to Cavium Octeon to use the Cavium Simple Executive 2010-07-20 19:25:11 +00:00
cache_r4k.h
cdefs.h Update macros for multiple ABI support from NetBSD. 2010-03-02 07:27:30 +00:00
clock.h Remove unused stuff from cpu.h. 2010-07-15 01:58:20 +00:00
cpu.h Get rid of duplicated versions of the KSU bits. 2012-03-06 23:08:02 +00:00
cpufunc.h Remove more unused stuff, primarily a set of (unused, thankfully) PIO 2012-03-12 18:10:01 +00:00
cpuinfo.h Remove some unused cruft. 2010-03-04 05:37:19 +00:00
cpuregs.h At the risk of reducing source compatibility with old NetBSD and Sprite: 2012-03-06 19:01:32 +00:00
db_machdep.h Fix backtrace for MIPS64: 2012-01-13 23:31:36 +00:00
elf.h Reserve AT_TIMEKEEP auxv entry for providing usermode the pointer to 2012-06-22 06:38:31 +00:00
endian.h Add parentheses around the argument 'x' used in the __bswapXX(x) macros. Revert 2010-08-11 02:28:39 +00:00
exec.h
fdt.h Support for booting XLP using FDT. 2011-10-18 08:10:23 +00:00
float.h Add C11 macros describing subnormal numbers to float.h. 2012-01-23 06:36:41 +00:00
floatingpoint.h
fls64.h With this commit our friend RMI will now compile. I have 2009-10-30 08:53:11 +00:00
fpu.h It appears that none of the contents of this file are necessary, so 2009-02-15 20:05:13 +00:00
frame.h Remove more unused code and declarations, and add dire warnings to the 64-bit 2012-03-12 08:13:04 +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 MFp4 bz_ipv6_fast: 2012-05-24 22:00:48 +00:00
intr_machdep.h Remove trailing white-space. 2011-12-30 03:54:22 +00:00
kdb.h Stash the context of the running thread at the time an IPI_STOP is received 2010-03-11 07:17:14 +00:00
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 Remove more unused code and declarations, and add dire warnings to the 64-bit 2012-03-12 08:13:04 +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
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 FDT support for MIPS. 2011-10-18 07:29:21 +00:00
param.h Assume a big-endian default on MIPS and drop the "eb" suffix from MACHINE_ARCH. 2012-03-29 02:54:35 +00:00
pcb.h Add a convenience macro for the returns_twice attribute, and apply it to 2012-04-29 11:04:31 +00:00
pcpu.h SMP support for the mips port. 2010-02-09 06:24:43 +00:00
pmap.h The page flag PGA_WRITEABLE is set and cleared exclusively by the pmap 2012-06-16 18:56:19 +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 Update MIPS _stdint.h for 64 bit. Initial 64 bit changes for profile.h. 2010-07-29 14:04:29 +00:00
pte.h Support for 64 bit PTEs on n32 and n64 compilation. 2011-01-13 15:17:29 +00:00
ptrace.h
reg.h o) Add COMPAT_FREEBSD32 support for MIPS kernels using the n64 ABI with userlands 2012-03-03 08:19:18 +00:00
regdef.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
regnum.h Whitespace fixes in mips/include, remove unused 'struct tlb' from locore.h 2010-08-27 07:45:50 +00:00
reloc.h
resource.h
runq.h Fix RQB_FFS for 64 bit, we need to use ffsl() for 64bit. 2010-07-29 13:52:46 +00:00
setjmp.h Merge jmallett@'s n64 work into HEAD - changeset 7 2010-06-24 08:08:43 +00:00
sf_buf.h Implement sf_buf using direct map (XKPHYS) in MIPS n64. 2011-01-27 14:49:22 +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 Add the cpuset_t conversion for mips. 2011-05-13 16:42:05 +00:00
stdarg.h
sysarch.h Merge r195128 from project/mips to head. 2010-01-09 04:59:57 +00:00
tlb.h Move TLB definitions to tlb.h 2010-07-15 03:56:08 +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 Fix two and a half oversights in COMPAT_FREEBSD32 related to contexts and 2012-03-06 07:50:45 +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 o) Add COMPAT_FREEBSD32 support for MIPS kernels using the n64 ABI with userlands 2012-03-03 08:19:18 +00:00