Lines Matching full:pid

27 int is_skas_winch(int pid, int fd, void *data)  in is_skas_winch()  argument
29 return pid == getpgrp(); in is_skas_winch()
80 static int ptrace_dump_regs(int pid) in ptrace_dump_regs() argument
85 if (ptrace(PTRACE_GETREGS, pid, 0, regs) < 0) in ptrace_dump_regs()
107 void wait_stub_done(int pid) in wait_stub_done() argument
112 CATCH_EINTR(n = waitpid(pid, &status, WUNTRACED | __WALL)); in wait_stub_done()
119 err = ptrace(PTRACE_CONT, pid, 0, 0); in wait_stub_done()
131 err = ptrace_dump_regs(pid); in wait_stub_done()
135 …printk(UM_KERN_ERR "%s : failed to wait for SIGTRAP, pid = %d, n = %d, errno = %d, status = 0x%x\n… in wait_stub_done()
136 __func__, pid, n, errno, status); in wait_stub_done()
142 static void get_skas_faultinfo(int pid, struct faultinfo *fi, unsigned long *aux_fp_regs) in get_skas_faultinfo() argument
146 err = get_fp_registers(pid, aux_fp_regs); in get_skas_faultinfo()
152 err = ptrace(PTRACE_CONT, pid, 0, SIGSEGV); in get_skas_faultinfo()
154 printk(UM_KERN_ERR "Failed to continue stub, pid = %d, " in get_skas_faultinfo()
155 "errno = %d\n", pid, errno); in get_skas_faultinfo()
158 wait_stub_done(pid); in get_skas_faultinfo()
166 err = put_fp_registers(pid, aux_fp_regs); in get_skas_faultinfo()
174 static void handle_segv(int pid, struct uml_pt_regs *regs, unsigned long *aux_fp_regs) in handle_segv() argument
176 get_skas_faultinfo(pid, &regs->faultinfo, aux_fp_regs); in handle_segv()
180 static void handle_trap(int pid, struct uml_pt_regs *regs) in handle_trap() argument
272 int pid, status, n, flags, err; in start_userspace() local
291 pid = clone(userspace_tramp, (void *) sp, flags, (void *) stub_stack); in start_userspace()
292 if (pid < 0) { in start_userspace()
300 CATCH_EINTR(n = waitpid(pid, &status, WUNTRACED | __WALL)); in start_userspace()
316 if (ptrace(PTRACE_SETOPTIONS, pid, NULL, in start_userspace()
331 return pid; in start_userspace()
334 os_kill_ptraced_process(pid, 1); in start_userspace()
340 int err, status, op, pid = userspace_pid[0]; in userspace() local
358 if (ptrace(PTRACE_SETREGS, pid, 0, regs->gp)) { in userspace()
364 if (put_fp_registers(pid, regs->fp)) { in userspace()
375 if (ptrace(op, pid, 0, 0)) { in userspace()
381 CATCH_EINTR(err = waitpid(pid, &status, WUNTRACED | __WALL)); in userspace()
389 if (ptrace(PTRACE_GETREGS, pid, 0, regs->gp)) { in userspace()
395 if (get_fp_registers(pid, regs->fp)) { in userspace()
417 ptrace(PTRACE_GETSIGINFO, pid, 0, (struct siginfo *)&si); in userspace()
424 get_skas_faultinfo(pid, in userspace()
429 else handle_segv(pid, regs, aux_fp_regs); in userspace()
432 handle_trap(pid, regs); in userspace()
453 pid = userspace_pid[0]; in userspace()
483 int copy_context_skas0(unsigned long new_stack, int pid) in copy_context_skas0() argument
507 err = ptrace_setregs(pid, thread_regs); in copy_context_skas0()
510 printk(UM_KERN_ERR "%s : PTRACE_SETREGS failed, pid = %d, errno = %d\n", in copy_context_skas0()
511 __func__, pid, -err); in copy_context_skas0()
515 err = put_fp_registers(pid, thread_fp_regs); in copy_context_skas0()
517 printk(UM_KERN_ERR "%s : put_fp_registers failed, pid = %d, err = %d\n", in copy_context_skas0()
518 __func__, pid, err); in copy_context_skas0()
523 * Wait, until parent has finished its work: read child's pid from in copy_context_skas0()
526 err = ptrace(PTRACE_CONT, pid, 0, 0); in copy_context_skas0()
529 printk(UM_KERN_ERR "Failed to continue new process, pid = %d, errno = %d\n", in copy_context_skas0()
530 pid, errno); in copy_context_skas0()
534 wait_stub_done(pid); in copy_context_skas0()
536 pid = data->parent_err; in copy_context_skas0()
537 if (pid < 0) { in copy_context_skas0()
539 __func__, -pid); in copy_context_skas0()
540 return pid; in copy_context_skas0()
547 wait_stub_done(pid); in copy_context_skas0()
550 __func__, pid, data->child_err); in copy_context_skas0()
555 if (ptrace(PTRACE_SETOPTIONS, pid, NULL, in copy_context_skas0()
563 return pid; in copy_context_skas0()
566 os_kill_ptraced_process(pid, 1); in copy_context_skas0()
685 userspace_pid[0] = mm_idp->u.pid; in __switch_mm()