move remote_stopped_by_watchpoint_p and remote_watch_data_address into remote_state
authorTom Tromey <tromey@redhat.com>
Wed, 14 Aug 2013 18:17:13 +0000 (18:17 +0000)
committerTom Tromey <tromey@redhat.com>
Wed, 14 Aug 2013 18:17:13 +0000 (18:17 +0000)
This moves the globals remote_stopped_by_watchpoint_p and
remote_watch_data_address into remote_state.

* remote.c (struct remote_state) <remote_stopped_by_watchpoint_p,
remote_watch_data_address>: New fields.
(remote_stopped_by_watchpoint_p, remote_watch_data_address): Remove.
(process_stop_reply, remote_wait_as)
(remote_check_watch_resources, remote_stopped_data_address): Update.

gdb/ChangeLog
gdb/remote.c

index 522d86c..f81f9be 100644 (file)
@@ -1,5 +1,13 @@
 2013-08-14  Tom Tromey  <tromey@redhat.com>
 
+       * remote.c (struct remote_state) <remote_stopped_by_watchpoint_p,
+       remote_watch_data_address>: New fields.
+       (remote_stopped_by_watchpoint_p, remote_watch_data_address): Remove.
+       (process_stop_reply, remote_wait_as)
+       (remote_check_watch_resources, remote_stopped_data_address): Update.
+
+2013-08-14  Tom Tromey  <tromey@redhat.com>
+
        * remote.c (struct remote_state) <async_client_callback,
        async_client_context>: New fields.
        (async_client_callback, async_client_context): Remove.
index 469d8a4..28223c0 100644 (file)
@@ -405,6 +405,13 @@ struct remote_state
   void (*async_client_callback) (enum inferior_event_type event_type,
                                 void *context);
   void *async_client_context;
+
+  /* This is set to the data address of the access causing the target
+     to stop for a watchpoint.  */
+  CORE_ADDR remote_watch_data_address;
+
+  /* This is non-zero if target stopped for a watchpoint.  */
+  int remote_stopped_by_watchpoint_p;
 };
 
 /* Private data that we'll store in (struct thread_info)->private.  */
@@ -789,17 +796,6 @@ packet_reg_from_pnum (struct remote_arch_state *rsa, LONGEST pnum)
   return NULL;
 }
 
-/* FIXME: graces/2002-08-08: These variables should eventually be
-   bound to an instance of the target object (as in gdbarch-tdep()),
-   when such a thing exists.  */
-
-/* This is set to the data address of the access causing the target
-   to stop for a watchpoint.  */
-static CORE_ADDR remote_watch_data_address;
-
-/* This is non-zero if target stopped for a watchpoint.  */
-static int remote_stopped_by_watchpoint_p;
-
 static struct target_ops remote_ops;
 
 static struct target_ops extended_remote_ops;
@@ -5843,6 +5839,8 @@ process_stop_reply (struct stop_reply *stop_reply,
   if (status->kind != TARGET_WAITKIND_EXITED
       && status->kind != TARGET_WAITKIND_SIGNALLED)
     {
+      struct remote_state *rs = get_remote_state ();
+
       /* Expedited registers.  */
       if (stop_reply->regcache)
        {
@@ -5858,8 +5856,8 @@ process_stop_reply (struct stop_reply *stop_reply,
          VEC_free (cached_reg_t, stop_reply->regcache);
        }
 
-      remote_stopped_by_watchpoint_p = stop_reply->stopped_by_watchpoint_p;
-      remote_watch_data_address = stop_reply->watch_data_address;
+      rs->remote_stopped_by_watchpoint_p = stop_reply->stopped_by_watchpoint_p;
+      rs->remote_watch_data_address = stop_reply->watch_data_address;
 
       remote_notice_new_inferior (ptid, 0);
       demand_private_info (ptid)->core = stop_reply->core;
@@ -5985,7 +5983,7 @@ remote_wait_as (ptid_t ptid, struct target_waitstatus *status, int options)
 
   buf = rs->buf;
 
-  remote_stopped_by_watchpoint_p = 0;
+  rs->remote_stopped_by_watchpoint_p = 0;
 
   /* We got something.  */
   rs->waiting_for_stop_reply = 0;
@@ -8426,17 +8424,20 @@ remote_check_watch_resources (int type, int cnt, int ot)
 static int
 remote_stopped_by_watchpoint (void)
 {
-  return remote_stopped_by_watchpoint_p;
+  struct remote_state *rs = get_remote_state ();
+
+  return rs->remote_stopped_by_watchpoint_p;
 }
 
 static int
 remote_stopped_data_address (struct target_ops *target, CORE_ADDR *addr_p)
 {
+  struct remote_state *rs = get_remote_state ();
   int rc = 0;
 
   if (remote_stopped_by_watchpoint ())
     {
-      *addr_p = remote_watch_data_address;
+      *addr_p = rs->remote_watch_data_address;
       rc = 1;
     }