Remove usage of find_inferior in win32-i386-low.c

Straightforward replacement of find_inferior with the overload of
for_each_thread that filters on pid.  I am able to build-test this
patch, but not run it.

gdb/gdbserver/ChangeLog:

	* win32-i386-low.c (update_debug_registers_callback): Rename
	to ...
	(update_debug_registers): ... this, return void, remove pid_p arg.
	(x86_dr_low_set_addr, x86_dr_low_set_control): Use for_each_thread.
This commit is contained in:
Simon Marchi 2017-11-19 22:23:20 -05:00 committed by Simon Marchi
parent 9c512d88c3
commit 0b360f1926
2 changed files with 16 additions and 20 deletions

View File

@ -1,3 +1,10 @@
2017-11-19 Simon Marchi <simon.marchi@ericsson.com>
* win32-i386-low.c (update_debug_registers_callback): Rename
to ...
(update_debug_registers): ... this, return void, remove pid_p arg.
(x86_dr_low_set_addr, x86_dr_low_set_control): Use for_each_thread.
2017-11-17 Simon Marchi <simon.marchi@polymtl.ca> 2017-11-17 Simon Marchi <simon.marchi@polymtl.ca>
* inferiors.h (struct process_info): Add constructor, initialize * inferiors.h (struct process_info): Add constructor, initialize

View File

@ -36,21 +36,14 @@
static struct x86_debug_reg_state debug_reg_state; static struct x86_debug_reg_state debug_reg_state;
static int static void
update_debug_registers_callback (thread_info *thr, void *pid_p) update_debug_registers (thread_info *thread)
{ {
win32_thread_info *th = (win32_thread_info *) thread_target_data (thr); win32_thread_info *th = (win32_thread_info *) thread_target_data (thread);
int pid = *(int *) pid_p;
/* Only update the threads of this process. */ /* The actual update is done later just before resuming the lwp,
if (pid_of (thr) == pid) we just mark that the registers need updating. */
{ th->debug_registers_changed = 1;
/* The actual update is done later just before resuming the lwp,
we just mark that the registers need updating. */
th->debug_registers_changed = 1;
}
return 0;
} }
/* Update the inferior's debug register REGNUM from STATE. */ /* Update the inferior's debug register REGNUM from STATE. */
@ -58,12 +51,10 @@ update_debug_registers_callback (thread_info *thr, void *pid_p)
static void static void
x86_dr_low_set_addr (int regnum, CORE_ADDR addr) x86_dr_low_set_addr (int regnum, CORE_ADDR addr)
{ {
/* Only update the threads of this process. */
int pid = pid_of (current_thread);
gdb_assert (DR_FIRSTADDR <= regnum && regnum <= DR_LASTADDR); gdb_assert (DR_FIRSTADDR <= regnum && regnum <= DR_LASTADDR);
find_inferior (&all_threads, update_debug_registers_callback, &pid); /* Only update the threads of this process. */
for_each_thread (current_thread->id.pid (), update_debug_registers);
} }
/* Update the inferior's DR7 debug control register from STATE. */ /* Update the inferior's DR7 debug control register from STATE. */
@ -72,9 +63,7 @@ static void
x86_dr_low_set_control (unsigned long control) x86_dr_low_set_control (unsigned long control)
{ {
/* Only update the threads of this process. */ /* Only update the threads of this process. */
int pid = pid_of (current_thread); for_each_thread (current_thread->id.pid (), update_debug_registers);
find_inferior (&all_threads, update_debug_registers_callback, &pid);
} }
/* Return the current value of a DR register of the current thread's /* Return the current value of a DR register of the current thread's