Refactor clone_all_breakpoints
[deliverable/binutils-gdb.git] / gdb / gdbserver / win32-arm-low.c
index 3913a9693167881c6471c8a15548125827270ac4..05d6cc3c59b7eaac3ed8c8175c5aeecefdd0a5b4 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
 
 /* 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 | \
@@ -36,12 +36,6 @@ arm_get_thread_context (win32_thread_info *th, DEBUG_EVENT* current_event)
   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),
@@ -93,17 +87,26 @@ regptr (CONTEXT* c, int r)
 
 /* 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.  */
@@ -111,15 +114,21 @@ static const unsigned long arm_wince_breakpoint = 0xe6000010;
 #define arm_wince_breakpoint_len 4
 
 struct win32_target_ops the_low_target = {
-  init_registers_arm,
+  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,
+  /* 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 */
 };
This page took 0.045329 seconds and 4 git commands to generate.