You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
698 B
36 lines
698 B
/*
|
|
* 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;
|
|
}
|