Lines Matching +full:data +full:- +full:addr
14 * At this time Linux/MIPS64 only supports syscall tracing, even for 32-bit
40 * Tracing a 32-bit process with a 64-bit strace and vice versa will not
46 int addr = caddr; in compat_arch_ptrace() local
47 int data = cdata; in compat_arch_ptrace() local
54 * data is a pointer specifying where the user wants the in compat_arch_ptrace()
56 * addr is a pointer in the user's storage that contains an 8 byte in compat_arch_ptrace()
58 * (this is run in a 32-bit process looking at a 64-bit process) in compat_arch_ptrace()
67 ret = -EIO; in compat_arch_ptrace()
69 /* Get the addr in the other process that we want to read */ in compat_arch_ptrace()
70 if (get_user(addrOthers, (u32 __user * __user *) (unsigned long) addr) != 0) in compat_arch_ptrace()
77 ret = put_user(tmp, (u32 __user *) (unsigned long) data); in compat_arch_ptrace()
81 /* Read the word at location addr in the USER area. */ in compat_arch_ptrace()
89 switch (addr) { in compat_arch_ptrace()
91 tmp = regs->regs[addr]; in compat_arch_ptrace()
99 tmp = -1; in compat_arch_ptrace()
109 tmp = get_fpr32(&fregs[(addr & ~1) - FPR_BASE], in compat_arch_ptrace()
110 addr & 1); in compat_arch_ptrace()
113 tmp = get_fpr64(&fregs[addr - FPR_BASE], 0); in compat_arch_ptrace()
117 tmp = child->thread.fpu.fcr31; in compat_arch_ptrace()
125 tmp = regs->cp0_epc; in compat_arch_ptrace()
128 tmp = regs->cp0_cause; in compat_arch_ptrace()
131 tmp = regs->cp0_badvaddr; in compat_arch_ptrace()
134 tmp = regs->hi; in compat_arch_ptrace()
137 tmp = regs->lo; in compat_arch_ptrace()
144 ret = -EIO; in compat_arch_ptrace()
148 tmp = dregs[addr - DSP_BASE]; in compat_arch_ptrace()
154 ret = -EIO; in compat_arch_ptrace()
157 tmp = child->thread.dsp.dspcontrol; in compat_arch_ptrace()
161 ret = -EIO; in compat_arch_ptrace()
164 ret = put_user(tmp, (unsigned __user *) (unsigned long) data); in compat_arch_ptrace()
170 * data is the 4 bytes that the user wants written in compat_arch_ptrace()
171 * addr is a pointer in the user's storage that contains an in compat_arch_ptrace()
174 * (this is run in a 32-bit process looking at a 64-bit process) in compat_arch_ptrace()
181 /* Get the addr in the other process that we want to write into */ in compat_arch_ptrace()
182 ret = -EIO; in compat_arch_ptrace()
183 if (get_user(addrOthers, (u32 __user * __user *) (unsigned long) addr) != 0) in compat_arch_ptrace()
186 if (ptrace_access_vm(child, (u64)addrOthers, &data, in compat_arch_ptrace()
187 sizeof(data), in compat_arch_ptrace()
188 FOLL_FORCE | FOLL_WRITE) == sizeof(data)) in compat_arch_ptrace()
190 ret = -EIO; in compat_arch_ptrace()
199 switch (addr) { in compat_arch_ptrace()
201 regs->regs[addr] = data; in compat_arch_ptrace()
203 if (addr == 2) in compat_arch_ptrace()
205 else if (addr == 4 && in compat_arch_ptrace()
215 memset(&child->thread.fpu, ~0, in compat_arch_ptrace()
216 sizeof(child->thread.fpu)); in compat_arch_ptrace()
217 child->thread.fpu.fcr31 = 0; in compat_arch_ptrace()
225 set_fpr32(&fregs[(addr & ~1) - FPR_BASE], in compat_arch_ptrace()
226 addr & 1, data); in compat_arch_ptrace()
229 set_fpr64(&fregs[addr - FPR_BASE], 0, data); in compat_arch_ptrace()
233 child->thread.fpu.fcr31 = data; in compat_arch_ptrace()
237 regs->cp0_epc = data; in compat_arch_ptrace()
240 regs->hi = data; in compat_arch_ptrace()
243 regs->lo = data; in compat_arch_ptrace()
249 ret = -EIO; in compat_arch_ptrace()
254 dregs[addr - DSP_BASE] = data; in compat_arch_ptrace()
259 ret = -EIO; in compat_arch_ptrace()
262 child->thread.dsp.dspcontrol = data; in compat_arch_ptrace()
266 ret = -EIO; in compat_arch_ptrace()
274 (struct user_pt_regs __user *) (__u64) data); in compat_arch_ptrace()
279 (struct user_pt_regs __user *) (__u64) data); in compat_arch_ptrace()
284 ret = ptrace_getfpregs(child, (__u32 __user *) (__u64) data); in compat_arch_ptrace()
288 ret = ptrace_setfpregs(child, (__u32 __user *) (__u64) data); in compat_arch_ptrace()
292 ret = put_user(task_thread_info(child)->tp_value, in compat_arch_ptrace()
293 (unsigned int __user *) (unsigned long) data); in compat_arch_ptrace()
297 ret = put_user(task_thread_info(child)->tp_value, in compat_arch_ptrace()
298 (unsigned long __user *) (unsigned long) data); in compat_arch_ptrace()
303 (struct pt_watch_regs __user *) (unsigned long) addr); in compat_arch_ptrace()
308 (struct pt_watch_regs __user *) (unsigned long) addr); in compat_arch_ptrace()
312 ret = compat_ptrace_request(child, request, addr, data); in compat_arch_ptrace()