xref: /openbmc/linux/tools/perf/perf-read-vdso.c (revision 01153237)
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 /*
801153237SFlorian Fainelli  * Include definition of find_map() also used in util/vdso.c for
9e477f3f0SAdrian Hunter  * building perf.
10e477f3f0SAdrian Hunter  */
1101153237SFlorian Fainelli #include "util/find-map.c"
12e477f3f0SAdrian Hunter 
main(void)13e477f3f0SAdrian Hunter int main(void)
14e477f3f0SAdrian Hunter {
15e477f3f0SAdrian Hunter 	void *start, *end;
16e477f3f0SAdrian Hunter 	size_t size, written;
17e477f3f0SAdrian Hunter 
1801153237SFlorian Fainelli 	if (find_map(&start, &end, VDSO__MAP_NAME))
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