lib.h (961B)
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 15union pipe { 16 struct { 17 int read_fd; 18 int write_fd; 19 }; 20 int fds[2]; 21}; 22 23extern int bind_to_cpu(int cpu); 24extern int kill_child_and_wait(pid_t child_pid); 25extern int wait_for_child(pid_t child_pid); 26extern int sync_with_child(union pipe read_pipe, union pipe write_pipe); 27extern int wait_for_parent(union pipe read_pipe); 28extern int notify_parent(union pipe write_pipe); 29extern int notify_parent_of_error(union pipe write_pipe); 30extern pid_t eat_cpu(int (test_function)(void)); 31extern bool require_paranoia_below(int level); 32 33struct addr_range { 34 uint64_t first, last; 35}; 36 37extern struct addr_range libc, vdso; 38 39int parse_proc_maps(void); 40 41#endif /* __SELFTESTS_POWERPC_PMU_LIB_H */