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