| /* SPDX-License-Identifier: GPL-2.0-only */ |
| /* |
| * Copyright 2014, Michael Ellerman, IBM Corp. |
| */ |
| |
| #ifndef __SELFTESTS_POWERPC_PMU_LIB_H |
| #define __SELFTESTS_POWERPC_PMU_LIB_H |
| |
| #include <stdbool.h> |
| #include <stdio.h> |
| #include <stdint.h> |
| #include <string.h> |
| #include <unistd.h> |
| |
| union pipe { |
| struct { |
| int read_fd; |
| int write_fd; |
| }; |
| int fds[2]; |
| }; |
| |
| extern int kill_child_and_wait(pid_t child_pid); |
| extern int wait_for_child(pid_t child_pid); |
| extern int sync_with_child(union pipe read_pipe, union pipe write_pipe); |
| extern int wait_for_parent(union pipe read_pipe); |
| extern int notify_parent(union pipe write_pipe); |
| extern int notify_parent_of_error(union pipe write_pipe); |
| extern pid_t eat_cpu(int (test_function)(void)); |
| extern bool require_paranoia_below(int level); |
| |
| struct addr_range { |
| uint64_t first, last; |
| }; |
| |
| extern struct addr_range libc, vdso; |
| |
| int parse_proc_maps(void); |
| |
| #endif /* __SELFTESTS_POWERPC_PMU_LIB_H */ |