Lines Matching defs:child

155 static inline unsigned long __peek_user_per(struct task_struct *child,
161 PER_EVENT_IFETCH : child->thread.per_user.control;
165 0 : child->thread.per_user.start;
169 -1UL : child->thread.per_user.end;
176 return child->thread.per_user.start;
179 return child->thread.per_user.end;
183 child->thread.per_event.cause << (BITS_PER_LONG - 16);
186 return child->thread.per_event.address;
190 child->thread.per_event.paid << (BITS_PER_LONG - 8);
203 static unsigned long __peek_user(struct task_struct *child, addr_t addr)
211 tmp = *(addr_t *)((addr_t) &task_pt_regs(child)->psw + addr);
229 tmp = ((unsigned long) child->thread.acrs[15]) << 32;
231 tmp = *(addr_t *)((addr_t) &child->thread.acrs + offset);
237 tmp = (addr_t) task_pt_regs(child)->orig_gpr2;
250 tmp = child->thread.ufpu.fpc;
255 * floating point regs. are in the child->thread.ufpu.vxrs array
258 tmp = *(addr_t *)((addr_t)child->thread.ufpu.vxrs + 2 * offset);
264 tmp = __peek_user_per(child, addr);
273 peek_user(struct task_struct *child, addr_t addr, addr_t data)
288 tmp = __peek_user(child, addr);
292 static inline void __poke_user_per(struct task_struct *child,
309 child->thread.per_user.control =
313 child->thread.per_user.start = data;
316 child->thread.per_user.end = data;
325 static int __poke_user(struct task_struct *child, addr_t addr, addr_t data)
331 struct pt_regs *regs = task_pt_regs(child);
338 mask |= is_ri_task(child) ? PSW_MASK_RI : 0;
352 struct pt_regs *regs = task_pt_regs(child);
369 child->thread.acrs[15] = (unsigned int) (data >> 32);
371 *(addr_t *)((addr_t) &child->thread.acrs + offset) = data;
377 task_pt_regs(child)->orig_gpr2 = data;
392 child->thread.ufpu.fpc = data >> (BITS_PER_LONG - 32);
396 * floating point regs. are in the child->thread.ufpu.vxrs array
399 *(addr_t *)((addr_t)child->thread.ufpu.vxrs + 2 * offset) = data;
405 __poke_user_per(child, addr, data);
412 static int poke_user(struct task_struct *child, addr_t addr, addr_t data)
427 return __poke_user(child, addr, data);
430 long arch_ptrace(struct task_struct *child, long request,
439 return peek_user(child, addr, data);
443 return poke_user(child, addr, data);
455 ret = peek_user(child, addr, data);
461 ret = poke_user(child, addr, utmp);
471 return put_user(child->thread.last_break, (unsigned long __user *)data);
475 child->thread.per_flags &= ~PER_FLAG_NO_TE;
480 child->thread.per_flags |= PER_FLAG_NO_TE;
481 child->thread.per_flags &= ~PER_FLAG_TE_ABORT_RAND;
484 if (!MACHINE_HAS_TE || (child->thread.per_flags & PER_FLAG_NO_TE))
488 child->thread.per_flags &= ~PER_FLAG_TE_ABORT_RAND;
491 child->thread.per_flags |= PER_FLAG_TE_ABORT_RAND;
492 child->thread.per_flags |= PER_FLAG_TE_ABORT_RAND_TEND;
495 child->thread.per_flags |= PER_FLAG_TE_ABORT_RAND;
496 child->thread.per_flags &= ~PER_FLAG_TE_ABORT_RAND_TEND;
503 return ptrace_request(child, request, addr, data);
525 static inline __u32 __peek_user_per_compat(struct task_struct *child,
531 PER_EVENT_IFETCH : child->thread.per_user.control;
535 0 : child->thread.per_user.start;
539 PSW32_ADDR_INSN : child->thread.per_user.end;
546 return (__u32) child->thread.per_user.start;
549 return (__u32) child->thread.per_user.end;
552 return (__u32) child->thread.per_event.cause << 16;
555 return (__u32) child->thread.per_event.address;
558 return (__u32) child->thread.per_event.paid << 24;
565 static u32 __peek_user_compat(struct task_struct *child, addr_t addr)
571 struct pt_regs *regs = task_pt_regs(child);
593 tmp = *(__u32*)((addr_t) &child->thread.acrs + offset);
599 tmp = *(__u32*)((addr_t) &task_pt_regs(child)->orig_gpr2 + 4);
612 tmp = child->thread.ufpu.fpc;
616 * floating point regs. are in the child->thread.ufpu.vxrs array
619 tmp = *(__u32 *)((addr_t)child->thread.ufpu.vxrs + 2 * offset);
625 tmp = __peek_user_per_compat(child, addr);
633 static int peek_user_compat(struct task_struct *child,
641 tmp = __peek_user_compat(child, addr);
648 static inline void __poke_user_per_compat(struct task_struct *child,
653 child->thread.per_user.control =
657 child->thread.per_user.start = data;
660 child->thread.per_user.end = data;
666 static int __poke_user_compat(struct task_struct *child,
673 struct pt_regs *regs = task_pt_regs(child);
680 mask |= is_ri_task(child) ? PSW32_MASK_RI : 0;
700 struct pt_regs *regs = task_pt_regs(child);
712 *(__u32*)((addr_t) &child->thread.acrs + offset) = tmp;
718 *(__u32*)((addr_t) &task_pt_regs(child)->orig_gpr2 + 4) = tmp;
731 child->thread.ufpu.fpc = data;
735 * floating point regs. are in the child->thread.ufpu.vxrs array
738 *(__u32 *)((addr_t)child->thread.ufpu.vxrs + 2 * offset) = tmp;
744 __poke_user_per_compat(child, addr, data);
750 static int poke_user_compat(struct task_struct *child,
757 return __poke_user_compat(child, addr, data);
760 long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
771 return peek_user_compat(child, addr, data);
775 return poke_user_compat(child, addr, data);
787 ret = peek_user_compat(child, addr, data);
793 ret = poke_user_compat(child, addr, utmp);
803 return put_user(child->thread.last_break, (unsigned int __user *)data);
805 return compat_ptrace_request(child, request, addr, data);