-/* Copyright (C) 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2015 Free Software Foundation, Inc.
This file is part of GDB.
#define CONTEXT_FLOATING_POINT 0
#endif
+/* Defined in auto-generated file reg-arm.c. */
+void init_registers_arm (void);
+extern const struct target_desc *tdesc_arm;
+
static void
-arm_get_thread_context (win32_thread_info *th, DEBUG_EVENT* current_event)
+arm_get_thread_context (win32_thread_info *th)
{
th->context.ContextFlags = \
CONTEXT_FULL | \
GetThreadContext (th->h, &th->context);
}
-static void
-arm_set_thread_context (win32_thread_info *th, DEBUG_EVENT* current_event)
-{
- SetThreadContext (th->h, &th->context);
-}
-
#define context_offset(x) ((int)&(((CONTEXT *)NULL)->x))
static const int mappings[] = {
context_offset (R0),
/* Fetch register from gdbserver regcache data. */
static void
-arm_fetch_inferior_register (win32_thread_info *th, int r)
+arm_fetch_inferior_register (struct regcache *regcache,
+ win32_thread_info *th, int r)
{
char *context_offset = regptr (&th->context, r);
- supply_register (r, context_offset);
+ supply_register (regcache, r, context_offset);
}
/* Store a new register value into the thread context of TH. */
static void
-arm_store_inferior_register (win32_thread_info *th, int r)
+arm_store_inferior_register (struct regcache *regcache,
+ win32_thread_info *th, int r)
+{
+ collect_register (regcache, r, regptr (&th->context, r));
+}
+
+static void
+arm_arch_setup (void)
{
- collect_register (r, regptr (&th->context, r));
+ init_registers_arm ();
+ win32_tdesc = tdesc_arm;
}
/* Correct in either endianness. We do not support Thumb yet. */
#define arm_wince_breakpoint_len 4
struct win32_target_ops the_low_target = {
+ arm_arch_setup,
sizeof (mappings) / sizeof (mappings[0]),
NULL, /* initial_stuff */
arm_get_thread_context,
- arm_set_thread_context,
+ NULL, /* prepare_to_resume */
NULL, /* thread_added */
arm_fetch_inferior_register,
arm_store_inferior_register,
NULL, /* single_step */
(const unsigned char *) &arm_wince_breakpoint,
arm_wince_breakpoint_len,
- "arm" /* arch_string */
+ /* Watchpoint related functions. See target.h for comments. */
+ NULL, /* supports_z_point_type */
+ NULL, /* insert_point */
+ NULL, /* remove_point */
+ NULL, /* stopped_by_watchpoint */
+ NULL /* stopped_data_address */
};