• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/arch/x86_64/kernel/

Lines Matching refs:child

34  * does not yet catch signals sent when the child dies.
49 * eflags and offset of eflags on child stack..
88 unsigned long convert_rip_to_linear(struct task_struct *child, struct pt_regs *regs)
105 down(&child->mm->context.sem);
106 desc = child->mm->context.ldt + (seg & ~7);
113 up(&child->mm->context.sem);
118 static int is_setting_trap_flag(struct task_struct *child, struct pt_regs *regs)
122 unsigned long addr = convert_rip_to_linear(child, regs);
124 copied = access_process_vm(child, addr, opcode, sizeof(opcode), 0);
167 static void set_singlestep(struct task_struct *child)
169 struct pt_regs *regs = task_pt_regs(child);
176 set_tsk_thread_flag(child, TIF_SINGLESTEP);
192 if (is_setting_trap_flag(child, regs))
195 child->ptrace |= PT_DTRACE;
198 static void clear_singlestep(struct task_struct *child)
201 clear_tsk_thread_flag(child, TIF_SINGLESTEP);
204 if (child->ptrace & PT_DTRACE) {
205 struct pt_regs *regs = task_pt_regs(child);
207 child->ptrace &= ~PT_DTRACE;
216 void ptrace_disable(struct task_struct *child)
218 clear_singlestep(child);
221 static int putreg(struct task_struct *child,
228 if (test_tsk_thread_flag(child, TIF_IA32))
234 child->thread.fsindex = value & 0xffff;
239 child->thread.gsindex = value & 0xffff;
244 child->thread.ds = value & 0xffff;
249 child->thread.es = value & 0xffff;
257 if (value >= TASK_SIZE_OF(child))
259 child->thread.fs = value;
262 if (value >= TASK_SIZE_OF(child))
264 child->thread.gs = value;
268 tmp = get_stack_long(child, EFL_OFFSET);
278 put_stack_long(child, regno - sizeof(struct pt_regs), value);
282 static unsigned long getreg(struct task_struct *child, unsigned long regno)
287 return child->thread.fsindex;
289 return child->thread.gsindex;
291 return child->thread.ds;
293 return child->thread.es;
295 return child->thread.fs;
297 return child->thread.gs;
300 val = get_stack_long(child, regno);
301 if (test_tsk_thread_flag(child, TIF_IA32))
308 long arch_ptrace(struct task_struct *child, long request, long addr, long data)
320 copied = access_process_vm(child, addr, &tmp, sizeof(tmp), 0);
339 tmp = getreg(child, addr);
342 tmp = child->thread.debugreg0;
345 tmp = child->thread.debugreg1;
348 tmp = child->thread.debugreg2;
351 tmp = child->thread.debugreg3;
354 tmp = child->thread.debugreg6;
357 tmp = child->thread.debugreg7;
371 if (access_process_vm(child, addr, &data, sizeof(data), 1) == sizeof(data))
378 int dsize = test_tsk_thread_flag(child, TIF_IA32) ? 3 : 7;
386 ret = putreg(child, addr, data);
390 if (data >= TASK_SIZE_OF(child) - dsize) break;
391 child->thread.debugreg0 = data;
395 if (data >= TASK_SIZE_OF(child) - dsize) break;
396 child->thread.debugreg1 = data;
400 if (data >= TASK_SIZE_OF(child) - dsize) break;
401 child->thread.debugreg2 = data;
405 if (data >= TASK_SIZE_OF(child) - dsize) break;
406 child->thread.debugreg3 = data;
412 child->thread.debugreg6 = data;
423 child->thread.debugreg7 = data;
425 set_tsk_thread_flag(child, TIF_DEBUG);
427 clear_tsk_thread_flag(child, TIF_DEBUG);
441 set_tsk_thread_flag(child,TIF_SYSCALL_TRACE);
443 clear_tsk_thread_flag(child,TIF_SYSCALL_TRACE);
444 clear_tsk_thread_flag(child, TIF_SINGLESTEP);
445 child->exit_code = data;
447 clear_singlestep(child);
448 wake_up_process(child);
463 ret = do_set_thread_area(&child->thread, p);
470 ret = do_get_thread_area(&child->thread, p);
479 ret = do_arch_prctl(child, data, addr);
483 * make the child exit. Best I can do is send it a sigkill.
489 if (child->exit_state == EXIT_ZOMBIE) /* already dead */
491 clear_tsk_thread_flag(child, TIF_SINGLESTEP);
492 child->exit_code = SIGKILL;
494 clear_singlestep(child);
495 wake_up_process(child);
502 clear_tsk_thread_flag(child,TIF_SYSCALL_TRACE);
503 set_singlestep(child);
504 child->exit_code = data;
506 wake_up_process(child);
512 ret = ptrace_detach(child, data);
515 case PTRACE_GETREGS: { /* Get all gp regs from the child. */
523 ret |= __put_user(getreg(child, ui),(unsigned long __user *) data);
529 case PTRACE_SETREGS: { /* Set all gp regs in the child. */
541 ret = putreg(child, ui, tmp);
549 case PTRACE_GETFPREGS: { /* Get the child extended FPU state. */
555 ret = get_fpregs((struct user_i387_struct __user *)data, child);
559 case PTRACE_SETFPREGS: { /* Set the child extended FPU state. */
565 set_stopped_child_used_math(child);
566 ret = set_fpregs(child, (struct user_i387_struct __user *)data);
571 ret = ptrace_request(child, request, addr, data);