* remote.c: Add an enumeration for configurable remote

packets.
	(remote_protocol_packets, set_remote_protocol_packet_cmd)
	(show_remote_protocol_packet_cmd): New.
	(remote_protocol_vcont)
	(set_remote_protocol_vcont_packet_cmd)
	(show_remote_protocol_vcont_packet_cmd)
	(remote_protocol_qSymbol)
	(set_remote_protocol_qSymbol_packet_cmd)
	(show_remote_protocol_qSymbol_packet_cmd)
	(remote_protocol_P, set_remote_protocol_P_packet_cmd)
	(show_remote_protocol_P_packet_cmd)
	(remote_protocol_Z)
	(set_remote_protocol_Z_software_bp_packet_cmd)
	(show_remote_protocol_Z_software_bp_packet_cmd)
	(set_remote_protocol_Z_hardware_bp_packet_cmd)
	(show_remote_protocol_Z_hardware_bp_packet_cmd)
	(set_remote_protocol_Z_write_wp_packet_cmd)
	(show_remote_protocol_Z_write_wp_packet_cmd)
	(set_remote_protocol_Z_read_wp_packet_cmd)
	(show_remote_protocol_Z_read_wp_packet_cmd)
	(set_remote_protocol_Z_access_wp_packet_cmd)
	(show_remote_protocol_Z_access_wp_packet_cmd)
	(remote_protocol_binary_download)
	(set_remote_protocol_binary_download_cmd)
	(show_remote_protocol_binary_download_cmd)
	(remote_protocol_qPart_auxv)
	(set_remote_protocol_qPart_auxv_packet_cmd)
	(show_remote_protocol_qPart_auxv_packet_cmd)
	(remote_protocol_qGetTLSAddr)
	(set_remote_protocol_qGetTLSAddr_packet_cmd)
	(show_remote_protocol_qGetTLSAddr_packet_cmd)
	(remote_protocol_p)
	(set_remote_protocol_p_packet_cmd)
	(show_remote_protocol_p_packet_cmd): Delete.

	(init_all_packet_configs): Simplify.
	(set_remote_protocol_Z_packet_cmd)
	(show_remote_protocol_Z_packet_cmd)
	(remote_check_symbols, remote_vcont_probe, remote_vcont_resume)
	(remote_fetch_registers, remote_prepare_to_store)
	(remote_store_registers, check_binary_download)
	(remote_write_bytes, remote_insert_breakpoint)
	(remote_remove_breakpoint, remote_insert_watchpoint)
	(remote_remove_watchpoint, remote_insert_hw_breakpoint)
	(remote_remove_hw_breakpoint, remote_xfer_partial)
	(remote_get_thread_local_address): Update for packet array.
	(_initialize_remote): Likewise; also update for common
	set/show commands.
This commit is contained in:
Daniel Jacobowitz 2006-02-20 15:19:06 +00:00
parent 3bd72c6f17
commit 444abacaac
2 changed files with 183 additions and 298 deletions

View File

@ -1,3 +1,55 @@
2006-02-20 Daniel Jacobowitz <dan@codesourcery.com>
* remote.c: Add an enumeration for configurable remote
packets.
(remote_protocol_packets, set_remote_protocol_packet_cmd)
(show_remote_protocol_packet_cmd): New.
(remote_protocol_vcont)
(set_remote_protocol_vcont_packet_cmd)
(show_remote_protocol_vcont_packet_cmd)
(remote_protocol_qSymbol)
(set_remote_protocol_qSymbol_packet_cmd)
(show_remote_protocol_qSymbol_packet_cmd)
(remote_protocol_P, set_remote_protocol_P_packet_cmd)
(show_remote_protocol_P_packet_cmd)
(remote_protocol_Z)
(set_remote_protocol_Z_software_bp_packet_cmd)
(show_remote_protocol_Z_software_bp_packet_cmd)
(set_remote_protocol_Z_hardware_bp_packet_cmd)
(show_remote_protocol_Z_hardware_bp_packet_cmd)
(set_remote_protocol_Z_write_wp_packet_cmd)
(show_remote_protocol_Z_write_wp_packet_cmd)
(set_remote_protocol_Z_read_wp_packet_cmd)
(show_remote_protocol_Z_read_wp_packet_cmd)
(set_remote_protocol_Z_access_wp_packet_cmd)
(show_remote_protocol_Z_access_wp_packet_cmd)
(remote_protocol_binary_download)
(set_remote_protocol_binary_download_cmd)
(show_remote_protocol_binary_download_cmd)
(remote_protocol_qPart_auxv)
(set_remote_protocol_qPart_auxv_packet_cmd)
(show_remote_protocol_qPart_auxv_packet_cmd)
(remote_protocol_qGetTLSAddr)
(set_remote_protocol_qGetTLSAddr_packet_cmd)
(show_remote_protocol_qGetTLSAddr_packet_cmd)
(remote_protocol_p)
(set_remote_protocol_p_packet_cmd)
(show_remote_protocol_p_packet_cmd): Delete.
(init_all_packet_configs): Simplify.
(set_remote_protocol_Z_packet_cmd)
(show_remote_protocol_Z_packet_cmd)
(remote_check_symbols, remote_vcont_probe, remote_vcont_resume)
(remote_fetch_registers, remote_prepare_to_store)
(remote_store_registers, check_binary_download)
(remote_write_bytes, remote_insert_breakpoint)
(remote_remove_breakpoint, remote_insert_watchpoint)
(remote_remove_watchpoint, remote_insert_hw_breakpoint)
(remote_remove_hw_breakpoint, remote_xfer_partial)
(remote_get_thread_local_address): Update for packet array.
(_initialize_remote): Likewise; also update for common
set/show commands.
2006-02-20 Daniel Jacobowitz <dan@codesourcery.com>
* symfile.c (place_section): Correct retry logic.

