Lines Matching refs:child_pid

86 static int perf_thread_event_open(pid_t child_pid, __u64 addr, __u64 len)  in perf_thread_event_open()  argument
91 return syscall(__NR_perf_event_open, &attr, child_pid, -1, -1, 0); in perf_thread_event_open()
94 static int perf_thread_cpu_event_open(pid_t child_pid, int cpu, __u64 addr, __u64 len) in perf_thread_cpu_event_open() argument
99 return syscall(__NR_perf_event_open, &attr, child_pid, cpu, -1, 0); in perf_thread_cpu_event_open()
102 static int perf_thread_kernel_event_open(pid_t child_pid) in perf_thread_kernel_event_open() argument
107 return syscall(__NR_perf_event_open, &attr, child_pid, -1, -1, 0); in perf_thread_kernel_event_open()
147 static int ptrace_open(pid_t child_pid, __u64 wp_addr, int len) in ptrace_open() argument
152 return ptrace(PPC_PTRACE_SETHWDEBUG, child_pid, 0, &info); in ptrace_open()
155 static int test1(pid_t child_pid) in test1() argument
172 ptrace_fd = ptrace_open(child_pid, (__u64)ptrace_data1, sizeof(*ptrace_data1)); in test1()
180 static int test2(pid_t child_pid) in test2() argument
197 ptrace_fd = ptrace_open(child_pid, (__u64)ptrace_data2, sizeof(*ptrace_data2)); in test2()
202 ptrace(PPC_PTRACE_DELHWDEBUG, child_pid, 0, ptrace_fd); in test2()
209 static int test3(pid_t child_pid) in test3() argument
221 perf_fd = perf_thread_event_open(child_pid, (__u64)perf_data1, in test3()
226 ptrace_fd = ptrace_open(child_pid, (__u64)ptrace_data1, sizeof(*ptrace_data1)); in test3()
234 static int test4(pid_t child_pid) in test4() argument
246 perf_fd = perf_thread_event_open(child_pid, (__u64)perf_data2, in test4()
251 ptrace_fd = ptrace_open(child_pid, (__u64)ptrace_data2, sizeof(*ptrace_data2)); in test4()
256 ptrace(PPC_PTRACE_DELHWDEBUG, child_pid, 0, ptrace_fd); in test4()
263 static int test5(pid_t child_pid) in test5() argument
288 ptrace_fd = ptrace_open(child_pid, (__u64)ptrace_data1, sizeof(*ptrace_data1)); in test5()
294 ptrace(PPC_PTRACE_DELHWDEBUG, child_pid, 0, ptrace_fd); in test5()
302 static int test6(pid_t child_pid) in test6() argument
317 ptrace_fd = ptrace_open(child_pid, (__u64)ptrace_data1, sizeof(*ptrace_data1)); in test6()
321 perf_fd = perf_thread_kernel_event_open(child_pid); in test6()
336 ptrace(PPC_PTRACE_DELHWDEBUG, child_pid, 0, ptrace_fd); in test6()
340 static int test7(pid_t child_pid) in test7() argument
352 ptrace_fd = ptrace_open(child_pid, (__u64)ptrace_data1, sizeof(*ptrace_data1)); in test7()
356 perf_fd = perf_thread_event_open(child_pid, (__u64)perf_data1, in test7()
361 ptrace(PPC_PTRACE_DELHWDEBUG, child_pid, 0, ptrace_fd); in test7()
365 static int test8(pid_t child_pid) in test8() argument
377 ptrace_fd = ptrace_open(child_pid, (__u64)ptrace_data2, sizeof(*ptrace_data2)); in test8()
381 perf_fd = perf_thread_event_open(child_pid, (__u64)perf_data2, in test8()
390 ptrace(PPC_PTRACE_DELHWDEBUG, child_pid, 0, ptrace_fd); in test8()
394 static int test9(pid_t child_pid) in test9() argument
406 ptrace_fd = ptrace_open(child_pid, (__u64)ptrace_data1, sizeof(*ptrace_data1)); in test9()
426 ptrace(PPC_PTRACE_DELHWDEBUG, child_pid, 0, ptrace_fd); in test9()
430 static int test10(pid_t child_pid) in test10() argument
442 ptrace_fd = ptrace_open(child_pid, (__u64)ptrace_data1, sizeof(*ptrace_data1)); in test10()
450 ptrace(PPC_PTRACE_DELHWDEBUG, child_pid, 0, ptrace_fd); in test10()
454 static int test11(pid_t child_pid) in test11() argument
466 ptrace_fd = ptrace_open(child_pid, (__u64)ptrace_data2, sizeof(*ptrace_data2)); in test11()
478 ptrace(PPC_PTRACE_DELHWDEBUG, child_pid, 0, ptrace_fd); in test11()
482 static int test12(pid_t child_pid) in test12() argument
494 ptrace_fd = ptrace_open(child_pid, (__u64)ptrace_data1, sizeof(*ptrace_data1)); in test12()
498 perf_fd = perf_thread_cpu_event_open(child_pid, 0, (__u64)perf_data1, sizeof(*perf_data1)); in test12()
502 ptrace(PPC_PTRACE_DELHWDEBUG, child_pid, 0, ptrace_fd); in test12()
506 static int test13(pid_t child_pid) in test13() argument
518 ptrace_fd = ptrace_open(child_pid, (__u64)ptrace_data2, sizeof(*ptrace_data2)); in test13()
522 perf_fd = perf_thread_cpu_event_open(child_pid, 0, (__u64)perf_data2, sizeof(*perf_data2)); in test13()
530 ptrace(PPC_PTRACE_DELHWDEBUG, child_pid, 0, ptrace_fd); in test13()
534 static int test14(pid_t child_pid) in test14() argument
546 ptrace_fd = ptrace_open(child_pid, (__u64)ptrace_data1, sizeof(*ptrace_data1)); in test14()
567 ptrace(PPC_PTRACE_DELHWDEBUG, child_pid, 0, ptrace_fd); in test14()
600 static int test(pid_t child_pid) in test() argument
604 ret |= do_test(desc[0], test1, child_pid); in test()
605 ret |= do_test(desc[1], test2, child_pid); in test()
606 ret |= do_test(desc[2], test3, child_pid); in test()
607 ret |= do_test(desc[3], test4, child_pid); in test()
608 ret |= do_test(desc[4], test5, child_pid); in test()
609 ret |= do_test(desc[5], test6, child_pid); in test()
610 ret |= do_test(desc[6], test7, child_pid); in test()
611 ret |= do_test(desc[7], test8, child_pid); in test()
612 ret |= do_test(desc[8], test9, child_pid); in test()
613 ret |= do_test(desc[9], test10, child_pid); in test()
614 ret |= do_test(desc[10], test11, child_pid); in test()
615 ret |= do_test(desc[11], test12, child_pid); in test()
616 ret |= do_test(desc[12], test13, child_pid); in test()
617 ret |= do_test(desc[13], test14, child_pid); in test()
622 static void get_dbginfo(pid_t child_pid, struct ppc_debug_info *dbginfo) in get_dbginfo() argument
624 if (ptrace(PPC_PTRACE_GETHWDBGINFO, child_pid, NULL, dbginfo)) { in get_dbginfo()
633 pid_t child_pid; in ptrace_perf_hwbreak() local
636 child_pid = fork(); in ptrace_perf_hwbreak()
637 if (!child_pid) in ptrace_perf_hwbreak()
643 get_dbginfo(child_pid, &dbginfo); in ptrace_perf_hwbreak()
650 ret = test(child_pid); in ptrace_perf_hwbreak()
652 ptrace(PTRACE_CONT, child_pid, NULL, 0); in ptrace_perf_hwbreak()