freebsd-skq/sys/conf/files.mips
kib 7b36a08108 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

125 lines
4.3 KiB
Plaintext

# This file tells config what files go into building a kernel,
# files marked standard are always included.
#
# Copyright (c) 2001, 2004-2005, Juniper Networks, Inc.
# All rights reserved.
# JNPR: files.mips,v 1.11 2007/08/09 12:25:35 katta
#
# ----------------------------------------------------------------------
# Phase 2
# ----------------------------------------------------------------------
# This file tells config what files go into building a kernel,
# files marked standard are always included.
#
# Copyright (c) 2001, 2004-2005, Juniper Networks, Inc.
# All rights reserved.
# JNPR: files.mips,v 1.11 2007/08/09 12:25:35 katta
# $FreeBSD$
#
# ----------------------------------------------------------------------
# Phase 2
# ----------------------------------------------------------------------
mips/mips/machdep.c standard
mips/mips/mp_machdep.c optional smp
mips/mips/mpboot.S optional smp
# ----------------------------------------------------------------------
# Phase 3
# ----------------------------------------------------------------------
mips/mips/autoconf.c standard
mips/mips/cpu.c standard
mips/mips/elf_machdep.c standard
mips/mips/exception.S standard
mips/mips/gdb_machdep.c standard
mips/mips/pmap.c standard
mips/mips/trap.c standard
mips/mips/vm_machdep.c standard
# ----------------------------------------------------------------------
# Phase 4
# ----------------------------------------------------------------------
# ----------------------------------------------------------------------
# Phase 5
# ----------------------------------------------------------------------
mips/mips/fp.S standard
mips/mips/pm_machdep.c standard
mips/mips/swtch.S standard
mips/mips/tlb.c standard
mips/mips/bus_space_generic.c standard
mips/mips/busdma_machdep.c standard
mips/mips/cache.c standard
mips/mips/cache_mipsNN.c standard
mips/mips/db_disasm.c optional ddb
mips/mips/db_interface.c optional ddb
mips/mips/db_trace.c optional ddb
mips/mips/dump_machdep.c standard
mips/mips/in_cksum.c optional inet | inet6
mips/mips/locore.S standard no-obj
mips/mips/minidump_machdep.c standard
mips/mips/mem.c optional mem
mips/mips/libkern_machdep.c standard
mips/mips/nexus.c standard
mips/mips/stack_machdep.c optional ddb | stack
mips/mips/support.S standard
mips/mips/sys_machdep.c standard
mips/mips/swtch.S standard
mips/mips/uio_machdep.c standard
mips/mips/uma_machdep.c standard
crypto/blowfish/bf_enc.c optional crypto | ipsec
crypto/des/des_enc.c optional crypto | ipsec | netsmb
geom/geom_bsd.c optional geom_bsd
geom/geom_bsd_enc.c optional geom_bsd
geom/geom_mbr.c optional geom_mbr
geom/geom_mbr_enc.c optional geom_mbr
libkern/ashldi3.c standard
libkern/ashrdi3.c standard
libkern/cmpdi2.c standard
libkern/ffsl.c standard
libkern/fls.c standard
libkern/flsl.c standard
libkern/lshrdi3.c standard
libkern/memchr.c optional fdt
libkern/memmove.c standard
libkern/ucmpdi2.c standard
#XXX: We can't use these versions, as strcmp.c is included conf/files
#libkern/mips/strcmp.S standard
#libkern/mips/strncmp.S standard
cddl/compat/opensolaris/kern/opensolaris_atomic.c optional zfs compile-with "${ZFS_C}"
compat/freebsd32/freebsd32_ioctl.c optional compat_freebsd32
compat/freebsd32/freebsd32_misc.c optional compat_freebsd32
compat/freebsd32/freebsd32_syscalls.c optional compat_freebsd32
compat/freebsd32/freebsd32_sysent.c optional compat_freebsd32
kern/imgact_elf32.c optional compat_freebsd32
kern/subr_dummy_vdso_tc.c standard
mips/mips/freebsd32_machdep.c optional compat_freebsd32
kern/kern_clocksource.c standard
kern/link_elf_obj.c standard
dev/cfe/cfe_api.c optional cfe
dev/cfe/cfe_console.c optional cfe_console
dev/cfe/cfe_env.c optional cfe_env
#dev/cfe/cfe_resource.c optional cfe # not yet needed
dev/siba/siba.c optional siba
dev/siba/siba_cc.c optional siba
dev/siba/siba_core.c optional siba
dev/siba/siba_pcib.c optional siba pci
#mips/sentry5/siba_mips.c optional siba # not yet
dev/hwpmc/hwpmc_mips.c optional hwpmc
dev/rt/if_rt.c optional rt
dev/nvram2env/nvram2env.c optional nvram2env
dev/ofw/openfirm.c optional fdt
dev/ofw/openfirmio.c optional fdt
dev/ofw/ofw_bus_if.m optional fdt
dev/ofw/ofw_if.m optional fdt
dev/ofw/ofw_bus_subr.c optional fdt
dev/ofw/ofw_fdt.c optional fdt
dev/fdt/fdt_mips.c optional fdt