View File

@ -729,59 +729,63 @@ packet_ok (const char *buf, struct packet_config *config)
}
}
/* Should we try the 'vCont' (descriptive resume) request? */
static struct packet_config remote_protocol_vcont;
enum {
PACKET_vCont = 0,
PACKET_X,
PACKET_qSymbol,
PACKET_P,
PACKET_p,
PACKET_Z0,
PACKET_Z1,
PACKET_Z2,
PACKET_Z3,
PACKET_Z4,
PACKET_qPart_auxv,
PACKET_qGetTLSAddr,
PACKET_MAX
};
static struct packet_config remote_protocol_packets[PACKET_MAX];
static void
set_remote_protocol_vcont_packet_cmd (char *args, int from_tty,
struct cmd_list_element *c)
set_remote_protocol_packet_cmd (char *args, int from_tty,
struct cmd_list_element *c)
{
update_packet_config (&remote_protocol_vcont);
struct packet_config *packet;
for (packet = remote_protocol_packets;
packet < &remote_protocol_packets[PACKET_MAX];
packet++)
{
if (&packet->detect == c->var)
{
update_packet_config (packet);
return;
}
}
internal_error (__FILE__, __LINE__, "Could not find config for %s",
c->name);
}
static void
show_remote_protocol_vcont_packet_cmd (struct ui_file *file, int from_tty,
struct cmd_list_element *c,
const char *value)
show_remote_protocol_packet_cmd (struct ui_file *file, int from_tty,
struct cmd_list_element *c,
const char *value)
{
show_packet_config_cmd (&remote_protocol_vcont);
}
struct packet_config *packet;
/* Should we try the 'qSymbol' (target symbol lookup service) request? */
static struct packet_config remote_protocol_qSymbol;
static void
set_remote_protocol_qSymbol_packet_cmd (char *args, int from_tty,
struct cmd_list_element *c)
{
update_packet_config (&remote_protocol_qSymbol);
}
static void
show_remote_protocol_qSymbol_packet_cmd (struct ui_file *file, int from_tty,
struct cmd_list_element *c,
const char *value)
{
show_packet_config_cmd (&remote_protocol_qSymbol);
}
/* Should we try the 'P' (set register) request? */
static struct packet_config remote_protocol_P;
static void
set_remote_protocol_P_packet_cmd (char *args, int from_tty,
struct cmd_list_element *c)
{
update_packet_config (&remote_protocol_P);
}
static void
show_remote_protocol_P_packet_cmd (struct ui_file *file, int from_tty,
struct cmd_list_element *c,
const char *value)
{
show_packet_config_cmd (&remote_protocol_P);
for (packet = remote_protocol_packets;
packet < &remote_protocol_packets[PACKET_MAX];
packet++)
{
if (&packet->detect == c->var)
{
show_packet_config_cmd (packet);
return;
}
}
internal_error (__FILE__, __LINE__, "Could not find config for %s",
c->name);
}
/* Should we try one of the 'Z' requests? */
@ -796,86 +800,6 @@ enum Z_packet_type
NR_Z_PACKET_TYPES
};
static struct packet_config remote_protocol_Z[NR_Z_PACKET_TYPES];
/* FIXME: Instead of having all these boiler plate functions, the
command callback should include a context argument. */
static void
set_remote_protocol_Z_software_bp_packet_cmd (char *args, int from_tty,
struct cmd_list_element *c)
{
update_packet_config (&remote_protocol_Z[Z_PACKET_SOFTWARE_BP]);
}
static void
show_remote_protocol_Z_software_bp_packet_cmd (struct ui_file *file, int from_tty,
struct cmd_list_element *c,
const char *value)
{
show_packet_config_cmd (&remote_protocol_Z[Z_PACKET_SOFTWARE_BP]);
}
static void
set_remote_protocol_Z_hardware_bp_packet_cmd (char *args, int from_tty,
struct cmd_list_element *c)
{
update_packet_config (&remote_protocol_Z[Z_PACKET_HARDWARE_BP]);
}
static void
show_remote_protocol_Z_hardware_bp_packet_cmd (struct ui_file *file, int from_tty,
struct cmd_list_element *c,
const char *value)
{
show_packet_config_cmd (&remote_protocol_Z[Z_PACKET_HARDWARE_BP]);
}
static void
set_remote_protocol_Z_write_wp_packet_cmd (char *args, int from_tty,
struct cmd_list_element *c)
{
update_packet_config (&remote_protocol_Z[Z_PACKET_WRITE_WP]);
}
static void
show_remote_protocol_Z_write_wp_packet_cmd (struct ui_file *file, int from_tty,
struct cmd_list_element *c,
const char *value)
{
show_packet_config_cmd (&remote_protocol_Z[Z_PACKET_WRITE_WP]);
}
static void
set_remote_protocol_Z_read_wp_packet_cmd (char *args, int from_tty,
struct cmd_list_element *c)
{
update_packet_config (&remote_protocol_Z[Z_PACKET_READ_WP]);
}
static void
show_remote_protocol_Z_read_wp_packet_cmd (struct ui_file *file, int from_tty,
struct cmd_list_element *c,
const char *value)
{
show_packet_config_cmd (&remote_protocol_Z[Z_PACKET_READ_WP]);
}
static void
set_remote_protocol_Z_access_wp_packet_cmd (char *args, int from_tty,
struct cmd_list_element *c)
{
update_packet_config (&remote_protocol_Z[Z_PACKET_ACCESS_WP]);
}
static void
show_remote_protocol_Z_access_wp_packet_cmd (struct ui_file *file, int from_tty,
struct cmd_list_element *c,
const char *value)
{
show_packet_config_cmd (&remote_protocol_Z[Z_PACKET_ACCESS_WP]);
}
/* For compatibility with older distributions. Provide a ``set remote
Z-packet ...'' command that updates all the Z packet types. */
@ -888,8 +812,8 @@ set_remote_protocol_Z_packet_cmd (char *args, int from_tty,
int i;
for (i = 0; i < NR_Z_PACKET_TYPES; i++)
{
remote_protocol_Z[i].detect = remote_Z_packet_detect;
update_packet_config (&remote_protocol_Z[i]);
remote_protocol_packets[PACKET_Z0 + i].detect = remote_Z_packet_detect;
update_packet_config (&remote_protocol_packets[PACKET_Z0 + i]);
}
}
@ -901,22 +825,10 @@ show_remote_protocol_Z_packet_cmd (struct ui_file *file, int from_tty,
int i;
for (i = 0; i < NR_Z_PACKET_TYPES; i++)
{
show_packet_config_cmd (&remote_protocol_Z[i]);
show_packet_config_cmd (&remote_protocol_packets[PACKET_Z0 + i]);
}
}
/* Should we try the 'X' (remote binary download) packet?
This variable (available to the user via "set remote X-packet")
dictates whether downloads are sent in binary (via the 'X' packet).
We assume that the stub can, and attempt to do it. This will be
cleared if the stub does not understand it. This switch is still
needed, though in cases when the packet is supported in the stub,
but the connection does not allow it (i.e., 7-bit serial connection
only). */
static struct packet_config remote_protocol_binary_download;
/* Should we try the 'ThreadInfo' query packet?
This variable (NOT available to the user: auto-detect only!)
@ -928,77 +840,6 @@ static struct packet_config remote_protocol_binary_download;
static int use_threadinfo_query;
static int use_threadextra_query;
static void
set_remote_protocol_binary_download_cmd (char *args,
int from_tty,
struct cmd_list_element *c)
{
update_packet_config (&remote_protocol_binary_download);
}
static void
show_remote_protocol_binary_download_cmd (struct ui_file *file, int from_tty,
struct cmd_list_element *c,
const char *value)
{
show_packet_config_cmd (&remote_protocol_binary_download);
}
/* Should we try the 'qPart:auxv' (target auxiliary vector read) request? */
static struct packet_config remote_protocol_qPart_auxv;
static void
set_remote_protocol_qPart_auxv_packet_cmd (char *args, int from_tty,
struct cmd_list_element *c)
{
update_packet_config (&remote_protocol_qPart_auxv);
}
static void
show_remote_protocol_qPart_auxv_packet_cmd (struct ui_file *file, int from_tty,
struct cmd_list_element *c,
const char *value)
{
show_packet_config_cmd (&remote_protocol_qPart_auxv);
}
/* Should we try the 'qGetTLSAddr' (Get Thread Local Storage Address) request? */
static struct packet_config remote_protocol_qGetTLSAddr;
static void
set_remote_protocol_qGetTLSAddr_packet_cmd (char *args, int from_tty,
struct cmd_list_element *c)
{
update_packet_config (&remote_protocol_qGetTLSAddr);
}
static void
show_remote_protocol_qGetTLSAddr_packet_cmd (struct ui_file *file, int from_tty,
struct cmd_list_element *c,
const char *value)
{
show_packet_config_cmd (&remote_protocol_qGetTLSAddr);
}
static struct packet_config remote_protocol_p;
static void
set_remote_protocol_p_packet_cmd (char *args, int from_tty,
struct cmd_list_element *c)
{
update_packet_config (&remote_protocol_p);
}
static void
show_remote_protocol_p_packet_cmd (struct ui_file *file, int from_tty,
struct cmd_list_element *c,
const char *value)
{
show_packet_config_cmd (&remote_protocol_p);
}
/* Tokens for use by the asynchronous signal handlers for SIGINT. */
static void *sigint_remote_twice_token;
static void *sigint_remote_token;
@ -2098,17 +1939,8 @@ static void
init_all_packet_configs (void)
{
int i;
update_packet_config (&remote_protocol_P);
update_packet_config (&remote_protocol_p);
update_packet_config (&remote_protocol_qSymbol);
update_packet_config (&remote_protocol_vcont);
for (i = 0; i < NR_Z_PACKET_TYPES; i++)
update_packet_config (&remote_protocol_Z[i]);
/* Force remote_write_bytes to check whether target supports binary
downloading. */
update_packet_config (&remote_protocol_binary_download);
update_packet_config (&remote_protocol_qPart_auxv);
update_packet_config (&remote_protocol_qGetTLSAddr);
for (i = 0; i < PACKET_MAX; i++)
update_packet_config (&remote_protocol_packets[i]);
}
/* Symbol look-up. */
@ -2121,7 +1953,7 @@ remote_check_symbols (struct objfile *objfile)
struct minimal_symbol *sym;
int end;
if (remote_protocol_qSymbol.support == PACKET_DISABLE)
if (remote_protocol_packets[PACKET_qSymbol].support == PACKET_DISABLE)
return;
msg = alloca (rs->remote_packet_size);
@ -2131,7 +1963,7 @@ remote_check_symbols (struct objfile *objfile)
putpkt ("qSymbol::");
getpkt (reply, rs->remote_packet_size, 0);
packet_ok (reply, &remote_protocol_qSymbol);
packet_ok (reply, &remote_protocol_packets[PACKET_qSymbol]);
while (strncmp (reply, "qSymbol:", 8) == 0)
{
@ -2450,7 +2282,7 @@ remote_vcont_probe (struct remote_state *rs, char *buf)
buf[0] = 0;
}
packet_ok (buf, &remote_protocol_vcont);
packet_ok (buf, &remote_protocol_packets[PACKET_vCont]);
}
/* Resume the remote inferior by using a "vCont" packet. The thread
@ -2474,10 +2306,10 @@ remote_vcont_resume (ptid_t ptid, int step, enum target_signal siggnal)
buf = xmalloc (rs->remote_packet_size);
old_cleanup = make_cleanup (xfree, buf);
if (remote_protocol_vcont.support == PACKET_SUPPORT_UNKNOWN)
if (remote_protocol_packets[PACKET_vCont].support == PACKET_SUPPORT_UNKNOWN)
remote_vcont_probe (rs, buf);
if (remote_protocol_vcont.support == PACKET_DISABLE)
if (remote_protocol_packets[PACKET_vCont].support == PACKET_DISABLE)
{
do_cleanups (old_cleanup);
return 0;
@ -3271,7 +3103,7 @@ remote_fetch_registers (int regnum)
_("Attempt to fetch a non G-packet register when this "
"remote.c does not support the p-packet."));
}
switch (remote_protocol_p.support)
switch (remote_protocol_packets[PACKET_p].support)
{
case PACKET_DISABLE:
break;
@ -3284,7 +3116,7 @@ remote_fetch_registers (int regnum)
if (fetch_register_using_p (regnum))
{
/* The stub recognized the 'p' packet. Remember this. */
remote_protocol_p.support = PACKET_ENABLE;
remote_protocol_packets[PACKET_p].support = PACKET_ENABLE;
return;
}
else
@ -3292,7 +3124,7 @@ remote_fetch_registers (int regnum)
/* The stub does not support the 'P' packet. Use 'G'
instead, and don't try using 'P' in the future (it
will just waste our time). */
remote_protocol_p.support = PACKET_DISABLE;
remote_protocol_packets[PACKET_p].support = PACKET_DISABLE;
break;
}
}
@ -3396,7 +3228,7 @@ remote_prepare_to_store (void)
gdb_byte buf[MAX_REGISTER_SIZE];
/* Make sure the entire registers array is valid. */
switch (remote_protocol_P.support)
switch (remote_protocol_packets[PACKET_P].support)
{
case PACKET_DISABLE:
case PACKET_SUPPORT_UNKNOWN:
@ -3448,7 +3280,7 @@ remote_store_registers (int regnum)
if (regnum >= 0)
{
switch (remote_protocol_P.support)
switch (remote_protocol_packets[PACKET_P].support)
{
case PACKET_DISABLE:
break;
@ -3461,7 +3293,7 @@ remote_store_registers (int regnum)
if (store_register_using_P (regnum))
{
/* The stub recognized the 'P' packet. Remember this. */
remote_protocol_P.support = PACKET_ENABLE;
remote_protocol_packets[PACKET_P].support = PACKET_ENABLE;
return;
}
else
@ -3469,7 +3301,7 @@ remote_store_registers (int regnum)
/* The stub does not support the 'P' packet. Use 'G'
instead, and don't try using 'P' in the future (it
will just waste our time). */
remote_protocol_P.support = PACKET_DISABLE;
remote_protocol_packets[PACKET_P].support = PACKET_DISABLE;
break;
}
}
@ -3574,7 +3406,7 @@ check_binary_download (CORE_ADDR addr)
{
struct remote_state *rs = get_remote_state ();
switch (remote_protocol_binary_download.support)
switch (remote_protocol_packets[PACKET_X].support)
{
case PACKET_DISABLE:
break;
@ -3601,14 +3433,14 @@ check_binary_download (CORE_ADDR addr)
if (remote_debug)
fprintf_unfiltered (gdb_stdlog,
"binary downloading NOT suppported by target\n");
remote_protocol_binary_download.support = PACKET_DISABLE;
remote_protocol_packets[PACKET_X].support = PACKET_DISABLE;
}
else
{
if (remote_debug)
fprintf_unfiltered (gdb_stdlog,
"binary downloading suppported by target\n");
remote_protocol_binary_download.support = PACKET_ENABLE;
remote_protocol_packets[PACKET_X].support = PACKET_ENABLE;
}
break;
}
@ -3658,7 +3490,7 @@ remote_write_bytes (CORE_ADDR memaddr, gdb_byte *myaddr, int len)
/* Append "[XM]". Compute a best guess of the number of bytes
actually transfered. */
p = buf;
switch (remote_protocol_binary_download.support)
switch (remote_protocol_packets[PACKET_X].support)
{
case PACKET_ENABLE:
*p++ = 'X';
@ -3703,7 +3535,7 @@ remote_write_bytes (CORE_ADDR memaddr, gdb_byte *myaddr, int len)
/* Append the packet body. */
payload_start = p;
switch (remote_protocol_binary_download.support)
switch (remote_protocol_packets[PACKET_X].support)
{
case PACKET_ENABLE:
/* Binary mode. Send target system values byte by byte, in
@ -4490,7 +4322,7 @@ remote_insert_breakpoint (CORE_ADDR addr, bfd_byte *contents_cache)
fails, and the user has explicitly requested the Z support then
report an error, otherwise, mark it disabled and go on. */
if (remote_protocol_Z[Z_PACKET_SOFTWARE_BP].support != PACKET_DISABLE)
if (remote_protocol_packets[PACKET_Z0].support != PACKET_DISABLE)
{
char *buf = alloca (rs->remote_packet_size);
char *p = buf;
@ -4506,7 +4338,7 @@ remote_insert_breakpoint (CORE_ADDR addr, bfd_byte *contents_cache)
putpkt (buf);
getpkt (buf, rs->remote_packet_size, 0);
switch (packet_ok (buf, &remote_protocol_Z[Z_PACKET_SOFTWARE_BP]))
switch (packet_ok (buf, &remote_protocol_packets[PACKET_Z0]))
{
case PACKET_ERROR:
return -1;
@ -4542,7 +4374,7 @@ remote_remove_breakpoint (CORE_ADDR addr, bfd_byte *contents_cache)
struct remote_state *rs = get_remote_state ();
int bp_size;
if (remote_protocol_Z[Z_PACKET_SOFTWARE_BP].support != PACKET_DISABLE)
if (remote_protocol_packets[PACKET_Z0].support != PACKET_DISABLE)
{
char *buf = alloca (rs->remote_packet_size);
char *p = buf;
@ -4597,10 +4429,10 @@ remote_insert_watchpoint (CORE_ADDR addr, int len, int type)
char *p;
enum Z_packet_type packet = watchpoint_to_Z_packet (type);
if (remote_protocol_Z[packet].support == PACKET_DISABLE)
if (remote_protocol_packets[PACKET_Z0 + packet].support == PACKET_DISABLE)
error (_("Can't set hardware watchpoints without the '%s' (%s) packet."),
remote_protocol_Z[packet].name,
remote_protocol_Z[packet].title);
remote_protocol_packets[PACKET_Z0 + packet].name,
remote_protocol_packets[PACKET_Z0 + packet].title);
sprintf (buf, "Z%x,", packet);
p = strchr (buf, '\0');
@ -4611,7 +4443,7 @@ remote_insert_watchpoint (CORE_ADDR addr, int len, int type)
putpkt (buf);
getpkt (buf, rs->remote_packet_size, 0);
switch (packet_ok (buf, &remote_protocol_Z[packet]))
switch (packet_ok (buf, &remote_protocol_packets[PACKET_Z0 + packet]))
{
case PACKET_ERROR:
case PACKET_UNKNOWN:
@ -4632,10 +4464,10 @@ remote_remove_watchpoint (CORE_ADDR addr, int len, int type)
char *p;
enum Z_packet_type packet = watchpoint_to_Z_packet (type);
if (remote_protocol_Z[packet].support == PACKET_DISABLE)
if (remote_protocol_packets[PACKET_Z0 + packet].support == PACKET_DISABLE)
error (_("Can't clear hardware watchpoints without the '%s' (%s) packet."),
remote_protocol_Z[packet].name,
remote_protocol_Z[packet].title);
remote_protocol_packets[PACKET_Z0 + packet].name,
remote_protocol_packets[PACKET_Z0 + packet].title);
sprintf (buf, "z%x,", packet);
p = strchr (buf, '\0');
@ -4645,7 +4477,7 @@ remote_remove_watchpoint (CORE_ADDR addr, int len, int type)
putpkt (buf);
getpkt (buf, rs->remote_packet_size, 0);
switch (packet_ok (buf, &remote_protocol_Z[packet]))
switch (packet_ok (buf, &remote_protocol_packets[PACKET_Z0 + packet]))
{
case PACKET_ERROR:
case PACKET_UNKNOWN:
@ -4723,10 +4555,10 @@ remote_insert_hw_breakpoint (CORE_ADDR addr, gdb_byte *shadow)
BREAKPOINT_FROM_PC (&addr, &len);
if (remote_protocol_Z[Z_PACKET_HARDWARE_BP].support == PACKET_DISABLE)
if (remote_protocol_packets[PACKET_Z1].support == PACKET_DISABLE)
error (_("Can't set hardware breakpoint without the '%s' (%s) packet."),
remote_protocol_Z[Z_PACKET_HARDWARE_BP].name,
remote_protocol_Z[Z_PACKET_HARDWARE_BP].title);
remote_protocol_packets[PACKET_Z1].name,
remote_protocol_packets[PACKET_Z1].title);
*(p++) = 'Z';
*(p++) = '1';
@ -4739,7 +4571,7 @@ remote_insert_hw_breakpoint (CORE_ADDR addr, gdb_byte *shadow)
putpkt (buf);
getpkt (buf, rs->remote_packet_size, 0);
switch (packet_ok (buf, &remote_protocol_Z[Z_PACKET_HARDWARE_BP]))
switch (packet_ok (buf, &remote_protocol_packets[PACKET_Z1]))
{
case PACKET_ERROR:
case PACKET_UNKNOWN:
@ -4765,10 +4597,10 @@ remote_remove_hw_breakpoint (CORE_ADDR addr, gdb_byte *shadow)
BREAKPOINT_FROM_PC (&addr, &len);
if (remote_protocol_Z[Z_PACKET_HARDWARE_BP].support == PACKET_DISABLE)
if (remote_protocol_packets[PACKET_Z1].support == PACKET_DISABLE)
error (_("Can't clear hardware breakpoint without the '%s' (%s) packet."),
remote_protocol_Z[Z_PACKET_HARDWARE_BP].name,
remote_protocol_Z[Z_PACKET_HARDWARE_BP].title);
remote_protocol_packets[PACKET_Z1].name,
remote_protocol_packets[PACKET_Z1].title);
*(p++) = 'z';
*(p++) = '1';
@ -4781,7 +4613,7 @@ remote_remove_hw_breakpoint (CORE_ADDR addr, gdb_byte *shadow)
putpkt(buf);
getpkt (buf, rs->remote_packet_size, 0);
switch (packet_ok (buf, &remote_protocol_Z[Z_PACKET_HARDWARE_BP]))
switch (packet_ok (buf, &remote_protocol_packets[PACKET_Z1]))
{
case PACKET_ERROR:
case PACKET_UNKNOWN:
@ -4983,7 +4815,7 @@ remote_xfer_partial (struct target_ops *ops, enum target_object object,
break;
case TARGET_OBJECT_AUXV:
if (remote_protocol_qPart_auxv.support != PACKET_DISABLE)
if (remote_protocol_packets[PACKET_qPart_auxv].support != PACKET_DISABLE)
{
unsigned int total = 0;
while (len > 0)
@ -4998,7 +4830,8 @@ remote_xfer_partial (struct target_ops *ops, enum target_object object,
return total > 0 ? total : i;
buf2[0] = '\0';
getpkt (buf2, rs->remote_packet_size, 0);
if (packet_ok (buf2, &remote_protocol_qPart_auxv) != PACKET_OK)
if (packet_ok (buf2, &remote_protocol_packets[PACKET_qPart_auxv])
!= PACKET_OK)
return total > 0 ? total : -1;
if (buf2[0] == 'O' && buf2[1] == 'K' && buf2[2] == '\0')
break; /* Got EOF indicator. */
@ -5308,7 +5141,7 @@ remote_pid_to_str (ptid_t ptid)
static CORE_ADDR
remote_get_thread_local_address (ptid_t ptid, CORE_ADDR lm, CORE_ADDR offset)
{
if (remote_protocol_qGetTLSAddr.support != PACKET_DISABLE)
if (remote_protocol_packets[PACKET_qGetTLSAddr].support != PACKET_DISABLE)
{
struct remote_state *rs = get_remote_state ();
char *buf = alloca (rs->remote_packet_size);
@ -5326,7 +5159,7 @@ remote_get_thread_local_address (ptid_t ptid, CORE_ADDR lm, CORE_ADDR offset)
putpkt (buf);
getpkt (buf, rs->remote_packet_size, 0);
result = packet_ok (buf, &remote_protocol_qGetTLSAddr);
result = packet_ok (buf, &remote_protocol_packets[PACKET_qGetTLSAddr]);
if (result == PACKET_OK)
{
ULONGEST result;
@ -5725,87 +5558,87 @@ Show the maximum size of the address (in bits) in a memory packet."), NULL,
NULL, /* FIXME: i18n: */
&setlist, &showlist);
add_packet_config_cmd (&remote_protocol_binary_download,
add_packet_config_cmd (&remote_protocol_packets[PACKET_X],
"X", "binary-download",
set_remote_protocol_binary_download_cmd,
show_remote_protocol_binary_download_cmd,
set_remote_protocol_packet_cmd,
show_remote_protocol_packet_cmd,
&remote_set_cmdlist, &remote_show_cmdlist,
1);
add_packet_config_cmd (&remote_protocol_vcont,
add_packet_config_cmd (&remote_protocol_packets[PACKET_vCont],
"vCont", "verbose-resume",
set_remote_protocol_vcont_packet_cmd,
show_remote_protocol_vcont_packet_cmd,
set_remote_protocol_packet_cmd,
show_remote_protocol_packet_cmd,
&remote_set_cmdlist, &remote_show_cmdlist,
0);
add_packet_config_cmd (&remote_protocol_qSymbol,
add_packet_config_cmd (&remote_protocol_packets[PACKET_qSymbol],
"qSymbol", "symbol-lookup",
set_remote_protocol_qSymbol_packet_cmd,
show_remote_protocol_qSymbol_packet_cmd,
set_remote_protocol_packet_cmd,
show_remote_protocol_packet_cmd,
&remote_set_cmdlist, &remote_show_cmdlist,
0);
add_packet_config_cmd (&remote_protocol_P,
add_packet_config_cmd (&remote_protocol_packets[PACKET_P],
"P", "set-register",
set_remote_protocol_P_packet_cmd,
show_remote_protocol_P_packet_cmd,
set_remote_protocol_packet_cmd,
show_remote_protocol_packet_cmd,
&remote_set_cmdlist, &remote_show_cmdlist,
1);
add_packet_config_cmd (&remote_protocol_p,
add_packet_config_cmd (&remote_protocol_packets[PACKET_p],
"p", "fetch-register",
set_remote_protocol_p_packet_cmd,
show_remote_protocol_p_packet_cmd,
set_remote_protocol_packet_cmd,
show_remote_protocol_packet_cmd,
&remote_set_cmdlist, &remote_show_cmdlist,
1);
add_packet_config_cmd (&remote_protocol_Z[Z_PACKET_SOFTWARE_BP],
add_packet_config_cmd (&remote_protocol_packets[PACKET_Z0],
"Z0", "software-breakpoint",
set_remote_protocol_Z_software_bp_packet_cmd,
show_remote_protocol_Z_software_bp_packet_cmd,
set_remote_protocol_packet_cmd,
show_remote_protocol_packet_cmd,
&remote_set_cmdlist, &remote_show_cmdlist,
0);
add_packet_config_cmd (&remote_protocol_Z[Z_PACKET_HARDWARE_BP],
add_packet_config_cmd (&remote_protocol_packets[PACKET_Z1],
"Z1", "hardware-breakpoint",
set_remote_protocol_Z_hardware_bp_packet_cmd,
show_remote_protocol_Z_hardware_bp_packet_cmd,
set_remote_protocol_packet_cmd,
show_remote_protocol_packet_cmd,
&remote_set_cmdlist, &remote_show_cmdlist,
0);
add_packet_config_cmd (&remote_protocol_Z[Z_PACKET_WRITE_WP],
add_packet_config_cmd (&remote_protocol_packets[PACKET_Z2],
"Z2", "write-watchpoint",
set_remote_protocol_Z_write_wp_packet_cmd,
show_remote_protocol_Z_write_wp_packet_cmd,
set_remote_protocol_packet_cmd,
show_remote_protocol_packet_cmd,
&remote_set_cmdlist, &remote_show_cmdlist,
0);
add_packet_config_cmd (&remote_protocol_Z[Z_PACKET_READ_WP],
add_packet_config_cmd (&remote_protocol_packets[PACKET_Z3],
"Z3", "read-watchpoint",
set_remote_protocol_Z_read_wp_packet_cmd,
show_remote_protocol_Z_read_wp_packet_cmd,
set_remote_protocol_packet_cmd,
show_remote_protocol_packet_cmd,
&remote_set_cmdlist, &remote_show_cmdlist,
0);
add_packet_config_cmd (&remote_protocol_Z[Z_PACKET_ACCESS_WP],
add_packet_config_cmd (&remote_protocol_packets[PACKET_Z4],
"Z4", "access-watchpoint",
set_remote_protocol_Z_access_wp_packet_cmd,
show_remote_protocol_Z_access_wp_packet_cmd,
set_remote_protocol_packet_cmd,
show_remote_protocol_packet_cmd,
&remote_set_cmdlist, &remote_show_cmdlist,
0);
add_packet_config_cmd (&remote_protocol_qPart_auxv,
add_packet_config_cmd (&remote_protocol_packets[PACKET_qPart_auxv],
"qPart_auxv", "read-aux-vector",
set_remote_protocol_qPart_auxv_packet_cmd,
show_remote_protocol_qPart_auxv_packet_cmd,
set_remote_protocol_packet_cmd,
show_remote_protocol_packet_cmd,
&remote_set_cmdlist, &remote_show_cmdlist,
0);
add_packet_config_cmd (&remote_protocol_qGetTLSAddr,
add_packet_config_cmd (&remote_protocol_packets[PACKET_qGetTLSAddr],
"qGetTLSAddr", "get-thread-local-storage-address",
set_remote_protocol_qGetTLSAddr_packet_cmd,
show_remote_protocol_qGetTLSAddr_packet_cmd,
set_remote_protocol_packet_cmd,
show_remote_protocol_packet_cmd,
&remote_set_cmdlist, &remote_show_cmdlist,
0);