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 | |
58 | static 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 | |
67 | static 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 | |