aboutsummaryrefslogtreecommitdiff
path: root/gdb/remote.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2013-08-14 18:16:30 +0000
committerTom Tromey <tromey@redhat.com>2013-08-14 18:16:30 +0000
commit88b496c367b7abc6edb286ff4e19807f1c84af00 (patch)
treec8728447c33753b4074192670ea6634754c55764 /gdb/remote.c
parent2f65bcb75d05d93af037229e084160fe25259322 (diff)
downloadgdb-88b496c367b7abc6edb286ff4e19807f1c84af00.zip
gdb-88b496c367b7abc6edb286ff4e19807f1c84af00.tar.gz
gdb-88b496c367b7abc6edb286ff4e19807f1c84af00.tar.bz2
move async_client_callback and async_client_context into remote_state
This moves async_client_callback and async_client_context into remote_state. * remote.c (struct remote_state) <async_client_callback, async_client_context>: New fields. (async_client_callback, async_client_context): Remove. (remote_async_serial_handler, remote_async): Update.
Diffstat (limited to 'gdb/remote.c')
-rw-r--r--gdb/remote.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/gdb/remote.c b/gdb/remote.c
index 0fa5fcd..469d8a4 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -401,6 +401,10 @@ struct remote_state
and set to false when the target fails to recognize it). */
int use_threadinfo_query;
int use_threadextra_query;
+
+ void (*async_client_callback) (enum inferior_event_type event_type,
+ void *context);
+ void *async_client_context;
};
/* Private data that we'll store in (struct thread_info)->private. */
@@ -11635,17 +11639,16 @@ remote_is_async_p (void)
will be able to delay notifying the client of an event until the
point where an entire packet has been received. */
-static void (*async_client_callback) (enum inferior_event_type event_type,
- void *context);
-static void *async_client_context;
static serial_event_ftype remote_async_serial_handler;
static void
remote_async_serial_handler (struct serial *scb, void *context)
{
+ struct remote_state *rs = context;
+
/* Don't propogate error information up to the client. Instead let
the client find out about the error by querying the target. */
- async_client_callback (INF_REG_EVENT, async_client_context);
+ rs->async_client_callback (INF_REG_EVENT, rs->async_client_context);
}
static void
@@ -11662,9 +11665,9 @@ remote_async (void (*callback) (enum inferior_event_type event_type,
if (callback != NULL)
{
- serial_async (rs->remote_desc, remote_async_serial_handler, NULL);
- async_client_callback = callback;
- async_client_context = context;
+ serial_async (rs->remote_desc, remote_async_serial_handler, rs);
+ rs->async_client_callback = callback;
+ rs->async_client_context = context;
}
else
serial_async (rs->remote_desc, NULL, NULL);