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