xref: /linux/tools/testing/selftests/vDSO/vdso_config.h (revision a0482e3446cea426bf16571e0000423ed5b25af0)
1693f5ca0SVincenzo Frascino /* SPDX-License-Identifier: GPL-2.0 */
2693f5ca0SVincenzo Frascino /*
3693f5ca0SVincenzo Frascino  * vdso_config.h: Configuration options for vDSO tests.
4693f5ca0SVincenzo Frascino  * Copyright (c) 2019 Arm Ltd.
5693f5ca0SVincenzo Frascino  */
6693f5ca0SVincenzo Frascino #ifndef __VDSO_CONFIG_H__
7693f5ca0SVincenzo Frascino #define __VDSO_CONFIG_H__
8693f5ca0SVincenzo Frascino 
9693f5ca0SVincenzo Frascino /*
10693f5ca0SVincenzo Frascino  * Each architecture exports its vDSO implementation with different names
11693f5ca0SVincenzo Frascino  * and a different version from the others, so we need to handle it as a
12693f5ca0SVincenzo Frascino  * special case.
13693f5ca0SVincenzo Frascino  */
14693f5ca0SVincenzo Frascino #if defined(__arm__)
15693f5ca0SVincenzo Frascino #define VDSO_VERSION		0
16693f5ca0SVincenzo Frascino #define VDSO_NAMES		1
17693f5ca0SVincenzo Frascino #define VDSO_32BIT		1
18693f5ca0SVincenzo Frascino #elif defined(__aarch64__)
19693f5ca0SVincenzo Frascino #define VDSO_VERSION		3
20693f5ca0SVincenzo Frascino #define VDSO_NAMES		0
217d297c41SChristophe Leroy #elif defined(__powerpc64__)
227d297c41SChristophe Leroy #define VDSO_VERSION		1
237d297c41SChristophe Leroy #define VDSO_NAMES		0
24693f5ca0SVincenzo Frascino #elif defined(__powerpc__)
25693f5ca0SVincenzo Frascino #define VDSO_VERSION		1
26693f5ca0SVincenzo Frascino #define VDSO_NAMES		0
27693f5ca0SVincenzo Frascino #define VDSO_32BIT		1
28a6e23fb8SHeiko Carstens #elif defined (__s390__) && !defined(__s390x__)
29693f5ca0SVincenzo Frascino #define VDSO_VERSION		2
30693f5ca0SVincenzo Frascino #define VDSO_NAMES		0
31693f5ca0SVincenzo Frascino #define VDSO_32BIT		1
32a6e23fb8SHeiko Carstens #elif defined (__s390x__)
33693f5ca0SVincenzo Frascino #define VDSO_VERSION		2
34693f5ca0SVincenzo Frascino #define VDSO_NAMES		0
35693f5ca0SVincenzo Frascino #elif defined(__mips__)
36693f5ca0SVincenzo Frascino #define VDSO_VERSION		0
37693f5ca0SVincenzo Frascino #define VDSO_NAMES		1
38693f5ca0SVincenzo Frascino #define VDSO_32BIT		1
39693f5ca0SVincenzo Frascino #elif defined(__sparc__)
40693f5ca0SVincenzo Frascino #define VDSO_VERSION		0
41693f5ca0SVincenzo Frascino #define VDSO_NAMES		1
42693f5ca0SVincenzo Frascino #define VDSO_32BIT		1
43693f5ca0SVincenzo Frascino #elif defined(__i386__)
44693f5ca0SVincenzo Frascino #define VDSO_VERSION		0
45693f5ca0SVincenzo Frascino #define VDSO_NAMES		1
46693f5ca0SVincenzo Frascino #define VDSO_32BIT		1
47693f5ca0SVincenzo Frascino #elif defined(__x86_64__)
48693f5ca0SVincenzo Frascino #define VDSO_VERSION		0
49693f5ca0SVincenzo Frascino #define VDSO_NAMES		1
50f405ac83STobias Klauser #elif defined(__riscv__) || defined(__riscv)
51693f5ca0SVincenzo Frascino #define VDSO_VERSION		5
52693f5ca0SVincenzo Frascino #define VDSO_NAMES		1
53f405ac83STobias Klauser #if __riscv_xlen == 32
54693f5ca0SVincenzo Frascino #define VDSO_32BIT		1
55f405ac83STobias Klauser #endif
56dc8dc573STiezhu Yang #elif defined(__loongarch__)
57dc8dc573STiezhu Yang #define VDSO_VERSION		6
58dc8dc573STiezhu Yang #define VDSO_NAMES		1
59693f5ca0SVincenzo Frascino #endif
60693f5ca0SVincenzo Frascino 
61*ecabe99aSThomas Weißschuh __attribute__((unused))
62dc8dc573STiezhu Yang static const char *versions[7] = {
63693f5ca0SVincenzo Frascino 	"LINUX_2.6",
64693f5ca0SVincenzo Frascino 	"LINUX_2.6.15",
65693f5ca0SVincenzo Frascino 	"LINUX_2.6.29",
66693f5ca0SVincenzo Frascino 	"LINUX_2.6.39",
67693f5ca0SVincenzo Frascino 	"LINUX_4",
68693f5ca0SVincenzo Frascino 	"LINUX_4.15",
69dc8dc573STiezhu Yang 	"LINUX_5.10"
70693f5ca0SVincenzo Frascino };
71693f5ca0SVincenzo Frascino 
72*ecabe99aSThomas Weißschuh __attribute__((unused))
73e1bbcab4SChristophe Leroy static const char *names[2][7] = {
74693f5ca0SVincenzo Frascino 	{
75693f5ca0SVincenzo Frascino 		"__kernel_gettimeofday",
76693f5ca0SVincenzo Frascino 		"__kernel_clock_gettime",
77693f5ca0SVincenzo Frascino 		"__kernel_time",
78693f5ca0SVincenzo Frascino 		"__kernel_clock_getres",
79b2f1c3dbSVincenzo Frascino 		"__kernel_getcpu",
80693f5ca0SVincenzo Frascino 		"__kernel_clock_gettime64",
81e1bbcab4SChristophe Leroy 		"__kernel_getrandom",
82693f5ca0SVincenzo Frascino 	},
83693f5ca0SVincenzo Frascino 	{
84693f5ca0SVincenzo Frascino 		"__vdso_gettimeofday",
85693f5ca0SVincenzo Frascino 		"__vdso_clock_gettime",
86693f5ca0SVincenzo Frascino 		"__vdso_time",
87693f5ca0SVincenzo Frascino 		"__vdso_clock_getres",
88b2f1c3dbSVincenzo Frascino 		"__vdso_getcpu",
89693f5ca0SVincenzo Frascino 		"__vdso_clock_gettime64",
90e1bbcab4SChristophe Leroy 		"__vdso_getrandom",
91693f5ca0SVincenzo Frascino 	},
92693f5ca0SVincenzo Frascino };
93693f5ca0SVincenzo Frascino 
94693f5ca0SVincenzo Frascino #endif /* __VDSO_CONFIG_H__ */
95