From: kevinb Date: Thu, 23 Jan 2003 06:40:07 +0000 (+0000) Subject: * linux-target.c (struct peekuser_pokeuser_reginfo) X-Git-Tag: cr-0x99~3761 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=7ed3780d77c3c553ed379d04a4c671203f61c438;p=pf3gnuchains%2Fpf3gnuchains4x.git * linux-target.c (struct peekuser_pokeuser_reginfo) [MIPS64_LINUX_TARGET, MIPS_LINUX_TARGET]: Disable registers ``cause'' and ``bad'' since they are not writable via ptrace(). --- diff --git a/rda/unix/ChangeLog b/rda/unix/ChangeLog index 942e47e400..64fdbb3cb2 100644 --- a/rda/unix/ChangeLog +++ b/rda/unix/ChangeLog @@ -1,3 +1,14 @@ +2003-01-22 Kevin Buettner + + * linux-target.c (struct peekuser_pokeuser_reginfo) + [MIPS64_LINUX_TARGET, MIPS_LINUX_TARGET]: Disable registers ``cause'' + and ``bad'' since they are not writable via ptrace(). + +2003-01-19 Alexandre Oliva + + * linux-target.c: Don't assume asm-mips/ is available, use just + asm instead. + 2003-01-17 Kevin Buettner * configure.in (mips64*linux*n64, mips64*linux*n32, mips64*linux*o32): diff --git a/rda/unix/linux-target.c b/rda/unix/linux-target.c index cf60b0c81f..a94508f1de 100644 --- a/rda/unix/linux-target.c +++ b/rda/unix/linux-target.c @@ -30,7 +30,7 @@ #if !defined(_MIPSEL) && !defined(_MIPSEB) #include #else -#include +#include #endif #include @@ -473,8 +473,14 @@ static struct peekuser_pokeuser_reginfo reginfo[] = asm-mips/reg.h. Note, however, that the kernel header sandwiches the status register (sr, above) in between ``bad'' and ``cause''. */ +#if 0 + /* CAUSE and BADVADDR are readable via ptrace, but they're not writable. */ { BADVADDR, 4, GREGS, 35 * 4, 4, PROTO_SIZE }, /* bad */ { CAUSE, 4, GREGS, 36 * 4, 4, PROTO_SIZE }, /* cause */ +#else + { 0, 8, NOREGS, 0, 8, 8 }, /* bad */ + { 0, 8, NOREGS, 0, 8, 8 }, /* cause */ +#endif { PC, 4, GREGS, 34 * 4, 4, PROTO_SIZE }, /* pc */ /* Linux/MIPS floating point is a bit of a mess. On the one hand, @@ -587,8 +593,14 @@ static struct peekuser_pokeuser_reginfo reginfo[] = asm-mips/reg.h. Note, however, that the kernel header sandwiches the status register (sr, above) in between ``bad'' and ``cause''. */ +#if 0 + /* CAUSE and BADVADDR are readable via ptrace, but they're not writable. */ { 66, 8, GREGS, 35 * 4, 8, 8 }, /* bad */ { 65, 8, GREGS, 36 * 4, 8, 8 }, /* cause */ +#else + { 0, 8, NOREGS, 0, 8, 8 }, /* bad */ + { 0, 8, NOREGS, 0, 8, 8 }, /* cause */ +#endif { 64, 8, GREGS, 34 * 4, 8, 8 }, /* pc */ /* Linux/MIPS floating point is a bit of a mess. On the one hand,