BACKPORT: 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 (cherry picked from commit 8c59ab839f526437831ff6d1405c9a6d93f475eb) Signed-off-by: Mark Salyzyn <salyzyn@google.com> Bug: 154668398 Change-Id: Ic0890fed51d4e570e50da6c553bdcbce412d0683
This commit is contained in:
parent
b89333c606
commit
47cd8b3214
@ -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) | \
|
||||
@ -84,6 +95,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,30 +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 <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
|
||||
|
Loading…
Reference in New Issue
Block a user