vdso_config.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  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. * Each architecture exports its vDSO implementation with different names
  10. * and a different version from the others, so we need to handle it as a
  11. * special case.
  12. */
  13. #if defined(__arm__)
  14. #define VDSO_VERSION 0
  15. #define VDSO_NAMES 1
  16. #define VDSO_32BIT 1
  17. #elif defined(__aarch64__)
  18. #define VDSO_VERSION 3
  19. #define VDSO_NAMES 0
  20. #elif defined(__powerpc64__)
  21. #define VDSO_VERSION 1
  22. #define VDSO_NAMES 0
  23. #elif defined(__powerpc__)
  24. #define VDSO_VERSION 1
  25. #define VDSO_NAMES 0
  26. #define VDSO_32BIT 1
  27. #elif defined (__s390x__)
  28. #define VDSO_VERSION 2
  29. #define VDSO_NAMES 0
  30. #elif defined(__mips__)
  31. #define VDSO_VERSION 0
  32. #define VDSO_NAMES 1
  33. #define VDSO_32BIT 1
  34. #elif defined(__sparc__)
  35. #define VDSO_VERSION 0
  36. #define VDSO_NAMES 1
  37. #define VDSO_32BIT 1
  38. #elif defined(__i386__)
  39. #define VDSO_VERSION 0
  40. #define VDSO_NAMES 1
  41. #define VDSO_32BIT 1
  42. #elif defined(__x86_64__)
  43. #define VDSO_VERSION 0
  44. #define VDSO_NAMES 1
  45. #elif defined(__riscv__) || defined(__riscv)
  46. #define VDSO_VERSION 5
  47. #define VDSO_NAMES 1
  48. #if __riscv_xlen == 32
  49. #define VDSO_32BIT 1
  50. #endif
  51. #elif defined(__loongarch__)
  52. #define VDSO_VERSION 6
  53. #define VDSO_NAMES 1
  54. #endif
  55. __attribute__((unused))
  56. static const char *versions[7] = {
  57. "LINUX_2.6",
  58. "LINUX_2.6.15",
  59. "LINUX_2.6.29",
  60. "LINUX_2.6.39",
  61. "LINUX_4",
  62. "LINUX_4.15",
  63. "LINUX_5.10"
  64. };
  65. __attribute__((unused))
  66. static const char *names[2][8] = {
  67. {
  68. "__kernel_gettimeofday",
  69. "__kernel_clock_gettime",
  70. "__kernel_time",
  71. "__kernel_clock_getres",
  72. "__kernel_getcpu",
  73. "__kernel_clock_gettime64",
  74. "__kernel_getrandom",
  75. "__kernel_clock_getres_time64",
  76. },
  77. {
  78. "__vdso_gettimeofday",
  79. "__vdso_clock_gettime",
  80. "__vdso_time",
  81. "__vdso_clock_getres",
  82. "__vdso_getcpu",
  83. "__vdso_clock_gettime64",
  84. "__vdso_getrandom",
  85. "__vdso_clock_getres_time64",
  86. },
  87. };
  88. #endif /* __VDSO_CONFIG_H__ */