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.
This commit is contained in:
Simon Marchi 2017-09-15 18:02:51 +02:00
parent 96cde54f0a
commit 124aceb46d
6 changed files with 30 additions and 40 deletions

View file

@ -1,3 +1,14 @@
2017-09-15 Simon Marchi <simon.marchi@ericsson.com>
* 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 <simon.marchi@ericsson.com> 2017-09-15 Simon Marchi <simon.marchi@ericsson.com>
* inferiors.h (gdb_id_to_thread_id): Remove. * inferiors.h (gdb_id_to_thread_id): Remove.

View file

@ -121,12 +121,6 @@ add_thread (ptid_t thread_id, void *target_data)
return new_thread; 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 *. */ /* Wrapper around get_first_inferior to return a struct thread_info *. */
struct thread_info * struct thread_info *

View file

@ -143,8 +143,6 @@ struct process_info *find_process_pid (int pid);
int have_started_inferiors_p (void); int have_started_inferiors_p (void);
int have_attached_inferiors_p (void); int have_attached_inferiors_p (void);
ptid_t thread_to_gdb_id (struct thread_info *);
void clear_inferiors (void); void clear_inferiors (void);
struct inferior_list_entry *find_inferior struct inferior_list_entry *find_inferior
(struct inferior_list *, (struct inferior_list *,

View file

@ -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 the moment we resume its execution for the first time. It is
fine to use the current_thread's ptid in those cases. */ fine to use the current_thread's ptid in those cases. */
if (ptid_equal (ptid, minus_one_ptid)) 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)); 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; ptid_t new_ptid;
if (ptid_equal (ptid, minus_one_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 else
pid = BUILDPID (lynx_ptid_get_pid (ptid), lynx_ptid_get_tid (ptid)); 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) lynx_fetch_registers (struct regcache *regcache, int regno)
{ {
struct lynx_regset_info *regset = lynx_target_regsets; 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); lynx_debug ("lynx_fetch_registers (regno = %d)", regno);
@ -637,7 +637,7 @@ static void
lynx_store_registers (struct regcache *regcache, int regno) lynx_store_registers (struct regcache *regcache, int regno)
{ {
struct lynx_regset_info *regset = lynx_target_regsets; 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); 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; int buf;
const int xfer_size = sizeof (buf); const int xfer_size = sizeof (buf);
CORE_ADDR addr = memaddr & -(CORE_ADDR) xfer_size; 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) while (addr < memaddr + len)
{ {
@ -706,7 +706,7 @@ lynx_write_memory (CORE_ADDR memaddr, const unsigned char *myaddr, int len)
int buf; int buf;
const int xfer_size = sizeof (buf); const int xfer_size = sizeof (buf);
CORE_ADDR addr = memaddr & -(CORE_ADDR) xfer_size; 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) while (addr < memaddr + len)
{ {
@ -742,7 +742,7 @@ lynx_write_memory (CORE_ADDR memaddr, const unsigned char *myaddr, int len)
static void static void
lynx_request_interrupt (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); kill (lynx_ptid_get_pid (inferior_ptid), SIGINT);
} }

View file

@ -620,7 +620,6 @@ nto_fetch_registers (struct regcache *regcache, int regno)
{ {
int regsize; int regsize;
procfs_greg greg; procfs_greg greg;
ptid_t ptid;
TRACE ("%s (regno=%d)\n", __func__, regno); TRACE ("%s (regno=%d)\n", __func__, regno);
if (regno >= the_low_target.num_regs) 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"); TRACE ("current_thread is NULL\n");
return; return;
} }
ptid = thread_to_gdb_id (current_thread); ptid_t ptid = ptid_of (current_thread);
if (!nto_set_thread (ptid)) if (!nto_set_thread (ptid))
return; return;
@ -669,7 +668,6 @@ nto_store_registers (struct regcache *regcache, int regno)
{ {
procfs_greg greg; procfs_greg greg;
int err; int err;
ptid_t ptid;
TRACE ("%s (regno:%d)\n", __func__, regno); 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"); TRACE ("current_thread is NULL\n");
return; return;
} }
ptid = thread_to_gdb_id (current_thread); ptid_t ptid = ptid_of (current_thread);
if (!nto_set_thread (ptid)) if (!nto_set_thread (ptid))
return; return;
@ -867,9 +865,7 @@ nto_stopped_by_watchpoint (void)
TRACE ("%s\n", __func__); TRACE ("%s\n", __func__);
if (nto_inferior.ctl_fd != -1 && current_thread != NULL) if (nto_inferior.ctl_fd != -1 && current_thread != NULL)
{ {
ptid_t ptid; ptid_t ptid = ptid_of (current_thread);
ptid = thread_to_gdb_id (current_thread);
if (nto_set_thread (ptid)) if (nto_set_thread (ptid))
{ {
const int watchmask = _DEBUG_FLAG_TRACE_RD | _DEBUG_FLAG_TRACE_WR const int watchmask = _DEBUG_FLAG_TRACE_RD | _DEBUG_FLAG_TRACE_WR
@ -899,9 +895,7 @@ nto_stopped_data_address (void)
TRACE ("%s\n", __func__); TRACE ("%s\n", __func__);
if (nto_inferior.ctl_fd != -1 && current_thread != NULL) if (nto_inferior.ctl_fd != -1 && current_thread != NULL)
{ {
ptid_t ptid; ptid_t ptid = ptid_of (current_thread);
ptid = thread_to_gdb_id (current_thread);
if (nto_set_thread (ptid)) if (nto_set_thread (ptid))
{ {

View file

@ -1687,7 +1687,7 @@ handle_qxfer_threads_worker (struct inferior_list_entry *inf, void *arg)
{ {
struct thread_info *thread = (struct thread_info *) inf; struct thread_info *thread = (struct thread_info *) inf;
struct buffer *buffer = (struct buffer *) arg; struct buffer *buffer = (struct buffer *) arg;
ptid_t ptid = thread_to_gdb_id (thread); ptid_t ptid = ptid_of (thread);
char ptid_s[100]; char ptid_s[100];
int core = target_core_of_thread (ptid); int core = target_core_of_thread (ptid);
char core_s[21]; 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. */ /* Reply the current thread id. */
if (strcmp ("qC", own_buf) == 0 && !disable_packet_qC) if (strcmp ("qC", own_buf) == 0 && !disable_packet_qC)
{ {
ptid_t gdb_id; ptid_t ptid;
require_running_or_return (own_buf); require_running_or_return (own_buf);
if (!ptid_equal (general_thread, null_ptid) if (general_thread != null_ptid && general_thread != minus_one_ptid)
&& !ptid_equal (general_thread, minus_one_ptid)) ptid = general_thread;
gdb_id = general_thread;
else else
{ {
thread_ptr = get_first_inferior (&all_threads); 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"); sprintf (own_buf, "QC");
own_buf += 2; own_buf += 2;
write_ptid (own_buf, gdb_id); write_ptid (own_buf, ptid);
return; return;
} }
@ -2241,28 +2240,22 @@ handle_query (char *own_buf, int packet_len, int *new_packet_len_p)
{ {
if (strcmp ("qfThreadInfo", own_buf) == 0) if (strcmp ("qfThreadInfo", own_buf) == 0)
{ {
ptid_t gdb_id;
require_running_or_return (own_buf); require_running_or_return (own_buf);
thread_ptr = get_first_inferior (&all_threads); thread_ptr = get_first_inferior (&all_threads);
*own_buf++ = 'm'; *own_buf++ = 'm';
gdb_id = thread_to_gdb_id ((struct thread_info *)thread_ptr); write_ptid (own_buf, thread_ptr->id);
write_ptid (own_buf, gdb_id);
thread_ptr = thread_ptr->next; thread_ptr = thread_ptr->next;
return; return;
} }
if (strcmp ("qsThreadInfo", own_buf) == 0) if (strcmp ("qsThreadInfo", own_buf) == 0)
{ {
ptid_t gdb_id;
require_running_or_return (own_buf); require_running_or_return (own_buf);
if (thread_ptr != NULL) if (thread_ptr != NULL)
{ {
*own_buf++ = 'm'; *own_buf++ = 'm';
gdb_id = thread_to_gdb_id ((struct thread_info *)thread_ptr); write_ptid (own_buf, thread_ptr->id);
write_ptid (own_buf, gdb_id);
thread_ptr = thread_ptr->next; thread_ptr = thread_ptr->next;
return; return;
} }