xref: /linux/tools/testing/selftests/vDSO/vdso_config.h (revision 4a39ac5b7d62679c07a3e3d12b0f6982377d8a7d)
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(__powerpc64__)
22 #define VDSO_VERSION		1
23 #define VDSO_NAMES		0
24 #elif defined(__powerpc__)
25 #define VDSO_VERSION		1
26 #define VDSO_NAMES		0
27 #define VDSO_32BIT		1
28 #elif defined (__s390__) && !defined(__s390x__)
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 #elif defined(__loongarch__)
57 #define VDSO_VERSION		6
58 #define VDSO_NAMES		1
59 #endif
60 
61 static const char *versions[7] = {
62 	"LINUX_2.6",
63 	"LINUX_2.6.15",
64 	"LINUX_2.6.29",
65 	"LINUX_2.6.39",
66 	"LINUX_4",
67 	"LINUX_4.15",
68 	"LINUX_5.10"
69 };
70 
71 static const char *names[2][7] = {
72 	{
73 		"__kernel_gettimeofday",
74 		"__kernel_clock_gettime",
75 		"__kernel_time",
76 		"__kernel_clock_getres",
77 		"__kernel_getcpu",
78 		"__kernel_clock_gettime64",
79 		"__kernel_getrandom",
80 	},
81 	{
82 		"__vdso_gettimeofday",
83 		"__vdso_clock_gettime",
84 		"__vdso_time",
85 		"__vdso_clock_getres",
86 		"__vdso_getcpu",
87 		"__vdso_clock_gettime64",
88 		"__vdso_getrandom",
89 	},
90 };
91 
92 #endif /* __VDSO_CONFIG_H__ */
93