7b36a08108
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
234 lines
9.9 KiB
Plaintext
234 lines
9.9 KiB
Plaintext
# This file tells config what files go into building a kernel,
|
|
# files marked standard are always included.
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
# The long compile-with and dependency lines are required because of
|
|
# limitations in config: backslash-newline doesn't work in strings, and
|
|
# dependency lines other than the first are silently ignored.
|
|
#
|
|
#
|
|
|
|
font.h optional sc \
|
|
compile-with "uudecode < /usr/share/syscons/fonts/${SC_DFLT_FONT}-8x16.fnt && file2c 'u_char dflt_font_16[16*256] = {' '};' < ${SC_DFLT_FONT}-8x16 > font.h && uudecode < /usr/share/syscons/fonts/${SC_DFLT_FONT}-8x14.fnt && file2c 'u_char dflt_font_14[14*256] = {' '};' < ${SC_DFLT_FONT}-8x14 >> font.h && uudecode < /usr/share/syscons/fonts/${SC_DFLT_FONT}-8x8.fnt && file2c 'u_char dflt_font_8[8*256] = {' '};' < ${SC_DFLT_FONT}-8x8 >> font.h" \
|
|
no-obj no-implicit-rule before-depend \
|
|
clean "font.h ${SC_DFLT_FONT}-8x14 ${SC_DFLT_FONT}-8x16 ${SC_DFLT_FONT}-8x8"
|
|
#
|
|
# There is only an asm version on ppc64.
|
|
cddl/compat/opensolaris/kern/opensolaris_atomic.c optional zfs powerpc compile-with "${ZFS_C}"
|
|
cddl/contrib/opensolaris/common/atomic/powerpc64/opensolaris_atomic.S optional zfs powerpc64 compile-with "${ZFS_S}"
|
|
crypto/blowfish/bf_enc.c optional crypto | ipsec
|
|
crypto/des/des_enc.c optional crypto | ipsec | netsmb
|
|
dev/bm/if_bm.c optional bm powermac
|
|
dev/adb/adb_bus.c optional adb
|
|
dev/adb/adb_kbd.c optional adb
|
|
dev/adb/adb_mouse.c optional adb
|
|
dev/adb/adb_hb_if.m optional adb
|
|
dev/adb/adb_if.m optional adb
|
|
dev/adb/adb_buttons.c optional adb
|
|
dev/agp/agp_apple.c optional agp powermac
|
|
dev/cfi/cfi_bus_fdt.c optional cfi fdt
|
|
dev/fb/fb.c optional sc
|
|
dev/fdt/fdt_powerpc.c optional fdt
|
|
dev/hwpmc/hwpmc_powerpc.c optional hwpmc
|
|
dev/iicbus/ad7417.c optional ad7417 powermac
|
|
dev/iicbus/ds1775.c optional ds1775 powermac
|
|
dev/iicbus/max6690.c optional max6690 powermac
|
|
dev/kbd/kbd.c optional sc
|
|
dev/ofw/openfirm.c optional aim | fdt
|
|
dev/ofw/openfirmio.c optional aim | fdt
|
|
dev/ofw/ofw_bus_if.m optional aim | fdt
|
|
dev/ofw/ofw_if.m optional aim | fdt
|
|
dev/ofw/ofw_bus_subr.c optional aim | fdt
|
|
dev/ofw/ofw_console.c optional aim
|
|
dev/ofw/ofw_disk.c optional ofwd aim
|
|
dev/ofw/ofw_fdt.c optional fdt
|
|
dev/ofw/ofw_iicbus.c optional iicbus aim
|
|
dev/ofw/ofw_standard.c optional aim powerpc
|
|
dev/powermac_nvram/powermac_nvram.c optional powermac_nvram powermac
|
|
dev/quicc/quicc_bfe_fdt.c optional quicc mpc85xx
|
|
dev/scc/scc_bfe_macio.c optional scc powermac
|
|
dev/sec/sec.c optional sec mpc85xx
|
|
dev/sound/macio/aoa.c optional snd_davbus | snd_ai2s powermac
|
|
dev/sound/macio/davbus.c optional snd_davbus powermac
|
|
dev/sound/macio/i2s.c optional snd_ai2s powermac
|
|
dev/sound/macio/snapper.c optional snd_ai2s iicbus powermac
|
|
dev/sound/macio/tumbler.c optional snd_ai2s iicbus powermac
|
|
dev/syscons/scgfbrndr.c optional sc
|
|
dev/syscons/scterm-teken.c optional sc
|
|
dev/syscons/scvtb.c optional sc
|
|
dev/tsec/if_tsec.c optional tsec
|
|
dev/tsec/if_tsec_fdt.c optional tsec fdt
|
|
dev/uart/uart_cpu_powerpc.c optional uart aim
|
|
kern/kern_clocksource.c standard
|
|
kern/subr_dummy_vdso_tc.c standard
|
|
kern/syscalls.c optional ktr
|
|
libkern/ashldi3.c optional powerpc
|
|
libkern/ashrdi3.c optional powerpc
|
|
libkern/bcmp.c standard
|
|
libkern/cmpdi2.c optional powerpc
|
|
libkern/divdi3.c optional powerpc
|
|
libkern/ffs.c standard
|
|
libkern/ffsl.c standard
|
|
libkern/fls.c standard
|
|
libkern/flsl.c standard
|
|
libkern/lshrdi3.c optional powerpc
|
|
libkern/memchr.c optional fdt
|
|
libkern/memmove.c standard
|
|
libkern/memset.c standard
|
|
libkern/moddi3.c optional powerpc
|
|
libkern/qdivrem.c optional powerpc
|
|
libkern/ucmpdi2.c optional powerpc
|
|
libkern/udivdi3.c optional powerpc
|
|
libkern/umoddi3.c optional powerpc
|
|
powerpc/aim/clock.c optional aim
|
|
powerpc/aim/copyinout.c optional aim
|
|
powerpc/aim/interrupt.c optional aim
|
|
powerpc/aim/locore.S optional aim no-obj
|
|
powerpc/aim/machdep.c optional aim
|
|
powerpc/aim/mmu_oea.c optional aim powerpc
|
|
powerpc/aim/mmu_oea64.c optional aim
|
|
powerpc/aim/moea64_if.m optional aim
|
|
powerpc/aim/moea64_native.c optional aim
|
|
powerpc/aim/mp_cpudep.c optional aim smp
|
|
powerpc/aim/nexus.c optional aim
|
|
powerpc/aim/slb.c optional aim powerpc64
|
|
powerpc/aim/swtch32.S optional aim powerpc
|
|
powerpc/aim/swtch64.S optional aim powerpc64
|
|
powerpc/aim/trap.c optional aim
|
|
powerpc/aim/uma_machdep.c optional aim
|
|
powerpc/aim/vm_machdep.c optional aim
|
|
powerpc/booke/clock.c optional booke
|
|
powerpc/booke/copyinout.c optional booke
|
|
powerpc/booke/interrupt.c optional booke
|
|
powerpc/booke/locore.S optional booke no-obj
|
|
powerpc/booke/machdep.c optional booke
|
|
powerpc/booke/machdep_e500.c optional booke_e500
|
|
powerpc/booke/mp_cpudep.c optional booke smp
|
|
powerpc/booke/platform_bare.c optional mpc85xx
|
|
powerpc/booke/pmap.c optional booke
|
|
powerpc/booke/swtch.S optional booke
|
|
powerpc/booke/trap.c optional booke
|
|
powerpc/booke/vm_machdep.c optional booke
|
|
powerpc/cpufreq/dfs.c optional cpufreq
|
|
powerpc/cpufreq/pcr.c optional cpufreq aim
|
|
powerpc/fpu/fpu_add.c optional fpu_emu powerpc
|
|
powerpc/fpu/fpu_compare.c optional fpu_emu powerpc
|
|
powerpc/fpu/fpu_div.c optional fpu_emu powerpc
|
|
powerpc/fpu/fpu_emu.c optional fpu_emu powerpc
|
|
powerpc/fpu/fpu_explode.c optional fpu_emu powerpc
|
|
powerpc/fpu/fpu_implode.c optional fpu_emu powerpc
|
|
powerpc/fpu/fpu_mul.c optional fpu_emu powerpc
|
|
powerpc/fpu/fpu_sqrt.c optional fpu_emu powerpc
|
|
powerpc/fpu/fpu_subr.c optional fpu_emu powerpc
|
|
powerpc/mambo/mambocall.S optional mambo
|
|
powerpc/mambo/mambo.c optional mambo
|
|
powerpc/mambo/mambo_console.c optional mambo
|
|
powerpc/mambo/mambo_disk.c optional mambo
|
|
powerpc/mambo/mambo_openpic.c optional mambo
|
|
powerpc/mpc85xx/atpic.c optional mpc85xx isa
|
|
powerpc/mpc85xx/ds1553_bus_fdt.c optional ds1553 fdt
|
|
powerpc/mpc85xx/ds1553_core.c optional ds1553
|
|
powerpc/mpc85xx/i2c.c optional iicbus fdt
|
|
powerpc/mpc85xx/isa.c optional mpc85xx isa
|
|
powerpc/mpc85xx/lbc.c optional mpc85xx
|
|
powerpc/mpc85xx/mpc85xx.c optional mpc85xx
|
|
powerpc/mpc85xx/nexus.c optional mpc85xx
|
|
powerpc/mpc85xx/pci_fdt.c optional pci mpc85xx
|
|
powerpc/ofw/ofw_cpu.c optional aim
|
|
powerpc/ofw/ofw_machdep.c optional aim
|
|
powerpc/ofw/ofw_pci.c optional pci aim
|
|
powerpc/ofw/ofw_pcibus.c optional pci aim
|
|
powerpc/ofw/ofw_pcib_pci.c optional pci aim
|
|
powerpc/ofw/ofw_real.c optional aim
|
|
powerpc/ofw/ofw_syscons.c optional sc aim
|
|
powerpc/ofw/ofwcall32.S optional aim powerpc
|
|
powerpc/ofw/ofwcall64.S optional aim powerpc64
|
|
powerpc/ofw/ofwmagic.S optional aim
|
|
powerpc/ofw/rtas.c optional aim
|
|
powerpc/powermac/ata_kauai.c optional powermac ata | powermac atamacio
|
|
powerpc/powermac/ata_macio.c optional powermac ata | powermac atamacio
|
|
powerpc/powermac/ata_dbdma.c optional powermac ata | powermac atamacio
|
|
powerpc/powermac/atibl.c optional powermac atibl
|
|
powerpc/powermac/cuda.c optional powermac cuda
|
|
powerpc/powermac/cpcht.c optional powermac pci
|
|
powerpc/powermac/dbdma.c optional powermac pci
|
|
powerpc/powermac/fcu.c optional powermac fcu
|
|
powerpc/powermac/grackle.c optional powermac pci
|
|
powerpc/powermac/hrowpic.c optional powermac pci
|
|
powerpc/powermac/kiic.c optional powermac kiic
|
|
powerpc/powermac/macgpio.c optional powermac pci
|
|
powerpc/powermac/macio.c optional powermac pci
|
|
powerpc/powermac/openpic_macio.c optional powermac pci
|
|
powerpc/powermac/platform_powermac.c optional powermac
|
|
powerpc/powermac/powermac_thermal.c optional powermac
|
|
powerpc/powermac/pswitch.c optional powermac pswitch
|
|
powerpc/powermac/pmu.c optional powermac pmu
|
|
powerpc/powermac/smu.c optional powermac smu
|
|
powerpc/powermac/smusat.c optional powermac smu
|
|
powerpc/powermac/uninorth.c optional powermac
|
|
powerpc/powermac/uninorthpci.c optional powermac pci
|
|
powerpc/powermac/vcoregpio.c optional powermac
|
|
powerpc/powermac/windtunnel.c optional powermac windtunnel
|
|
powerpc/powerpc/altivec.c optional aim
|
|
powerpc/powerpc/autoconf.c standard
|
|
powerpc/powerpc/bcopy.c standard
|
|
powerpc/powerpc/bus_machdep.c standard
|
|
powerpc/powerpc/busdma_machdep.c standard
|
|
powerpc/powerpc/copystr.c standard
|
|
powerpc/powerpc/cpu.c standard
|
|
powerpc/powerpc/db_disasm.c optional ddb
|
|
powerpc/powerpc/db_hwwatch.c optional ddb
|
|
powerpc/powerpc/db_interface.c optional ddb
|
|
powerpc/powerpc/db_trace.c optional ddb
|
|
powerpc/powerpc/dump_machdep.c standard
|
|
powerpc/powerpc/elf32_machdep.c optional powerpc | compat_freebsd32
|
|
powerpc/powerpc/elf64_machdep.c optional powerpc64
|
|
powerpc/powerpc/exec_machdep.c standard
|
|
powerpc/powerpc/fpu.c optional aim
|
|
powerpc/powerpc/fuswintr.c standard
|
|
powerpc/powerpc/gdb_machdep.c optional gdb
|
|
powerpc/powerpc/in_cksum.c optional inet | inet6
|
|
powerpc/powerpc/intr_machdep.c standard
|
|
powerpc/powerpc/iommu_if.m standard
|
|
powerpc/powerpc/mem.c optional mem
|
|
powerpc/powerpc/mmu_if.m standard
|
|
powerpc/powerpc/mp_machdep.c optional smp
|
|
powerpc/powerpc/openpic.c standard
|
|
powerpc/powerpc/openpic_fdt.c optional fdt
|
|
powerpc/powerpc/pic_if.m standard
|
|
powerpc/powerpc/pmap_dispatch.c standard
|
|
powerpc/powerpc/platform.c standard
|
|
powerpc/powerpc/platform_if.m standard
|
|
powerpc/powerpc/sc_machdep.c optional sc
|
|
powerpc/powerpc/setjmp.S standard
|
|
powerpc/powerpc/sigcode32.S optional powerpc | compat_freebsd32
|
|
powerpc/powerpc/sigcode64.S optional powerpc64
|
|
powerpc/powerpc/stack_machdep.c optional ddb | stack
|
|
powerpc/powerpc/suswintr.c standard
|
|
powerpc/powerpc/syncicache.c standard
|
|
powerpc/powerpc/sys_machdep.c standard
|
|
powerpc/powerpc/uio_machdep.c standard
|
|
powerpc/ps3/ehci_ps3.c optional ps3 ehci
|
|
powerpc/ps3/ohci_ps3.c optional ps3 ohci
|
|
powerpc/ps3/if_glc.c optional ps3 glc
|
|
powerpc/ps3/mmu_ps3.c optional ps3
|
|
powerpc/ps3/platform_ps3.c optional ps3
|
|
powerpc/ps3/ps3bus.c optional ps3
|
|
powerpc/ps3/ps3cdrom.c optional ps3 scbus
|
|
powerpc/ps3/ps3disk.c optional ps3
|
|
powerpc/ps3/ps3pic.c optional ps3
|
|
powerpc/ps3/ps3_syscons.c optional ps3 sc
|
|
powerpc/ps3/ps3-hvcall.S optional ps3 sc
|
|
powerpc/psim/iobus.c optional psim
|
|
powerpc/psim/ata_iobus.c optional ata psim
|
|
powerpc/psim/openpic_iobus.c optional psim
|
|
powerpc/psim/uart_iobus.c optional uart psim
|
|
|
|
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
|
|
|