opnsense-src/sys/arm/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 Get rid of the _NO_NAMESPACE_POLLUTION kludge by creating an 2009-09-08 20:45:40 +00:00
_bus.h Remove errant % in license comment. 2008-02-26 11:45:32 +00:00
_inttypes.h The NetBSD Foundation has granted permission to remove clauses 3 and 4. 2010-02-16 21:59:17 +00:00
_limits.h Fix types of some values in machine/_limits.h. 2011-01-08 11:13:34 +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 Fix the value of float_t to match what is implied by FLT_EVAL_METHOD. 2012-01-16 20:17:51 +00:00
armreg.h trim trailing whitespace 2012-06-13 05:02:51 +00:00
asm.h Define _ARM_ARCH_5E too, so that we know if pld/strd/ldrd are available. 2007-10-13 12:04:10 +00:00
asmacros.h trim trailing whitespace 2012-06-13 05:02:51 +00:00
atags.h Defines for parsing linux ATAGs lists. 2012-06-14 14:38:55 +00:00
atomic.h trim trailing whitespace 2012-06-13 05:02:51 +00:00
blockio.h trim trailing whitespace 2012-06-13 05:02:51 +00:00
bootconfig.h Remove __P 2007-03-21 03:28:16 +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 The NetBSD Foundation has granted permission to remove clauses 3 and 4. 2010-02-16 21:59:17 +00:00
clock.h First part of a little cleanup in the calendar/timezone/RTC handling. 2006-10-02 12:59:59 +00:00
cpu.h Minor rearrangement of the locore <-> initarm interface. Pass in a 2012-06-03 18:34:32 +00:00
cpuconf.h Minor cosmetic changes 2010-11-09 09:34:21 +00:00
cpufunc.h trim trailing whitespace 2012-06-13 05:02:51 +00:00
db_machdep.h Add "add pc, whatever" as a branch instruction, we use it in memcpy(). 2008-08-03 15:35:32 +00:00
disassem.h Catchup with new prototype for db_printf(). 2010-05-14 00:00:19 +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 trim trailing whitespace 2012-06-13 05:02:51 +00:00
exec.h Use a common multi-inclusion protection, and add such a 2005-02-19 21:16:48 +00:00
fdt.h trim trailing whitespace 2012-06-13 05:02:51 +00:00
fiq.h Start all license statements with /*- 2005-01-05 21:58:49 +00:00
float.h Add C11 macros describing subnormal numbers to float.h. 2012-01-23 06:36:41 +00:00
floatingpoint.h Import FreeBSD/arm kernel bits. 2004-05-14 11:46:45 +00:00
fp.h trim trailing whitespace 2012-06-13 05:02:51 +00:00
frame.h trim trailing whitespace 2012-06-13 05:02:51 +00:00
gdb_machdep.h Add remote GDB bits for arm. 2006-07-14 00:50:51 +00:00
ieee.h trim trailing whitespace 2012-06-13 05:02:51 +00:00
ieeefp.h People porting FreeBSD to new architectures ought not have to 2011-10-21 06:41:46 +00:00
in_cksum.h trim trailing whitespace 2012-06-13 05:02:51 +00:00
intr.h trim trailing whitespace 2012-06-13 05:02:51 +00:00
katelib.h trim trailing whitespace 2012-06-13 05:02:51 +00:00
kdb.h Flush D and I caches after setting a breakpoint. 2012-05-30 13:31:08 +00:00
limits.h netchild's mega-patch to isolate compiler dependencies into a central 2005-03-02 21:33:29 +00:00
machdep.h More Linux boot support. Create arm_dump_avail_init() to initialize 2012-06-14 04:18:56 +00:00
md_var.h The FA526 belongs to the ARM9TDMI family 2010-05-12 05:50:56 +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 re-use MODINFOMD_BOOTINFO as MODINFOMD_DTBP. It breaks 2011-01-11 22:07:39 +00:00
minidump.h Support kernel crash mini dumps on ARM architecture. 2008-11-06 16:20:27 +00:00
ofw_machdep.h Initial FDT infrastructure elements for ARM. 2010-06-13 13:12:52 +00:00
param.h trim trailing whitespace 2012-06-13 05:02:51 +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 Remove the unused field "pc_prvspace" from the MD fields for the struct 2008-09-11 20:39:46 +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 ARM callchain support for hwpmc. 2012-06-13 06:38:25 +00:00
proc.h Remove unused define. 2011-10-07 16:09:44 +00:00
profile.h trim trailing whitespace 2012-06-13 05:02:51 +00:00
psl.h Start all license statements with /*- 2005-01-05 21:58:49 +00:00
pte.h trim trailing whitespace 2012-06-13 05:02:51 +00:00
ptrace.h Import FreeBSD/arm kernel bits. 2004-05-14 11:46:45 +00:00
reg.h Protect the function declarations with #ifdef _KERNEL. 2004-11-04 19:20:54 +00:00
reloc.h Import FreeBSD/arm kernel bits. 2004-05-14 11:46:45 +00:00
resource.h trim trailing whitespace 2012-06-13 05:02:51 +00:00
runq.h Start all license statements with /*- 2005-01-05 21:58:49 +00:00
setjmp.h Protect setjmp.h with #ifndef _MACHINE_SETJMP_H_. 2004-07-12 21:23:58 +00:00
sf_buf.h Rewrite ARM_USE_SMALL_ALLOC so that instead of the current behavior, it maps 2006-08-08 20:59:38 +00:00
sigframe.h Import FreeBSD/arm kernel bits. 2004-05-14 11:46:45 +00:00
signal.h Move MINSIGSTKSZ from <machine/signal.h> to <machine/_limits.h> and rename 2005-08-20 16:44:41 +00:00
smp.h Import FreeBSD/arm kernel bits. 2004-05-14 11:46:45 +00:00
stack.h trim trailing whitespace 2012-06-13 05:02:51 +00:00
stdarg.h Use __builtin_va_start instead of __builtin_stdarg_start. GCC4 obsoletes 2006-09-21 01:37:02 +00:00
swi.h Start all license statements with /*- 2005-01-05 21:58:49 +00:00
sysarch.h Replace the C implementation of __aeabi_read_tp with an assembly version. 2012-04-16 09:38:20 +00:00
trap.h Add support for ptrace() and gdb breakpoints. 2005-01-10 22:43:16 +00:00
ucontext.h The NetBSD Foundation has granted permission to remove clauses 3 and 4. 2010-02-16 21:59:17 +00:00
undefined.h Remove __P 2007-03-21 03:28:16 +00:00
utrap.h Import FreeBSD/arm kernel bits. 2004-05-14 11:46:45 +00:00
vdso.h Implement mechanism to export some kernel timekeeping data to 2012-06-22 07:06:40 +00:00
vm.h Add support to the virtual memory system for configuring machine- 2009-07-12 23:31:20 +00:00
vmparam.h trim trailing whitespace 2012-06-13 05:02:51 +00:00