1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
2 | /* |
3 | * Copyright 2014, Michael Ellerman, IBM Corp. |
4 | */ |
5 | |
6 | #ifndef __SELFTESTS_POWERPC_PMU_LIB_H |
7 | #define __SELFTESTS_POWERPC_PMU_LIB_H |
8 | |
9 | #include <stdbool.h> |
10 | #include <stdio.h> |
11 | #include <stdint.h> |
12 | #include <string.h> |
13 | #include <unistd.h> |
14 | |
15 | union pipe { |
16 | struct { |
17 | int read_fd; |
18 | int write_fd; |
19 | }; |
20 | int fds[2]; |
21 | }; |
22 | |
23 | extern int kill_child_and_wait(pid_t child_pid); |
24 | extern int wait_for_child(pid_t child_pid); |
25 | extern int sync_with_child(union pipe read_pipe, union pipe write_pipe); |
26 | extern int wait_for_parent(union pipe read_pipe); |
27 | extern int notify_parent(union pipe write_pipe); |
28 | extern int notify_parent_of_error(union pipe write_pipe); |
29 | extern pid_t eat_cpu(int (test_function)(void)); |
30 | extern bool require_paranoia_below(int level); |
31 | |
32 | struct addr_range { |
33 | uint64_t first, last; |
34 | }; |
35 | |
36 | extern struct addr_range libc, vdso; |
37 | |
38 | int parse_proc_maps(void); |
39 | |
40 | #endif /* __SELFTESTS_POWERPC_PMU_LIB_H */ |
41 | |