Lines Matching refs:pid
27 int is_skas_winch(int pid, int fd, void *data)
29 return pid == getpgrp();
32 static int ptrace_dump_regs(int pid)
37 if (ptrace(PTRACE_GETREGS, pid, 0, regs) < 0)
56 void wait_stub_done(int pid)
61 CATCH_EINTR(n = waitpid(pid, &status, WUNTRACED | __WALL));
68 err = ptrace(PTRACE_CONT, pid, 0, 0);
80 err = ptrace_dump_regs(pid);
85 "pid = %d, n = %d, errno = %d, status = 0x%x\n", pid, n, errno,
92 static void get_skas_faultinfo(int pid, struct faultinfo *fi, unsigned long *aux_fp_regs)
96 err = get_fp_registers(pid, aux_fp_regs);
102 err = ptrace(PTRACE_CONT, pid, 0, SIGSEGV);
104 printk(UM_KERN_ERR "Failed to continue stub, pid = %d, "
105 "errno = %d\n", pid, errno);
108 wait_stub_done(pid);
116 err = put_fp_registers(pid, aux_fp_regs);
124 static void handle_segv(int pid, struct uml_pt_regs *regs, unsigned long *aux_fp_regs)
126 get_skas_faultinfo(pid, ®s->faultinfo, aux_fp_regs);
134 static void handle_trap(int pid, struct uml_pt_regs *regs,
144 err = ptrace(PTRACE_POKEUSER, pid, PT_SYSCALL_NR_OFFSET,
152 err = ptrace(PTRACE_SYSCALL, pid, 0, 0);
159 CATCH_EINTR(err = waitpid(pid, &status, WUNTRACED | __WALL));
162 err = ptrace_dump_regs(pid);
270 int pid, status, n, flags, err;
289 pid = clone(userspace_tramp, (void *) sp, flags, (void *) stub_stack);
290 if (pid < 0) {
298 CATCH_EINTR(n = waitpid(pid, &status, WUNTRACED | __WALL));
314 if (ptrace(PTRACE_OLDSETOPTIONS, pid, NULL,
329 return pid;
332 os_kill_ptraced_process(pid, 1);
338 int err, status, op, pid = userspace_pid[0];
358 if (ptrace(PTRACE_SETREGS, pid, 0, regs->gp)) {
364 if (put_fp_registers(pid, regs->fp)) {
376 if (ptrace(op, pid, 0, 0)) {
382 CATCH_EINTR(err = waitpid(pid, &status, WUNTRACED | __WALL));
390 if (ptrace(PTRACE_GETREGS, pid, 0, regs->gp)) {
396 if (get_fp_registers(pid, regs->fp)) {
407 ptrace(PTRACE_GETSIGINFO, pid, 0, (struct siginfo *)&si);
412 get_skas_faultinfo(pid,
417 else handle_segv(pid, regs, aux_fp_regs);
420 handle_trap(pid, regs, local_using_sysemu);
441 pid = userspace_pid[0];
471 int copy_context_skas0(unsigned long new_stack, int pid)
489 err = ptrace_setregs(pid, thread_regs);
493 "failed, pid = %d, errno = %d\n", pid, -err);
497 err = put_fp_registers(pid, thread_fp_regs);
500 "failed, pid = %d, err = %d\n", pid, err);
508 * Wait, until parent has finished its work: read child's pid from
511 err = ptrace(PTRACE_CONT, pid, 0, 0);
514 printk(UM_KERN_ERR "Failed to continue new process, pid = %d, "
515 "errno = %d\n", pid, errno);
519 wait_stub_done(pid);
521 pid = data->err;
522 if (pid < 0) {
524 "error %d\n", -pid);
525 return pid;
532 wait_stub_done(pid);
540 if (ptrace(PTRACE_OLDSETOPTIONS, pid, NULL,
548 return pid;
551 os_kill_ptraced_process(pid, 1);
670 userspace_pid[0] = mm_idp->u.pid;