xref: /openbmc/linux/tools/perf/perf-read-vdso.c (revision e477f3f0)
1e477f3f0SAdrian Hunter #include <stdio.h>
2e477f3f0SAdrian Hunter #include <string.h>
3e477f3f0SAdrian Hunter 
4e477f3f0SAdrian Hunter #define VDSO__MAP_NAME "[vdso]"
5e477f3f0SAdrian Hunter 
6e477f3f0SAdrian Hunter /*
7e477f3f0SAdrian Hunter  * Include definition of find_vdso_map() also used in util/vdso.c for
8e477f3f0SAdrian Hunter  * building perf.
9e477f3f0SAdrian Hunter  */
10e477f3f0SAdrian Hunter #include "util/find-vdso-map.c"
11e477f3f0SAdrian Hunter 
12e477f3f0SAdrian Hunter int main(void)
13e477f3f0SAdrian Hunter {
14e477f3f0SAdrian Hunter 	void *start, *end;
15e477f3f0SAdrian Hunter 	size_t size, written;
16e477f3f0SAdrian Hunter 
17e477f3f0SAdrian Hunter 	if (find_vdso_map(&start, &end))
18e477f3f0SAdrian Hunter 		return 1;
19e477f3f0SAdrian Hunter 
20e477f3f0SAdrian Hunter 	size = end - start;
21e477f3f0SAdrian Hunter 
22e477f3f0SAdrian Hunter 	while (size) {
23e477f3f0SAdrian Hunter 		written = fwrite(start, 1, size, stdout);
24e477f3f0SAdrian Hunter 		if (!written)
25e477f3f0SAdrian Hunter 			return 1;
26e477f3f0SAdrian Hunter 		start += written;
27e477f3f0SAdrian Hunter 		size -= written;
28e477f3f0SAdrian Hunter 	}
29e477f3f0SAdrian Hunter 
30e477f3f0SAdrian Hunter 	if (fflush(stdout))
31e477f3f0SAdrian Hunter 		return 1;
32e477f3f0SAdrian Hunter 
33e477f3f0SAdrian Hunter 	return 0;
34e477f3f0SAdrian Hunter }
35