aboutsummaryrefslogtreecommitdiff
path: root/gdbserver/linux-xtensa-low.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gdbserver/linux-xtensa-low.cc')
-rw-r--r--gdbserver/linux-xtensa-low.cc162
1 files changed, 81 insertions, 81 deletions
diff --git a/gdbserver/linux-xtensa-low.cc b/gdbserver/linux-xtensa-low.cc
index 9d213db..9ef4911 100644
--- a/gdbserver/linux-xtensa-low.cc
+++ b/gdbserver/linux-xtensa-low.cc
@@ -16,7 +16,6 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
#include "server.h"
#include "linux-low.h"
@@ -25,13 +24,11 @@
class xtensa_target : public linux_process_target
{
public:
-
const regs_info *get_regs_info () override;
const gdb_byte *sw_breakpoint_from_kind (int kind, int *size) override;
protected:
-
void low_arch_setup () override;
bool low_cannot_fetch_register (int regno) override;
@@ -55,14 +52,14 @@ bool
xtensa_target::low_cannot_fetch_register (int regno)
{
gdb_assert_not_reached ("linux target op low_cannot_fetch_register "
- "is not implemented by the target");
+ "is not implemented by the target");
}
bool
xtensa_target::low_cannot_store_register (int regno)
{
gdb_assert_not_reached ("linux target op low_cannot_store_register "
- "is not implemented by the target");
+ "is not implemented by the target");
}
bool
@@ -94,19 +91,24 @@ extern const struct target_desc *tdesc_xtensa;
#include "xtensa-xtregs.c"
-enum regnum {
- R_PC=0, R_PS,
- R_LBEG, R_LEND, R_LCOUNT,
- R_SAR,
- R_WS, R_WB,
- R_THREADPTR,
- R_A0 = 64
+enum regnum
+{
+ R_PC = 0,
+ R_PS,
+ R_LBEG,
+ R_LEND,
+ R_LCOUNT,
+ R_SAR,
+ R_WS,
+ R_WB,
+ R_THREADPTR,
+ R_A0 = 64
};
static void
xtensa_fill_gregset (struct regcache *regcache, void *buf)
{
- elf_greg_t* rset = (elf_greg_t*)buf;
+ elf_greg_t *rset = (elf_greg_t *) buf;
const struct target_desc *tdesc = regcache->tdesc;
int ar0_regnum;
char *ptr;
@@ -115,7 +117,7 @@ xtensa_fill_gregset (struct regcache *regcache, void *buf)
/* Take care of AR registers. */
ar0_regnum = find_regno (tdesc, "ar0");
- ptr = (char*)&rset[R_A0];
+ ptr = (char *) &rset[R_A0];
for (i = ar0_regnum; i < ar0_regnum + XCHAL_NUM_AREGS; i++)
{
@@ -129,38 +131,38 @@ xtensa_fill_gregset (struct regcache *regcache, void *buf)
ptr = (char *) &rset[R_A0 + 4 * rset[R_WB]];
for (i = a0_regnum; i < a0_regnum + C0_NREGS; i++)
- {
- if ((4 * rset[R_WB] + i - a0_regnum) == XCHAL_NUM_AREGS)
- ptr = (char *) &rset[R_A0];
- collect_register (regcache, i, ptr);
- ptr += register_size (tdesc, i);
- }
+ {
+ if ((4 * rset[R_WB] + i - a0_regnum) == XCHAL_NUM_AREGS)
+ ptr = (char *) &rset[R_A0];
+ collect_register (regcache, i, ptr);
+ ptr += register_size (tdesc, i);
+ }
}
- /* Loop registers, if hardware has it. */
+ /* Loop registers, if hardware has it. */
#if XCHAL_HAVE_LOOPS
- collect_register_by_name (regcache, "lbeg", (char*)&rset[R_LBEG]);
- collect_register_by_name (regcache, "lend", (char*)&rset[R_LEND]);
- collect_register_by_name (regcache, "lcount", (char*)&rset[R_LCOUNT]);
+ collect_register_by_name (regcache, "lbeg", (char *) &rset[R_LBEG]);
+ collect_register_by_name (regcache, "lend", (char *) &rset[R_LEND]);
+ collect_register_by_name (regcache, "lcount", (char *) &rset[R_LCOUNT]);
#endif
- collect_register_by_name (regcache, "sar", (char*)&rset[R_SAR]);
- collect_register_by_name (regcache, "pc", (char*)&rset[R_PC]);
- collect_register_by_name (regcache, "ps", (char*)&rset[R_PS]);
- collect_register_by_name (regcache, "windowbase", (char*)&rset[R_WB]);
- collect_register_by_name (regcache, "windowstart", (char*)&rset[R_WS]);
+ collect_register_by_name (regcache, "sar", (char *) &rset[R_SAR]);
+ collect_register_by_name (regcache, "pc", (char *) &rset[R_PC]);
+ collect_register_by_name (regcache, "ps", (char *) &rset[R_PS]);
+ collect_register_by_name (regcache, "windowbase", (char *) &rset[R_WB]);
+ collect_register_by_name (regcache, "windowstart", (char *) &rset[R_WS]);
#if XCHAL_HAVE_THREADPTR
collect_register_by_name (regcache, "threadptr",
- (char *) &rset[R_THREADPTR]);
+ (char *) &rset[R_THREADPTR]);
#endif
}
static void
xtensa_store_gregset (struct regcache *regcache, const void *buf)
{
- const elf_greg_t* rset = (const elf_greg_t*)buf;
+ const elf_greg_t *rset = (const elf_greg_t *) buf;
const struct target_desc *tdesc = regcache->tdesc;
int ar0_regnum;
char *ptr;
@@ -169,7 +171,7 @@ xtensa_store_gregset (struct regcache *regcache, const void *buf)
/* Take care of AR registers. */
ar0_regnum = find_regno (tdesc, "ar0");
- ptr = (char *)&rset[R_A0];
+ ptr = (char *) &rset[R_A0];
for (i = ar0_regnum; i < ar0_regnum + XCHAL_NUM_AREGS; i++)
{
@@ -183,31 +185,30 @@ xtensa_store_gregset (struct regcache *regcache, const void *buf)
ptr = (char *) &rset[R_A0 + (4 * rset[R_WB]) % XCHAL_NUM_AREGS];
for (i = a0_regnum; i < a0_regnum + C0_NREGS; i++)
- {
- if ((4 * rset[R_WB] + i - a0_regnum) == XCHAL_NUM_AREGS)
- ptr = (char *) &rset[R_A0];
- supply_register (regcache, i, ptr);
- ptr += register_size (tdesc, i);
- }
+ {
+ if ((4 * rset[R_WB] + i - a0_regnum) == XCHAL_NUM_AREGS)
+ ptr = (char *) &rset[R_A0];
+ supply_register (regcache, i, ptr);
+ ptr += register_size (tdesc, i);
+ }
}
- /* Loop registers, if hardware has it. */
+ /* Loop registers, if hardware has it. */
#if XCHAL_HAVE_LOOPS
- supply_register_by_name (regcache, "lbeg", (char*)&rset[R_LBEG]);
- supply_register_by_name (regcache, "lend", (char*)&rset[R_LEND]);
- supply_register_by_name (regcache, "lcount", (char*)&rset[R_LCOUNT]);
+ supply_register_by_name (regcache, "lbeg", (char *) &rset[R_LBEG]);
+ supply_register_by_name (regcache, "lend", (char *) &rset[R_LEND]);
+ supply_register_by_name (regcache, "lcount", (char *) &rset[R_LCOUNT]);
#endif
- supply_register_by_name (regcache, "sar", (char*)&rset[R_SAR]);
- supply_register_by_name (regcache, "pc", (char*)&rset[R_PC]);
- supply_register_by_name (regcache, "ps", (char*)&rset[R_PS]);
- supply_register_by_name (regcache, "windowbase", (char*)&rset[R_WB]);
- supply_register_by_name (regcache, "windowstart", (char*)&rset[R_WS]);
+ supply_register_by_name (regcache, "sar", (char *) &rset[R_SAR]);
+ supply_register_by_name (regcache, "pc", (char *) &rset[R_PC]);
+ supply_register_by_name (regcache, "ps", (char *) &rset[R_PS]);
+ supply_register_by_name (regcache, "windowbase", (char *) &rset[R_WB]);
+ supply_register_by_name (regcache, "windowstart", (char *) &rset[R_WS]);
#if XCHAL_HAVE_THREADPTR
- supply_register_by_name (regcache, "threadptr",
- (char *) &rset[R_THREADPTR]);
+ supply_register_by_name (regcache, "threadptr", (char *) &rset[R_THREADPTR]);
#endif
}
@@ -221,7 +222,7 @@ xtensa_fill_xtregset (struct regcache *regcache, void *buf)
for (ptr = xtensa_regmap_table; ptr->name; ptr++)
{
collect_register_by_name (regcache, ptr->name,
- (char*)buf + ptr->ptrace_offset);
+ (char *) buf + ptr->ptrace_offset);
}
}
@@ -233,24 +234,27 @@ xtensa_store_xtregset (struct regcache *regcache, const void *buf)
for (ptr = xtensa_regmap_table; ptr->name; ptr++)
{
supply_register_by_name (regcache, ptr->name,
- (char*)buf + ptr->ptrace_offset);
+ (char *) buf + ptr->ptrace_offset);
}
}
-static struct regset_info xtensa_regsets[] = {
- { PTRACE_GETREGS, PTRACE_SETREGS, 0, sizeof (elf_gregset_t),
- GENERAL_REGS,
- xtensa_fill_gregset, xtensa_store_gregset },
- { PTRACE_GETXTREGS, PTRACE_SETXTREGS, 0, XTENSA_ELF_XTREG_SIZE,
- EXTENDED_REGS,
- xtensa_fill_xtregset, xtensa_store_xtregset },
- NULL_REGSET
-};
+static struct regset_info xtensa_regsets[]
+ = { { PTRACE_GETREGS, PTRACE_SETREGS, 0, sizeof (elf_gregset_t),
+ GENERAL_REGS, xtensa_fill_gregset, xtensa_store_gregset },
+ { PTRACE_GETXTREGS, PTRACE_SETXTREGS, 0, XTENSA_ELF_XTREG_SIZE,
+ EXTENDED_REGS, xtensa_fill_xtregset, xtensa_store_xtregset },
+ NULL_REGSET };
#if XCHAL_HAVE_BE
-#define XTENSA_BREAKPOINT {0xd2,0x0f}
+#define XTENSA_BREAKPOINT \
+ { \
+ 0xd2, 0x0f \
+ }
#else
-#define XTENSA_BREAKPOINT {0x2d,0xf0}
+#define XTENSA_BREAKPOINT \
+ { \
+ 0x2d, 0xf0 \
+ }
#endif
static const gdb_byte xtensa_breakpoint[] = XTENSA_BREAKPOINT;
@@ -268,18 +272,18 @@ xtensa_target::sw_breakpoint_from_kind (int kind, int *size)
bool
xtensa_target::low_breakpoint_at (CORE_ADDR where)
{
- unsigned long insn;
+ unsigned long insn;
- read_memory (where, (unsigned char *) &insn, xtensa_breakpoint_len);
- return memcmp((char *) &insn,
- xtensa_breakpoint, xtensa_breakpoint_len) == 0;
+ read_memory (where, (unsigned char *) &insn, xtensa_breakpoint_len);
+ return memcmp ((char *) &insn, xtensa_breakpoint, xtensa_breakpoint_len)
+ == 0;
}
/* Called by libthread_db. */
ps_err_e
-ps_get_thread_area (struct ps_prochandle *ph,
- lwpid_t lwpid, int idx, void **base)
+ps_get_thread_area (struct ps_prochandle *ph, lwpid_t lwpid, int idx,
+ void **base)
{
xtensa_elf_gregset_t regs;
@@ -294,19 +298,15 @@ ps_get_thread_area (struct ps_prochandle *ph,
return PS_OK;
}
-static struct regsets_info xtensa_regsets_info =
- {
- xtensa_regsets, /* regsets */
- 0, /* num_regsets */
- NULL, /* disabled_regsets */
- };
-
-static struct regs_info myregs_info =
- {
- NULL, /* regset_bitmap */
- NULL, /* usrregs */
- &xtensa_regsets_info
- };
+static struct regsets_info xtensa_regsets_info = {
+ xtensa_regsets, /* regsets */
+ 0, /* num_regsets */
+ NULL, /* disabled_regsets */
+};
+
+static struct regs_info myregs_info = { NULL, /* regset_bitmap */
+ NULL, /* usrregs */
+ &xtensa_regsets_info };
void
xtensa_target::low_arch_setup ()