From: dje@google.com (Doug Evans)
To: gdb-patches@sourceware.org
Subject: [RFA] linux-low.c, linux_resume_one_lwp cleanup
Date: Sun, 24 May 2009 00:48:00 -0000 [thread overview]
Message-ID: <20090524004754.9D429846C2@localhost> (raw)
Hi.
gdbserver's struct lwp_info is defined like so:
struct lwp_info
{
struct inferior_list_entry head;
[...]
};
The prototype for linux_resume_one_lwp is this:
static void linux_resume_one_lwp (struct inferior_list_entry *entry,
int step, int signal, siginfo_t *info);
Every caller does this to get the type correct:
linux_resume_one_lwp (&lwp->head, 0, 0, NULL);
and then linux_resume_one_lwp immediately does this to cast the type
back to struct lwp_info *.
struct lwp_info *lwp = (struct lwp_info *) entry;
This patch cleans this up. Ok to check in?
2009-05-23 Doug Evans <dje@google.com>
* linux-low.c (linux_resume_one_lwp): Change type of first arg
from struct inferior_list_entry * to struct lwp_info *.
All callers updated.
Index: linux-low.c
===================================================================
RCS file: /cvs/src/src/gdb/gdbserver/linux-low.c,v
retrieving revision 1.102
diff -u -p -r1.102 linux-low.c
--- linux-low.c 13 May 2009 17:17:22 -0000 1.102
+++ linux-low.c 24 May 2009 00:42:40 -0000
@@ -121,7 +121,7 @@ int using_threads = 1;
control of gdbserver have the same architecture. */
static int new_inferior;
-static void linux_resume_one_lwp (struct inferior_list_entry *entry,
+static void linux_resume_one_lwp (struct lwp_info *lwp,
int step, int signal, siginfo_t *info);
static void linux_resume (struct thread_resume *resume_info, size_t n);
static void stop_all_lwps (void);
@@ -323,8 +323,7 @@ handle_extended_wait (struct lwp_info *e
/* Always resume the current thread. If we are stopping
threads, it will have a pending SIGSTOP; we may as well
collect it now. */
- linux_resume_one_lwp (&event_child->head,
- event_child->stepping, 0, NULL);
+ linux_resume_one_lwp (event_child, event_child->stepping, 0, NULL);
}
}
@@ -688,7 +687,7 @@ linux_detach_one_lwp (struct inferior_li
/* Clear stop_expected, so that the SIGSTOP will be reported. */
lwp->stop_expected = 0;
if (lwp->stopped)
- linux_resume_one_lwp (&lwp->head, 0, 0, NULL);
+ linux_resume_one_lwp (lwp, 0, 0, NULL);
linux_wait_for_event (lwp->head.id, &wstat, __WALL);
}
@@ -849,7 +848,7 @@ status_pending_p (struct inferior_list_e
So instead of reporting the old SIGTRAP, pretend we got to
the breakpoint just after it was removed instead of just
before; resume the process. */
- linux_resume_one_lwp (&lwp->head, 0, 0, NULL);
+ linux_resume_one_lwp (lwp, 0, 0, NULL);
return 0;
}
@@ -1074,8 +1073,7 @@ linux_wait_for_event_1 (ptid_t ptid, int
if (debug_threads)
fprintf (stderr, "Expected stop.\n");
event_child->stop_expected = 0;
- linux_resume_one_lwp (&event_child->head,
- event_child->stepping, 0, NULL);
+ linux_resume_one_lwp (event_child, event_child->stepping, 0, NULL);
continue;
}
@@ -1117,7 +1115,7 @@ linux_wait_for_event_1 (ptid_t ptid, int
info_p = &info;
else
info_p = NULL;
- linux_resume_one_lwp (&event_child->head,
+ linux_resume_one_lwp (event_child,
event_child->stepping,
WSTOPSIG (*wstat), info_p);
continue;
@@ -1147,7 +1145,7 @@ linux_wait_for_event_1 (ptid_t ptid, int
event_child->bp_reinsert = 0;
/* Clear the single-stepping flag and SIGTRAP as we resume. */
- linux_resume_one_lwp (&event_child->head, 0, 0, NULL);
+ linux_resume_one_lwp (event_child, 0, 0, NULL);
continue;
}
@@ -1189,18 +1187,18 @@ linux_wait_for_event_1 (ptid_t ptid, int
events. */
if (bp_status == 2)
/* No need to reinsert. */
- linux_resume_one_lwp (&event_child->head, 0, 0, NULL);
+ linux_resume_one_lwp (event_child, 0, 0, NULL);
else if (the_low_target.breakpoint_reinsert_addr == NULL)
{
event_child->bp_reinsert = stop_pc;
uninsert_breakpoint (stop_pc);
- linux_resume_one_lwp (&event_child->head, 1, 0, NULL);
+ linux_resume_one_lwp (event_child, 1, 0, NULL);
}
else
{
reinsert_breakpoint_by_bp
(stop_pc, (*the_low_target.breakpoint_reinsert_addr) ());
- linux_resume_one_lwp (&event_child->head, 0, 0, NULL);
+ linux_resume_one_lwp (event_child, 0, 0, NULL);
}
continue;
@@ -1645,10 +1643,9 @@ stop_all_lwps (void)
If SIGNAL is nonzero, give it that signal. */
static void
-linux_resume_one_lwp (struct inferior_list_entry *entry,
+linux_resume_one_lwp (struct lwp_info *lwp,
int step, int signal, siginfo_t *info)
{
- struct lwp_info *lwp = (struct lwp_info *) entry;
struct thread_info *saved_inferior;
if (lwp->stopped == 0)
@@ -1918,7 +1915,7 @@ linux_resume_one_thread (struct inferior
else
step = (lwp->resume->kind == resume_step);
- linux_resume_one_lwp (&lwp->head, step, lwp->resume->sig, NULL);
+ linux_resume_one_lwp (lwp, step, lwp->resume->sig, NULL);
}
else
{
next reply other threads:[~2009-05-24 0:48 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-24 0:48 Doug Evans [this message]
2009-05-24 0:52 ` Pedro Alves
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090524004754.9D429846C2@localhost \
--to=dje@google.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox