+// SPDX-License-Identifier: GPL-2.0+
/*
* taken from gdb/remote.c
*
Free Software Foundation, Inc.
This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
+ */
/* *INDENT-OFF* */
/* Remote communication protocol.
reply OK for success
ENN for an error
- write reg Pn...=r... Write register n... with value r...,
+ write reg Pn...=r... Write register n... with value r...,
which contains two hex digits for each
byte in the register (target byte
order).
where only part of the data was
written).
- write mem XAA..AA,LLLL:XX..XX
- (binary) AA..AA is address,
- LLLL is number of bytes,
- XX..XX is binary data
- reply OK for success
- ENN for an error
+ write mem XAA..AA,LLLL:XX..XX
+ (binary) AA..AA is address,
+ LLLL is number of bytes,
+ XX..XX is binary data
+ reply OK for success
+ ENN for an error
continue cAA..AA AA..AA is address to resume
If AA..AA is omitted,
signal
last signal ? Reply the current reason for stopping.
- This is the same reply as is generated
+ This is the same reply as is generated
for step or cont : SAA where AA is the
signal number.
the 'N' packet may arrive spontaneously
whereas the 'qOffsets' is a query
initiated by the host debugger.
- or... OXX..XX XX..XX is hex encoding of ASCII data. This
+ or... OXX..XX XX..XX is hex encoding of ASCII data. This
can happen at any time while the
program is running and the debugger
should continue to wait for
remote restart RXX Restart the remote server
- extended ops ! Use the extended remote protocol.
+ extended ops ! Use the extended remote protocol.
Sticky -- only needs to be set once.
kill request k
&& remote_address_size < (sizeof (ULONGEST) * 8))
{
/* Only create a mask when that mask can safely be constructed
- in a ULONGEST variable. */
+ in a ULONGEST variable. */
ULONGEST mask = 1;
mask = (mask << remote_address_size) - 1;
addr &= mask;
*p = '\0';
/* We send target system values byte by byte, in increasing byte
- addresses, each byte encoded as two hex characters (or one
- binary character). */
+ addresses, each byte encoded as two hex characters (or one
+ binary character). */
if (remote_binary_download)
{
int escaped = 0;
if (i < todo)
{
/* Escape chars have filled up the buffer prematurely,
- and we have actually sent fewer bytes than planned.
- Fix-up the length field of the packet. */
+ and we have actually sent fewer bytes than planned.
+ Fix-up the length field of the packet. */
/* FIXME: will fail if new len is a shorter string than
- old len. */
+ old len. */
plen += hexnumstr ((char *)plen, (ULONGEST) i);
*plen++ = ':';
}
/* Increment by i, not by todo, in case escape chars
- caused us to send fewer bytes than we'd planned. */
+ caused us to send fewer bytes than we'd planned. */
myaddr += i;
memaddr += i;
len -= i;
#if 0
/* This is wrong. If doing a long backtrace, the user should be
- able to get out next time we call QUIT, without anything as
- violent as interrupt_query. If we want to provide a way out of
- here without getting to the next QUIT, it should be based on
- hitting ^C twice as in remote_wait. */
+ able to get out next time we call QUIT, without anything as
+ violent as interrupt_query. If we want to provide a way out of
+ here without getting to the next QUIT, it should be based on
+ hitting ^C twice as in remote_wait. */
if (quit_flag)
{
quit_flag = 0;
for (tries = 1; tries <= MAX_TRIES; tries++)
{
/* This can loop forever if the remote side sends us characters
- continuously, but if it pauses, we'll get a zero from readchar
- because of timeout. Then we'll count that as a retry. */
+ continuously, but if it pauses, we'll get a zero from readchar
+ because of timeout. Then we'll count that as a retry. */
/* Note that we will only wait forever prior to the start of a packet.
- After that, we expect characters to arrive at a brisk pace. They
- should show up within remote_timeout intervals. */
+ After that, we expect characters to arrive at a brisk pace. They
+ should show up within remote_timeout intervals. */
do
{