tag | line | file | source code |
child | 222 | kernel/ptrace.c | struct task_struct *child; |
child | 234 | kernel/ptrace.c | if (!(child = get_task(pid))) |
child | 239 | kernel/ptrace.c | if (child == current) |
child | 241 | kernel/ptrace.c | if ((!child->dumpable || (current->uid != child->euid) || |
child | 242 | kernel/ptrace.c | (current->gid != child->egid)) && !suser()) |
child | 245 | kernel/ptrace.c | if (child->flags & PF_PTRACED) |
child | 247 | kernel/ptrace.c | child->flags |= PF_PTRACED; |
child | 248 | kernel/ptrace.c | if (child->p_pptr != current) { |
child | 249 | kernel/ptrace.c | REMOVE_LINKS(child); |
child | 250 | kernel/ptrace.c | child->p_pptr = current; |
child | 251 | kernel/ptrace.c | SET_LINKS(child); |
child | 253 | kernel/ptrace.c | tmp = get_stack_long(child, 4*EFL-MAGICNUMBER) | TRAP_FLAG; |
child | 254 | kernel/ptrace.c | put_stack_long(child, 4*EFL-MAGICNUMBER,tmp); |
child | 255 | kernel/ptrace.c | if (child->state == TASK_INTERRUPTIBLE || |
child | 256 | kernel/ptrace.c | child->state == TASK_STOPPED) |
child | 257 | kernel/ptrace.c | child->state = TASK_RUNNING; |
child | 258 | kernel/ptrace.c | child->signal = 0; |
child | 261 | kernel/ptrace.c | if (!(child->flags & PF_PTRACED)) |
child | 263 | kernel/ptrace.c | if (child->state != TASK_STOPPED && request != PTRACE_DETACH) |
child | 265 | kernel/ptrace.c | if (child->p_pptr != current) |
child | 274 | kernel/ptrace.c | res = read_long(child, addr, &tmp); |
child | 292 | kernel/ptrace.c | tmp = get_stack_long(child, 4*addr - MAGICNUMBER); |
child | 300 | kernel/ptrace.c | return write_long(child,addr,data); |
child | 310 | kernel/ptrace.c | data |= get_stack_long(child, EFL*4-MAGICNUMBER) & ~FLAG_MASK; |
child | 312 | kernel/ptrace.c | if (put_stack_long(child, 4*addr-MAGICNUMBER, data)) |
child | 321 | kernel/ptrace.c | child->flags |= PF_TRACESYS; |
child | 323 | kernel/ptrace.c | child->flags &= ~PF_TRACESYS; |
child | 324 | kernel/ptrace.c | child->signal = 0; |
child | 326 | kernel/ptrace.c | child->signal = 1<<(data-1); |
child | 327 | kernel/ptrace.c | child->state = TASK_RUNNING; |
child | 329 | kernel/ptrace.c | tmp = get_stack_long(child, 4*EFL-MAGICNUMBER) & ~TRAP_FLAG; |
child | 330 | kernel/ptrace.c | put_stack_long(child, 4*EFL-MAGICNUMBER,tmp); |
child | 342 | kernel/ptrace.c | child->state = TASK_RUNNING; |
child | 343 | kernel/ptrace.c | child->signal = 1 << (SIGKILL-1); |
child | 345 | kernel/ptrace.c | tmp = get_stack_long(child, 4*EFL-MAGICNUMBER) & ~TRAP_FLAG; |
child | 346 | kernel/ptrace.c | put_stack_long(child, 4*EFL-MAGICNUMBER,tmp); |
child | 353 | kernel/ptrace.c | child->flags &= ~PF_TRACESYS; |
child | 354 | kernel/ptrace.c | tmp = get_stack_long(child, 4*EFL-MAGICNUMBER) | TRAP_FLAG; |
child | 355 | kernel/ptrace.c | put_stack_long(child, 4*EFL-MAGICNUMBER,tmp); |
child | 356 | kernel/ptrace.c | child->state = TASK_RUNNING; |
child | 357 | kernel/ptrace.c | child->signal = 0; |
child | 359 | kernel/ptrace.c | child->signal= 1<<(data-1); |
child | 367 | kernel/ptrace.c | child->flags &= ~(PF_PTRACED|PF_TRACESYS); |
child | 368 | kernel/ptrace.c | child->signal=0; |
child | 369 | kernel/ptrace.c | child->state = 0; |
child | 370 | kernel/ptrace.c | REMOVE_LINKS(child); |
child | 371 | kernel/ptrace.c | child->p_pptr = child->p_opptr; |
child | 372 | kernel/ptrace.c | SET_LINKS(child); |
child | 374 | kernel/ptrace.c | tmp = get_stack_long(child, 4*EFL-MAGICNUMBER) & ~TRAP_FLAG; |
child | 375 | kernel/ptrace.c | put_stack_long(child, 4*EFL-MAGICNUMBER,tmp); |