lib/vdso: Enable common headers
The vDSO library should only include the necessary headers required for a userspace library (UAPI and a minimal set of kernel headers). To make this possible it is necessary to isolate from the kernel headers the common parts that are strictly necessary to build the library. Refactor the unified vdso code to use the common headers. Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lkml.kernel.org/r/20200320145351.32292-26-vincenzo.frascino@arm.com
This commit is contained in:
Родитель
78c8516141
Коммит
8c59ab839f
|
@ -4,9 +4,20 @@
|
|||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#include <linux/bits.h>
|
||||
#include <linux/time.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/compiler.h>
|
||||
#include <uapi/linux/time.h>
|
||||
#include <uapi/linux/types.h>
|
||||
#include <uapi/asm-generic/errno-base.h>
|
||||
|
||||
#include <vdso/bits.h>
|
||||
#include <vdso/clocksource.h>
|
||||
#include <vdso/ktime.h>
|
||||
#include <vdso/limits.h>
|
||||
#include <vdso/math64.h>
|
||||
#include <vdso/processor.h>
|
||||
#include <vdso/time.h>
|
||||
#include <vdso/time32.h>
|
||||
#include <vdso/time64.h>
|
||||
|
||||
#define VDSO_BASES (CLOCK_TAI + 1)
|
||||
#define VDSO_HRES (BIT(CLOCK_REALTIME) | \
|
||||
|
@ -99,6 +110,22 @@ struct vdso_data {
|
|||
*/
|
||||
extern struct vdso_data _vdso_data[CS_BASES] __attribute__((visibility("hidden")));
|
||||
|
||||
/*
|
||||
* The generic vDSO implementation requires that gettimeofday.h
|
||||
* provides:
|
||||
* - __arch_get_vdso_data(): to get the vdso datapage.
|
||||
* - __arch_get_hw_counter(): to get the hw counter based on the
|
||||
* clock_mode.
|
||||
* - gettimeofday_fallback(): fallback for gettimeofday.
|
||||
* - clock_gettime_fallback(): fallback for clock_gettime.
|
||||
* - clock_getres_fallback(): fallback for clock_getres.
|
||||
*/
|
||||
#ifdef ENABLE_COMPAT_VDSO
|
||||
#include <asm/vdso/compat_gettimeofday.h>
|
||||
#else
|
||||
#include <asm/vdso/gettimeofday.h>
|
||||
#endif /* ENABLE_COMPAT_VDSO */
|
||||
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
||||
#endif /* __VDSO_DATAPAGE_H */
|
||||
|
|
|
@ -2,31 +2,9 @@
|
|||
/*
|
||||
* Generic userspace implementations of gettimeofday() and similar.
|
||||
*/
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/math64.h>
|
||||
#include <linux/time.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/hrtimer_defs.h>
|
||||
#include <linux/clocksource.h>
|
||||
#include <vdso/datapage.h>
|
||||
#include <vdso/helpers.h>
|
||||
|
||||
/*
|
||||
* The generic vDSO implementation requires that gettimeofday.h
|
||||
* provides:
|
||||
* - __arch_get_vdso_data(): to get the vdso datapage.
|
||||
* - __arch_get_hw_counter(): to get the hw counter based on the
|
||||
* clock_mode.
|
||||
* - gettimeofday_fallback(): fallback for gettimeofday.
|
||||
* - clock_gettime_fallback(): fallback for clock_gettime.
|
||||
* - clock_getres_fallback(): fallback for clock_getres.
|
||||
*/
|
||||
#ifdef ENABLE_COMPAT_VDSO
|
||||
#include <asm/vdso/compat_gettimeofday.h>
|
||||
#else
|
||||
#include <asm/vdso/gettimeofday.h>
|
||||
#endif /* ENABLE_COMPAT_VDSO */
|
||||
|
||||
#ifndef vdso_calc_delta
|
||||
/*
|
||||
* Default implementation which works for all sane clocksources. That
|
||||
|
|
Загрузка…
Ссылка в новой задаче