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