1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * vdso_config.h: Configuration options for vDSO tests.
4 * Copyright (c) 2019 Arm Ltd.
5 */
6#ifndef __VDSO_CONFIG_H__
7#define __VDSO_CONFIG_H__
8
9/*
10 * Each architecture exports its vDSO implementation with different names
11 * and a different version from the others, so we need to handle it as a
12 * special case.
13 */
14#if defined(__arm__)
15#define VDSO_VERSION 0
16#define VDSO_NAMES 1
17#define VDSO_32BIT 1
18#elif defined(__aarch64__)
19#define VDSO_VERSION 3
20#define VDSO_NAMES 0
21#elif defined(__powerpc__)
22#define VDSO_VERSION 1
23#define VDSO_NAMES 0
24#define VDSO_32BIT 1
25#elif defined(__powerpc64__)
26#define VDSO_VERSION 1
27#define VDSO_NAMES 0
28#elif defined (__s390__)
29#define VDSO_VERSION 2
30#define VDSO_NAMES 0
31#define VDSO_32BIT 1
32#elif defined (__s390X__)
33#define VDSO_VERSION 2
34#define VDSO_NAMES 0
35#elif defined(__mips__)
36#define VDSO_VERSION 0
37#define VDSO_NAMES 1
38#define VDSO_32BIT 1
39#elif defined(__sparc__)
40#define VDSO_VERSION 0
41#define VDSO_NAMES 1
42#define VDSO_32BIT 1
43#elif defined(__i386__)
44#define VDSO_VERSION 0
45#define VDSO_NAMES 1
46#define VDSO_32BIT 1
47#elif defined(__x86_64__)
48#define VDSO_VERSION 0
49#define VDSO_NAMES 1
50#elif defined(__riscv__) || defined(__riscv)
51#define VDSO_VERSION 5
52#define VDSO_NAMES 1
53#if __riscv_xlen == 32
54#define VDSO_32BIT 1
55#endif
56#endif
57
58static const char *versions[6] = {
59 "LINUX_2.6",
60 "LINUX_2.6.15",
61 "LINUX_2.6.29",
62 "LINUX_2.6.39",
63 "LINUX_4",
64 "LINUX_4.15",
65};
66
67static const char *names[2][6] = {
68 {
69 "__kernel_gettimeofday",
70 "__kernel_clock_gettime",
71 "__kernel_time",
72 "__kernel_clock_getres",
73 "__kernel_getcpu",
74#if defined(VDSO_32BIT)
75 "__kernel_clock_gettime64",
76#endif
77 },
78 {
79 "__vdso_gettimeofday",
80 "__vdso_clock_gettime",
81 "__vdso_time",
82 "__vdso_clock_getres",
83 "__vdso_getcpu",
84#if defined(VDSO_32BIT)
85 "__vdso_clock_gettime64",
86#endif
87 },
88};
89
90#endif /* __VDSO_CONFIG_H__ */
91

source code of linux/tools/testing/selftests/vDSO/vdso_config.h