xref: /linux/tools/testing/selftests/vDSO/vdso_config.h (revision e7e86d7697c6ed1dbbde18d7185c35b6967945ed)
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 __attribute__((unused))
62 static const char *versions[7] = {
63 	"LINUX_2.6",
64 	"LINUX_2.6.15",
65 	"LINUX_2.6.29",
66 	"LINUX_2.6.39",
67 	"LINUX_4",
68 	"LINUX_4.15",
69 	"LINUX_5.10"
70 };
71 
72 __attribute__((unused))
73 static const char *names[2][7] = {
74 	{
75 		"__kernel_gettimeofday",
76 		"__kernel_clock_gettime",
77 		"__kernel_time",
78 		"__kernel_clock_getres",
79 		"__kernel_getcpu",
80 		"__kernel_clock_gettime64",
81 		"__kernel_getrandom",
82 	},
83 	{
84 		"__vdso_gettimeofday",
85 		"__vdso_clock_gettime",
86 		"__vdso_time",
87 		"__vdso_clock_getres",
88 		"__vdso_getcpu",
89 		"__vdso_clock_gettime64",
90 		"__vdso_getrandom",
91 	},
92 };
93 
94 #endif /* __VDSO_CONFIG_H__ */
95