freebsd-dev/sys/ia64/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
..
pc
_align.h
_bus.h
_inttypes.h
_limits.h
_regset.h
_stdint.h
_types.h Replace __signed by signed. 2011-12-13 13:38:03 +00:00
acpica_machdep.h
asm.h
atomic.h
bootinfo.h Use the new arch_loadaddr I/F to align ELF objects to PBVM page 2011-04-03 23:49:20 +00:00
bus_dma.h
bus.h
clock.h
cpu.h
cpufunc.h
db_machdep.h
dig64.h
efi.h Add a few more helper functions for working with memory descriptors: 2011-07-16 19:56:07 +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
exec.h
float.h Add C11 macros describing subnormal numbers to float.h. 2012-01-23 06:36:41 +00:00
floatingpoint.h
fpu.h
frame.h
gdb_machdep.h
ia64_cpu.h Properly serialize the global shootdown with the instruction 2011-06-17 04:26:03 +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.h
intrcnt.h
iodev.h
kdb.h
limits.h
mca.h
md_var.h o Deal with unmapped PBVM in the alternate instruction and data TLB fault 2011-03-14 05:29:45 +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
pal.h Fix switching to physical mode as part of calling into EFI runtime 2011-03-21 18:20:53 +00:00
param.h Bump MAXCPU for amd64, ia64 and XLP mips appropriately. 2011-07-19 13:00:30 +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
pci_cfgreg.h
pcpu.h Switch to the event timers infrastructure. This includes: 2011-06-25 02:15:14 +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
proc.h Remove unused define. 2011-10-07 16:09:44 +00:00
profile.h
pte.h
ptrace.h
reg.h Eliminate ia32_reg.h by moving its contents to x86 and ia64 reg.h. 2012-03-18 19:12:11 +00:00
reloc.h
resource.h
runq.h
sal.h
setjmp.h
sf_buf.h Implement basic support for memory attributes. At this time we only 2011-07-08 16:30:54 +00:00
sigframe.h
signal.h
smp.h Switch to the event timers infrastructure. This includes: 2011-06-25 02:15:14 +00:00
stdarg.h
sysarch.h
ucontext.h
unwind.h
varargs.h
vdso.h Implement mechanism to export some kernel timekeeping data to 2012-06-22 07:06:40 +00:00
vm.h
vmparam.h Move the ZERO_REGION_SIZE to a machine-dependent file, as on many 2011-05-13 19:35:01 +00:00