File tree Expand file tree Collapse file tree 4 files changed +34
-30
lines changed
tools/testing/selftests/vDSO Expand file tree Collapse file tree 4 files changed +34
-30
lines changed Original file line number Diff line number Diff line change 21
21
#include <limits.h>
22
22
#include <elf.h>
23
23
24
- /*
25
- * To use this vDSO parser, first call one of the vdso_init_* functions.
26
- * If you've already parsed auxv, then pass the value of AT_SYSINFO_EHDR
27
- * to vdso_init_from_sysinfo_ehdr. Otherwise pass auxv to vdso_init_from_auxv.
28
- * Then call vdso_sym for each symbol you want. For example, to look up
29
- * gettimeofday on x86_64, use:
30
- *
31
- * <some pointer> = vdso_sym("LINUX_2.6", "gettimeofday");
32
- * or
33
- * <some pointer> = vdso_sym("LINUX_2.6", "__vdso_gettimeofday");
34
- *
35
- * vdso_sym will return 0 if the symbol doesn't exist or if the init function
36
- * failed or was not called. vdso_sym is a little slow, so its return value
37
- * should be cached.
38
- *
39
- * vdso_sym is threadsafe; the init functions are not.
40
- *
41
- * These are the prototypes:
42
- */
43
- extern void vdso_init_from_auxv (void * auxv );
44
- extern void vdso_init_from_sysinfo_ehdr (uintptr_t base );
45
- extern void * vdso_sym (const char * version , const char * name );
46
-
24
+ #include "parse_vdso.h"
47
25
48
26
/* And here's the code. */
49
27
#ifndef ELF_BITS
Original file line number Diff line number Diff line change
1
+ /* SPDX-License-Identifier: GPL-2.0-only */
2
+
3
+ #ifndef PARSE_VDSO_H
4
+ #define PARSE_VDSO_H
5
+
6
+ #include <stdint.h>
7
+
8
+ /*
9
+ * To use this vDSO parser, first call one of the vdso_init_* functions.
10
+ * If you've already parsed auxv, then pass the value of AT_SYSINFO_EHDR
11
+ * to vdso_init_from_sysinfo_ehdr. Otherwise pass auxv to vdso_init_from_auxv.
12
+ * Then call vdso_sym for each symbol you want. For example, to look up
13
+ * gettimeofday on x86_64, use:
14
+ *
15
+ * <some pointer> = vdso_sym("LINUX_2.6", "gettimeofday");
16
+ * or
17
+ * <some pointer> = vdso_sym("LINUX_2.6", "__vdso_gettimeofday");
18
+ *
19
+ * vdso_sym will return 0 if the symbol doesn't exist or if the init function
20
+ * failed or was not called. vdso_sym is a little slow, so its return value
21
+ * should be cached.
22
+ *
23
+ * vdso_sym is threadsafe; the init functions are not.
24
+ *
25
+ * These are the prototypes:
26
+ */
27
+ void * vdso_sym (const char * version , const char * name );
28
+ void vdso_init_from_sysinfo_ehdr (uintptr_t base );
29
+ void vdso_init_from_auxv (void * auxv );
30
+
31
+ #endif
Original file line number Diff line number Diff line change 16
16
#include <unistd.h>
17
17
#include <stdint.h>
18
18
19
- extern void * vdso_sym (const char * version , const char * name );
20
- extern void vdso_init_from_sysinfo_ehdr (uintptr_t base );
21
- extern void vdso_init_from_auxv (void * auxv );
19
+ #include "parse_vdso.h"
22
20
23
21
/* We need a libc functions... */
24
22
int strcmp (const char * a , const char * b )
Original file line number Diff line number Diff line change 17
17
#include <sys/time.h>
18
18
19
19
#include "../kselftest.h"
20
-
21
- extern void * vdso_sym (const char * version , const char * name );
22
- extern void vdso_init_from_sysinfo_ehdr (uintptr_t base );
23
- extern void vdso_init_from_auxv (void * auxv );
20
+ #include "parse_vdso.h"
24
21
25
22
/*
26
23
* ARM64's vDSO exports its gettimeofday() implementation with a different
You can’t perform that action at this time.
0 commit comments