Lines Matching full:target
50 static void init_fp_ctx(struct task_struct *target) in init_fp_ctx() argument
52 /* The target already has context */ in init_fp_ctx()
53 if (tsk_used_math(target)) in init_fp_ctx()
57 memset(&target->thread.fpu.fpr, ~0, sizeof(target->thread.fpu.fpr)); in init_fp_ctx()
58 set_stopped_child_used_math(target); in init_fp_ctx()
75 static int gpr_get(struct task_struct *target, in gpr_get() argument
80 struct pt_regs *regs = task_pt_regs(target); in gpr_get()
90 static int gpr_set(struct task_struct *target, in gpr_set() argument
99 struct pt_regs *regs = task_pt_regs(target); in gpr_set()
121 static int gfpr_get(struct task_struct *target, struct membuf *to) in gfpr_get() argument
123 return membuf_write(to, &target->thread.fpu.fpr, in gfpr_get()
127 static int gfpr_get_simd(struct task_struct *target, struct membuf *to) in gfpr_get_simd() argument
134 fpr_val = get_fpr64(&target->thread.fpu.fpr[i], 0); in gfpr_get_simd()
145 static int fpr_get(struct task_struct *target, in fpr_get() argument
151 save_fpu_regs(target); in fpr_get()
153 if (sizeof(target->thread.fpu.fpr[0]) == sizeof(elf_fpreg_t)) in fpr_get()
154 r = gfpr_get(target, &to); in fpr_get()
156 r = gfpr_get_simd(target, &to); in fpr_get()
158 r = membuf_write(&to, &target->thread.fpu.fcc, sizeof(target->thread.fpu.fcc)); in fpr_get()
159 r = membuf_write(&to, &target->thread.fpu.fcsr, sizeof(target->thread.fpu.fcsr)); in fpr_get()
164 static int gfpr_set(struct task_struct *target, in gfpr_set() argument
169 &target->thread.fpu.fpr, in gfpr_set()
173 static int gfpr_set_simd(struct task_struct *target, in gfpr_set_simd() argument
187 set_fpr64(&target->thread.fpu.fpr[i], 0, fpr_val); in gfpr_set_simd()
197 static int fpr_set(struct task_struct *target, in fpr_set() argument
210 init_fp_ctx(target); in fpr_set()
212 if (sizeof(target->thread.fpu.fpr[0]) == sizeof(elf_fpreg_t)) in fpr_set()
213 err = gfpr_set(target, &pos, &count, &kbuf, &ubuf); in fpr_set()
215 err = gfpr_set_simd(target, &pos, &count, &kbuf, &ubuf); in fpr_set()
220 &target->thread.fpu.fcc, fcc_start, in fpr_set()
223 &target->thread.fpu.fcsr, fcsr_start, in fpr_set()
229 static int cfg_get(struct task_struct *target, in cfg_get() argument
248 static int cfg_set(struct task_struct *target, in cfg_set() argument
258 static void copy_pad_fprs(struct task_struct *target, in copy_pad_fprs() argument
271 membuf_write(to, &target->thread.fpu.fpr[i], cp_sz); in copy_pad_fprs()
278 static int simd_get(struct task_struct *target, in simd_get() argument
284 save_fpu_regs(target); in simd_get()
286 if (!tsk_used_math(target)) { in simd_get()
288 copy_pad_fprs(target, regset, &to, 0); in simd_get()
289 } else if (!test_tsk_thread_flag(target, TIF_LSX_CTX_LIVE)) { in simd_get()
291 copy_pad_fprs(target, regset, &to, 8); in simd_get()
293 } else if (!test_tsk_thread_flag(target, TIF_LASX_CTX_LIVE)) { in simd_get()
295 copy_pad_fprs(target, regset, &to, 16); in simd_get()
297 } else if (sizeof(target->thread.fpu.fpr[0]) == regset->size) { in simd_get()
299 membuf_write(&to, &target->thread.fpu.fpr, wr_size); in simd_get()
302 copy_pad_fprs(target, regset, &to, sizeof(target->thread.fpu.fpr[0])); in simd_get()
308 static int simd_set(struct task_struct *target, in simd_set() argument
317 init_fp_ctx(target); in simd_set()
319 if (sizeof(target->thread.fpu.fpr[0]) == regset->size) { in simd_set()
322 &target->thread.fpu.fpr, in simd_set()
327 sizeof(target->thread.fpu.fpr[0])); in simd_set()
332 &target->thread.fpu.fpr[i], in simd_set()
343 static int lbt_get(struct task_struct *target, in lbt_get() argument
349 r = membuf_write(&to, &target->thread.lbt.scr0, sizeof(target->thread.lbt.scr0)); in lbt_get()
350 r = membuf_write(&to, &target->thread.lbt.scr1, sizeof(target->thread.lbt.scr1)); in lbt_get()
351 r = membuf_write(&to, &target->thread.lbt.scr2, sizeof(target->thread.lbt.scr2)); in lbt_get()
352 r = membuf_write(&to, &target->thread.lbt.scr3, sizeof(target->thread.lbt.scr3)); in lbt_get()
353 r = membuf_write(&to, &target->thread.lbt.eflags, sizeof(u32)); in lbt_get()
354 r = membuf_write(&to, &target->thread.fpu.ftop, sizeof(u32)); in lbt_get()
359 static int lbt_set(struct task_struct *target, in lbt_set() argument
365 const int eflags_start = 4 * sizeof(target->thread.lbt.scr0); in lbt_set()
369 &target->thread.lbt.scr0, in lbt_set()
370 0, 4 * sizeof(target->thread.lbt.scr0)); in lbt_set()
372 &target->thread.lbt.eflags, in lbt_set()
375 &target->thread.fpu.ftop, in lbt_set()
671 static int hw_break_get(struct task_struct *target, in hw_break_get() argument
690 ret = ptrace_hbp_get_addr(note_type, target, idx, &addr); in hw_break_get()
694 ret = ptrace_hbp_get_mask(note_type, target, idx, &mask); in hw_break_get()
698 ret = ptrace_hbp_get_ctrl(note_type, target, idx, &ctrl); in hw_break_get()
712 static int hw_break_set(struct task_struct *target, in hw_break_set() argument
737 ret = ptrace_hbp_set_addr(note_type, target, idx, addr); in hw_break_set()
750 ret = ptrace_hbp_set_mask(note_type, target, idx, mask); in hw_break_set()
760 ret = ptrace_hbp_set_ctrl(note_type, target, idx, ctrl); in hw_break_set()
953 static inline int read_user(struct task_struct *target, unsigned long addr, in read_user() argument
960 tmp = task_pt_regs(target)->regs[addr]; in read_user()
963 tmp = task_pt_regs(target)->orig_a0; in read_user()
966 tmp = task_pt_regs(target)->csr_era; in read_user()
969 tmp = task_pt_regs(target)->csr_badvaddr; in read_user()
978 static inline int write_user(struct task_struct *target, unsigned long addr, in write_user() argument
983 task_pt_regs(target)->regs[addr] = data; in write_user()
986 task_pt_regs(target)->orig_a0 = data; in write_user()
989 task_pt_regs(target)->csr_era = data; in write_user()
992 task_pt_regs(target)->csr_badvaddr = data; in write_user()