From 124aceb46dfd1f836f35d6075ead4e00e705f6f3 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Fri, 15 Sep 2017 18:02:51 +0200 Subject: [PATCH] gdbserver: Remove thread_to_gdb_id As explained in the previous patch, the gdb_id concept is no longer relevant. The function thread_to_gdb_id is trivial, it returns the thread's ptid. Remove it and replace its usage with ptid_of. The changes in nto-low.c and lynx-low.c are fairly straightforward, but I was not able to build test them. gdb/gdbserver/ChangeLog: * inferiors.h (thread_to_gdb_id): Remove. * inferiors.c (thread_to_gdb_id): Remove. * server.c (handle_qxfer_threads_worker, handle_query): Adjust. * lynx-low.c (lynx_resume, lynx_wait_1, lynx_fetch_registers, lynx_store_registers, lynx_read_memory, lynx_write_memory): Likewise. * nto-low.c (nto_fetch_registers, nto_store_registers, nto_stopped_by_watchpoint, nto_stopped_data_address): Likewise. --- gdb/gdbserver/ChangeLog | 11 +++++++++++ gdb/gdbserver/inferiors.c | 6 ------ gdb/gdbserver/inferiors.h | 2 -- gdb/gdbserver/lynx-low.c | 14 +++++++------- gdb/gdbserver/nto-low.c | 14 ++++---------- gdb/gdbserver/server.c | 23 ++++++++--------------- 6 files changed, 30 insertions(+), 40 deletions(-) diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index eaf8e6e7748..4cfa2acee8c 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,14 @@ +2017-09-15 Simon Marchi + + * inferiors.h (thread_to_gdb_id): Remove. + * inferiors.c (thread_to_gdb_id): Remove. + * server.c (handle_qxfer_threads_worker, handle_query): Adjust. + * lynx-low.c (lynx_resume, lynx_wait_1, lynx_fetch_registers, + lynx_store_registers, lynx_read_memory, lynx_write_memory): + Likewise. + * nto-low.c (nto_fetch_registers, nto_store_registers, + nto_stopped_by_watchpoint, nto_stopped_data_address): Likewise. + 2017-09-15 Simon Marchi * inferiors.h (gdb_id_to_thread_id): Remove. diff --git a/gdb/gdbserver/inferiors.c b/gdb/gdbserver/inferiors.c index 933dd761ac3..72f04127573 100644 --- a/gdb/gdbserver/inferiors.c +++ b/gdb/gdbserver/inferiors.c @@ -121,12 +121,6 @@ add_thread (ptid_t thread_id, void *target_data) return new_thread; } -ptid_t -thread_to_gdb_id (struct thread_info *thread) -{ - return thread->entry.id; -} - /* Wrapper around get_first_inferior to return a struct thread_info *. */ struct thread_info * diff --git a/gdb/gdbserver/inferiors.h b/gdb/gdbserver/inferiors.h index 6316fe503e5..aef8433980a 100644 --- a/gdb/gdbserver/inferiors.h +++ b/gdb/gdbserver/inferiors.h @@ -143,8 +143,6 @@ struct process_info *find_process_pid (int pid); int have_started_inferiors_p (void); int have_attached_inferiors_p (void); -ptid_t thread_to_gdb_id (struct thread_info *); - void clear_inferiors (void); struct inferior_list_entry *find_inferior (struct inferior_list *, diff --git a/gdb/gdbserver/lynx-low.c b/gdb/gdbserver/lynx-low.c index 77f570e8518..f074dd50b38 100644 --- a/gdb/gdbserver/lynx-low.c +++ b/gdb/gdbserver/lynx-low.c @@ -350,7 +350,7 @@ lynx_resume (struct thread_resume *resume_info, size_t n) the moment we resume its execution for the first time. It is fine to use the current_thread's ptid in those cases. */ if (ptid_equal (ptid, minus_one_ptid)) - ptid = thread_to_gdb_id (current_thread); + ptid = ptid_of (current_thread); regcache_invalidate_pid (ptid_get_pid (ptid)); @@ -423,7 +423,7 @@ lynx_wait_1 (ptid_t ptid, struct target_waitstatus *status, int options) ptid_t new_ptid; if (ptid_equal (ptid, minus_one_ptid)) - pid = lynx_ptid_get_pid (thread_to_gdb_id (current_thread)); + pid = lynx_ptid_get_pid (ptid_of (current_thread)); else pid = BUILDPID (lynx_ptid_get_pid (ptid), lynx_ptid_get_tid (ptid)); @@ -612,7 +612,7 @@ static void lynx_fetch_registers (struct regcache *regcache, int regno) { struct lynx_regset_info *regset = lynx_target_regsets; - ptid_t inferior_ptid = thread_to_gdb_id (current_thread); + ptid_t inferior_ptid = ptid_of (current_thread); lynx_debug ("lynx_fetch_registers (regno = %d)", regno); @@ -637,7 +637,7 @@ static void lynx_store_registers (struct regcache *regcache, int regno) { struct lynx_regset_info *regset = lynx_target_regsets; - ptid_t inferior_ptid = thread_to_gdb_id (current_thread); + ptid_t inferior_ptid = ptid_of (current_thread); lynx_debug ("lynx_store_registers (regno = %d)", regno); @@ -673,7 +673,7 @@ lynx_read_memory (CORE_ADDR memaddr, unsigned char *myaddr, int len) int buf; const int xfer_size = sizeof (buf); CORE_ADDR addr = memaddr & -(CORE_ADDR) xfer_size; - ptid_t inferior_ptid = thread_to_gdb_id (current_thread); + ptid_t inferior_ptid = ptid_of (current_thread); while (addr < memaddr + len) { @@ -706,7 +706,7 @@ lynx_write_memory (CORE_ADDR memaddr, const unsigned char *myaddr, int len) int buf; const int xfer_size = sizeof (buf); CORE_ADDR addr = memaddr & -(CORE_ADDR) xfer_size; - ptid_t inferior_ptid = thread_to_gdb_id (current_thread); + ptid_t inferior_ptid = ptid_of (current_thread); while (addr < memaddr + len) { @@ -742,7 +742,7 @@ lynx_write_memory (CORE_ADDR memaddr, const unsigned char *myaddr, int len) static void lynx_request_interrupt (void) { - ptid_t inferior_ptid = thread_to_gdb_id (get_first_thread ()); + ptid_t inferior_ptid = ptid_of (get_first_thread ()); kill (lynx_ptid_get_pid (inferior_ptid), SIGINT); } diff --git a/gdb/gdbserver/nto-low.c b/gdb/gdbserver/nto-low.c index a5f15435cf6..a8c981ac5ed 100644 --- a/gdb/gdbserver/nto-low.c +++ b/gdb/gdbserver/nto-low.c @@ -620,7 +620,6 @@ nto_fetch_registers (struct regcache *regcache, int regno) { int regsize; procfs_greg greg; - ptid_t ptid; TRACE ("%s (regno=%d)\n", __func__, regno); if (regno >= the_low_target.num_regs) @@ -631,7 +630,7 @@ nto_fetch_registers (struct regcache *regcache, int regno) TRACE ("current_thread is NULL\n"); return; } - ptid = thread_to_gdb_id (current_thread); + ptid_t ptid = ptid_of (current_thread); if (!nto_set_thread (ptid)) return; @@ -669,7 +668,6 @@ nto_store_registers (struct regcache *regcache, int regno) { procfs_greg greg; int err; - ptid_t ptid; TRACE ("%s (regno:%d)\n", __func__, regno); @@ -678,7 +676,7 @@ nto_store_registers (struct regcache *regcache, int regno) TRACE ("current_thread is NULL\n"); return; } - ptid = thread_to_gdb_id (current_thread); + ptid_t ptid = ptid_of (current_thread); if (!nto_set_thread (ptid)) return; @@ -867,9 +865,7 @@ nto_stopped_by_watchpoint (void) TRACE ("%s\n", __func__); if (nto_inferior.ctl_fd != -1 && current_thread != NULL) { - ptid_t ptid; - - ptid = thread_to_gdb_id (current_thread); + ptid_t ptid = ptid_of (current_thread); if (nto_set_thread (ptid)) { const int watchmask = _DEBUG_FLAG_TRACE_RD | _DEBUG_FLAG_TRACE_WR @@ -899,9 +895,7 @@ nto_stopped_data_address (void) TRACE ("%s\n", __func__); if (nto_inferior.ctl_fd != -1 && current_thread != NULL) { - ptid_t ptid; - - ptid = thread_to_gdb_id (current_thread); + ptid_t ptid = ptid_of (current_thread); if (nto_set_thread (ptid)) { diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c index 32c9bab3272..6593d6bfa10 100644 --- a/gdb/gdbserver/server.c +++ b/gdb/gdbserver/server.c @@ -1687,7 +1687,7 @@ handle_qxfer_threads_worker (struct inferior_list_entry *inf, void *arg) { struct thread_info *thread = (struct thread_info *) inf; struct buffer *buffer = (struct buffer *) arg; - ptid_t ptid = thread_to_gdb_id (thread); + ptid_t ptid = ptid_of (thread); char ptid_s[100]; int core = target_core_of_thread (ptid); char core_s[21]; @@ -2171,21 +2171,20 @@ handle_query (char *own_buf, int packet_len, int *new_packet_len_p) /* Reply the current thread id. */ if (strcmp ("qC", own_buf) == 0 && !disable_packet_qC) { - ptid_t gdb_id; + ptid_t ptid; require_running_or_return (own_buf); - if (!ptid_equal (general_thread, null_ptid) - && !ptid_equal (general_thread, minus_one_ptid)) - gdb_id = general_thread; + if (general_thread != null_ptid && general_thread != minus_one_ptid) + ptid = general_thread; else { thread_ptr = get_first_inferior (&all_threads); - gdb_id = thread_to_gdb_id ((struct thread_info *)thread_ptr); + ptid = thread_ptr->id; } sprintf (own_buf, "QC"); own_buf += 2; - write_ptid (own_buf, gdb_id); + write_ptid (own_buf, ptid); return; } @@ -2241,28 +2240,22 @@ handle_query (char *own_buf, int packet_len, int *new_packet_len_p) { if (strcmp ("qfThreadInfo", own_buf) == 0) { - ptid_t gdb_id; - require_running_or_return (own_buf); thread_ptr = get_first_inferior (&all_threads); *own_buf++ = 'm'; - gdb_id = thread_to_gdb_id ((struct thread_info *)thread_ptr); - write_ptid (own_buf, gdb_id); + write_ptid (own_buf, thread_ptr->id); thread_ptr = thread_ptr->next; return; } if (strcmp ("qsThreadInfo", own_buf) == 0) { - ptid_t gdb_id; - require_running_or_return (own_buf); if (thread_ptr != NULL) { *own_buf++ = 'm'; - gdb_id = thread_to_gdb_id ((struct thread_info *)thread_ptr); - write_ptid (own_buf, gdb_id); + write_ptid (own_buf, thread_ptr->id); thread_ptr = thread_ptr->next; return; } -- 2.30.2