/* SPDX-License-Identifier: GPL-2.0 */ /* * vdso_config.h: Configuration options for vDSO tests. * Copyright (c) 2019 Arm Ltd. */ #ifndef __VDSO_CONFIG_H__ #define __VDSO_CONFIG_H__ /* * Each architecture exports its vDSO implementation with different names * and a different version from the others, so we need to handle it as a * special case. */ #if defined(__arm__) #define VDSO_VERSION 0 #define VDSO_NAMES 1 #define VDSO_32BIT 1 #elif defined(__aarch64__) #define VDSO_VERSION 3 #define VDSO_NAMES 0 #elif defined(__powerpc64__) #define VDSO_VERSION 1 #define VDSO_NAMES 0 #elif defined(__powerpc__) #define VDSO_VERSION 1 #define VDSO_NAMES 0 #define VDSO_32BIT 1 #elif defined (__s390__) && !defined(__s390x__) #define VDSO_VERSION 2 #define VDSO_NAMES 0 #define VDSO_32BIT 1 #elif defined (__s390x__) #define VDSO_VERSION 2 #define VDSO_NAMES 0 #elif defined(__mips__) #define VDSO_VERSION 0 #define VDSO_NAMES 1 #define VDSO_32BIT 1 #elif defined(__sparc__) #define VDSO_VERSION 0 #define VDSO_NAMES 1 #define VDSO_32BIT 1 #elif defined(__i386__) #define VDSO_VERSION 0 #define VDSO_NAMES 1 #define VDSO_32BIT 1 #elif defined(__x86_64__) #define VDSO_VERSION 0 #define VDSO_NAMES 1 #elif defined(__riscv__) || defined(__riscv) #define VDSO_VERSION 5 #define VDSO_NAMES 1 #if __riscv_xlen == 32 #define VDSO_32BIT 1 #endif #elif defined(__loongarch__) #define VDSO_VERSION 6 #define VDSO_NAMES 1 #endif static const char *versions[7] = { "LINUX_2.6", "LINUX_2.6.15", "LINUX_2.6.29", "LINUX_2.6.39", "LINUX_4", "LINUX_4.15", "LINUX_5.10" }; static const char *names[2][7] = { { "__kernel_gettimeofday", "__kernel_clock_gettime", "__kernel_time", "__kernel_clock_getres", "__kernel_getcpu", "__kernel_clock_gettime64", "__kernel_getrandom", }, { "__vdso_gettimeofday", "__vdso_clock_gettime", "__vdso_time", "__vdso_clock_getres", "__vdso_getcpu", "__vdso_clock_gettime64", "__vdso_getrandom", }, }; #endif /* __VDSO_CONFIG_H__ */