12b72c9e3SThomas Gleixner // SPDX-License-Identifier: GPL-2.0-only
28512287aSNathan Lynch /*
320e2fc42SVincenzo Frascino * ARM userspace implementations of gettimeofday() and similar.
420e2fc42SVincenzo Frascino *
58512287aSNathan Lynch * Copyright 2015 Mentor Graphics Corporation.
68512287aSNathan Lynch */
78512287aSNathan Lynch #include <linux/time.h>
820e2fc42SVincenzo Frascino #include <linux/types.h>
9a12f8586SArnd Bergmann #include <asm/vdso.h>
10a12f8586SArnd Bergmann #include <asm/unwind.h>
1142874e4eSArnd Bergmann #include <vdso/gettime.h>
128512287aSNathan Lynch
__vdso_clock_gettime(clockid_t clock,struct old_timespec32 * ts)1320e2fc42SVincenzo Frascino int __vdso_clock_gettime(clockid_t clock,
1420e2fc42SVincenzo Frascino struct old_timespec32 *ts)
158512287aSNathan Lynch {
1620e2fc42SVincenzo Frascino return __cvdso_clock_gettime32(clock, ts);
178512287aSNathan Lynch }
188512287aSNathan Lynch
__vdso_clock_gettime64(clockid_t clock,struct __kernel_timespec * ts)1974d06efbSVincenzo Frascino int __vdso_clock_gettime64(clockid_t clock,
2074d06efbSVincenzo Frascino struct __kernel_timespec *ts)
2174d06efbSVincenzo Frascino {
2274d06efbSVincenzo Frascino return __cvdso_clock_gettime(clock, ts);
2374d06efbSVincenzo Frascino }
2474d06efbSVincenzo Frascino
__vdso_gettimeofday(struct __kernel_old_timeval * tv,struct timezone * tz)2520e2fc42SVincenzo Frascino int __vdso_gettimeofday(struct __kernel_old_timeval *tv,
2620e2fc42SVincenzo Frascino struct timezone *tz)
278512287aSNathan Lynch {
2820e2fc42SVincenzo Frascino return __cvdso_gettimeofday(tv, tz);
298512287aSNathan Lynch }
308512287aSNathan Lynch
__vdso_clock_getres(clockid_t clock_id,struct old_timespec32 * res)31052e76a3SVincenzo Frascino int __vdso_clock_getres(clockid_t clock_id,
32052e76a3SVincenzo Frascino struct old_timespec32 *res)
33052e76a3SVincenzo Frascino {
34052e76a3SVincenzo Frascino return __cvdso_clock_getres_time32(clock_id, res);
35052e76a3SVincenzo Frascino }
36052e76a3SVincenzo Frascino
378512287aSNathan Lynch /* Avoid unresolved references emitted by GCC */
388512287aSNathan Lynch
__aeabi_unwind_cpp_pr0(void)398512287aSNathan Lynch void __aeabi_unwind_cpp_pr0(void)
408512287aSNathan Lynch {
418512287aSNathan Lynch }
428512287aSNathan Lynch
__aeabi_unwind_cpp_pr1(void)438512287aSNathan Lynch void __aeabi_unwind_cpp_pr1(void)
448512287aSNathan Lynch {
458512287aSNathan Lynch }
468512287aSNathan Lynch
__aeabi_unwind_cpp_pr2(void)478512287aSNathan Lynch void __aeabi_unwind_cpp_pr2(void)
488512287aSNathan Lynch {
498512287aSNathan Lynch }
50