Files
rk35xx-android14/external/strace/linux/powerpc/getregs_old.c
T
hmz007 36ed224bac Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a)
Signed-off-by: hmz007 <hmz007@gmail.com>
Change-Id: Ib87fdbe7a0be7dc961af3500fe9ea4589a127f9f
2024-10-29 18:12:02 +08:00

36 lines
698 B
C

/*
* PTRACE_GETREGS was added to the PowerPC kernel in v2.6.23,
* we provide a slow fallback for old kernels.
*/
static int
getregs_old(struct tcb *tcp)
{
int i;
long r;
if (iflag) {
r = upeek(tcp, sizeof(long) * PT_NIP, &ppc_regs.nip);
if (r)
goto out;
}
#ifdef POWERPC64 /* else we never use it */
r = upeek(tcp, sizeof(long) * PT_MSR, &ppc_regs.msr);
if (r)
goto out;
#endif
r = upeek(tcp, sizeof(long) * PT_CCR, &ppc_regs.ccr);
if (r)
goto out;
r = upeek(tcp, sizeof(long) * PT_ORIG_R3, &ppc_regs.orig_gpr3);
if (r)
goto out;
for (i = 0; i <= 8; i++) {
r = upeek(tcp, sizeof(long) * (PT_R0 + i),
&ppc_regs.gpr[i]);
if (r)
goto out;
}
out:
return r;
}