aboutsummaryrefslogtreecommitdiff
path: root/gdb/inf-child.c
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@efficios.com>2021-12-01 13:09:56 -0500
committerSimon Marchi <simon.marchi@polymtl.ca>2021-12-03 08:31:05 -0500
commit7509b82979550970342a4494d727b3fb06bffd65 (patch)
treedcb494b490c750bc3ea370ed875b1b59ddbcd28d /gdb/inf-child.c
parent857dfb92de66c1ce66e78ae40a4b7d0e8fdbf2f0 (diff)
downloadgdb-7509b82979550970342a4494d727b3fb06bffd65.zip
gdb-7509b82979550970342a4494d727b3fb06bffd65.tar.gz
gdb-7509b82979550970342a4494d727b3fb06bffd65.tar.bz2
gdb: change store_waitstatus to return a target_waitstatus by value
store_waitstatus is basically a translation function between a status integer and an equivalent target_waitstatus object. It would make sense for it to take the integer as a parameter and return the target_waitstatus by value. Do that, and rename to host_status_to_waitstatus. Users can then do: ws = host_status_to_waitstatus (status) which does the right thing, given the move constructor of target_waitstatus. Change-Id: I7a07d59d3dc19d3ed66929642f82f44f3e85d61b
Diffstat (limited to 'gdb/inf-child.c')
-rw-r--r--gdb/inf-child.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/gdb/inf-child.c b/gdb/inf-child.c
index 5e821f4..b65bbf3 100644
--- a/gdb/inf-child.c
+++ b/gdb/inf-child.c
@@ -51,18 +51,19 @@ inf_child_target::info () const
return inf_child_target_info;
}
-/* Helper function for child_wait and the derivatives of child_wait.
- HOSTSTATUS is the waitstatus from wait() or the equivalent; store our
- translation of that in OURSTATUS. */
-void
-store_waitstatus (struct target_waitstatus *ourstatus, int hoststatus)
+/* See inf-child.h. */
+
+target_waitstatus
+host_status_to_waitstatus (int hoststatus)
{
if (WIFEXITED (hoststatus))
- ourstatus->set_exited (WEXITSTATUS (hoststatus));
+ return target_waitstatus ().set_exited (WEXITSTATUS (hoststatus));
else if (!WIFSTOPPED (hoststatus))
- ourstatus->set_signalled (gdb_signal_from_host (WTERMSIG (hoststatus)));
+ return target_waitstatus ().set_signalled
+ (gdb_signal_from_host (WTERMSIG (hoststatus)));
else
- ourstatus->set_stopped (gdb_signal_from_host (WSTOPSIG (hoststatus)));
+ return target_waitstatus ().set_stopped
+ (gdb_signal_from_host (WSTOPSIG (hoststatus)));
}
inf_child_target::~inf_child_target ()