[PATCH 2/5] Convert rs->support_vCont_t to a struct

Pedro Alves
2013-05-14T19:10:44Z

Convert the 'support_vCont_t' int field to a struct, in preparation
for adding more fields to it.

v3:
- s/support/supports/
- struct renamed.
- comments tweaked.

gdb/
2013-05-14 Yao Qi <yao@codesourcery.com>
Pedro Alves <palves@redhat.com>

* remote.c (struct vCont_action_support): New struct.
(struct remote_state) <support_vCont_t>: Remove field.
<vCont_actions_support>: New field.
(remote_vcont_probe, remote_stop_ns): Update.
---
gdb/remote.c | 21 ++++++++++++++++-----
1 file changed, 16 insertions(+), 5 deletions(-)

diff --git a/gdb/remote.c b/gdb/remote.c
index 7cae940..5d3950b 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -251,6 +251,17 @@ static struct cmd_list_element *remote_cmdlist;
static struct cmd_list_element *remote_set_cmdlist;
static struct cmd_list_element *remote_show_cmdlist;

+/* Stub vCont actions support.
+
+ Each field is a boolean flag indicating whether the stub reports
+ support for the corresponding action. */
+
+struct vCont_action_support
+{
+ /* vCont;t */
+ int t;
+};
+
/* Description of the remote protocol state for the currently
connected target. This is per-target state, and independent of the
selected architecture. */
@@ -308,8 +319,8 @@ struct remote_state
/* True if the stub reports support for non-stop mode. */
int non_stop_aware;

- /* True if the stub reports support for vCont;t. */
- int support_vCont_t;
+ /* The status of the stub support for the various vCont actions. */
+ struct vCont_action_support supports_vCont;

/* True if the stub reports support for conditional tracepoints. */
int cond_tracepoints;
@@ -4641,7 +4652,7 @@ remote_vcont_probe (struct remote_state *rs)
support_S = 0;
support_c = 0;
support_C = 0;
- rs->support_vCont_t = 0;
+ rs->supports_vCont.t = 0;
while (p && *p == ';')
{
p++;
@@ -4654,7 +4665,7 @@ remote_vcont_probe (struct remote_state *rs)
else if (*p == 'C' && (*(p + 1) == ';' || *(p + 1) == 0))
support_C = 1;
else if (*p == 't' && (*(p + 1) == ';' || *(p + 1) == 0))
- rs->support_vCont_t = 1;
+ rs->supports_vCont.t = 1;

p = strchr (p, ';');
}
@@ -5003,7 +5014,7 @@ remote_stop_ns (ptid_t ptid)
if (remote_protocol_packets[PACKET_vCont].support == PACKET_SUPPORT_UNKNOWN)
remote_vcont_probe (rs);

- if (!rs->support_vCont_t)
+ if (!rs->supports_vCont.t)
error (_("Remote server does not support stopping threads"));

if (ptid_equal (ptid, minus_one_ptid)