diff options
author | Gary Benson <gbenson@redhat.com> | 2015-03-24 14:05:43 +0000 |
---|---|---|
committer | Gary Benson <gbenson@redhat.com> | 2015-03-24 14:05:43 +0000 |
commit | 6d4ee8c6ad7d5b04e524b2b48ffe5639028594a5 (patch) | |
tree | 796ae04a4d944777a1aa9bcde44ec114b58f11af /gdb/linux-nat.c | |
parent | 70a0bb6b590bcfe304fe082d421feb52e0a0d4dc (diff) | |
download | gdb-6d4ee8c6ad7d5b04e524b2b48ffe5639028594a5.zip gdb-6d4ee8c6ad7d5b04e524b2b48ffe5639028594a5.tar.gz gdb-6d4ee8c6ad7d5b04e524b2b48ffe5639028594a5.tar.bz2 |
Add iterate_over_lwps to gdbserver
This commit introduces a new function, iterate_over_lwps, that
shared Linux code can use to call a function for each LWP that
matches certain criteria. This function already existed in GDB
and was in use by GDB's various low-level Linux x86 debug register
setters. An equivalent was written for gdbserver and gdbserver's
low-level Linux x86 debug register setters were modified to use
it.
gdb/ChangeLog:
* linux-nat.h: Include nat/linux-nat.h.
(iterate_over_lwps): Move declaration to nat/linux-nat.h.
* nat/linux-nat.h (struct lwp_info): New forward declaration.
(iterate_over_lwps_ftype): New typedef.
(iterate_over_lwps): New declaration.
* linux-nat.h (iterate_over_lwps): Update comment. Use
iterate_over_lwps_ftype. Update callback return value check.
gdb/gdbserver/ChangeLog:
* linux-low.h: Include nat/linux-nat.h.
* linux-low.c (iterate_over_lwps_args): New structure.
(iterate_over_lwps_filter): New function.
(iterate_over_lwps): Likewise.
* linux-x86-low.c (update_debug_registers_callback):
Update signature to what iterate_over_lwps expects.
Remove PID check that iterate_over_lwps now performs.
(x86_dr_low_set_addr): Use iterate_over_lwps.
(x86_dr_low_set_control): Likewise.
Diffstat (limited to 'gdb/linux-nat.c')
-rw-r--r-- | gdb/linux-nat.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c index 8eb73d9..5a2cba5 100644 --- a/gdb/linux-nat.c +++ b/gdb/linux-nat.c @@ -834,14 +834,11 @@ find_lwp_pid (ptid_t ptid) return NULL; } -/* Call CALLBACK with its second argument set to DATA for every LWP in - the list. If CALLBACK returns 1 for a particular LWP, return a - pointer to the structure describing that LWP immediately. - Otherwise return NULL. */ +/* See nat/linux-nat.h. */ struct lwp_info * iterate_over_lwps (ptid_t filter, - int (*callback) (struct lwp_info *, void *), + iterate_over_lwps_ftype callback, void *data) { struct lwp_info *lp, *lpnext; @@ -852,7 +849,7 @@ iterate_over_lwps (ptid_t filter, if (ptid_match (lp->ptid, filter)) { - if ((*callback) (lp, data)) + if ((*callback) (lp, data) != 0) return lp; } } |