Home | History | Annotate | Download | only in pmu
      1 /*
      2  * Copyright 2014, Michael Ellerman, IBM Corp.
      3  * Licensed under GPLv2.
      4  */
      5 
      6 #ifndef __SELFTESTS_POWERPC_PMU_LIB_H
      7 #define __SELFTESTS_POWERPC_PMU_LIB_H
      8 
      9 #include <stdio.h>
     10 #include <stdint.h>
     11 #include <string.h>
     12 #include <unistd.h>
     13 
     14 union pipe {
     15 	struct {
     16 		int read_fd;
     17 		int write_fd;
     18 	};
     19 	int fds[2];
     20 };
     21 
     22 extern int bind_to_cpu(int cpu);
     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