diff options
Diffstat (limited to 'gdb/common')
-rw-r--r-- | gdb/common/rsp-low.c | 18 | ||||
-rw-r--r-- | gdb/common/rsp-low.h | 21 |
2 files changed, 38 insertions, 1 deletions
diff --git a/gdb/common/rsp-low.c b/gdb/common/rsp-low.c index ecaa69a..b777716 100644 --- a/gdb/common/rsp-low.c +++ b/gdb/common/rsp-low.c @@ -27,7 +27,7 @@ #include "rsp-low.h" -/* Convert hex digit A to a number. */ +/* See rsp-low.h. */ int fromhex (int a) @@ -42,6 +42,8 @@ fromhex (int a) error (_("Reply contains invalid hex digit %d"), a); } +/* See rsp-low.h. */ + int tohex (int nib) { @@ -76,6 +78,8 @@ ishex (int ch, int *val) return 0; } +/* See rsp-low.h. */ + char * pack_nibble (char *buf, int nibble) { @@ -83,6 +87,8 @@ pack_nibble (char *buf, int nibble) return buf; } +/* See rsp-low.h. */ + char * pack_hex_byte (char *pkt, int byte) { @@ -91,6 +97,8 @@ pack_hex_byte (char *pkt, int byte) return pkt; } +/* See rsp-low.h. */ + char * unpack_varlen_hex (char *buff, /* packet to parse */ ULONGEST *result) @@ -108,6 +116,8 @@ unpack_varlen_hex (char *buff, /* packet to parse */ return buff; } +/* See rsp-low.h. */ + int hex2bin (const char *hex, gdb_byte *bin, int count) { @@ -127,6 +137,8 @@ hex2bin (const char *hex, gdb_byte *bin, int count) return i; } +/* See rsp-low.h. */ + int bin2hex (const gdb_byte *bin, char *hex, int count) { @@ -141,6 +153,8 @@ bin2hex (const gdb_byte *bin, char *hex, int count) return i; } +/* See rsp-low.h. */ + int remote_escape_output (const gdb_byte *buffer, int len, gdb_byte *out_buf, int *out_len, @@ -173,6 +187,8 @@ remote_escape_output (const gdb_byte *buffer, int len, return output_index; } +/* See rsp-low.h. */ + int remote_unescape_input (const gdb_byte *buffer, int len, gdb_byte *out_buf, int out_maxlen) diff --git a/gdb/common/rsp-low.h b/gdb/common/rsp-low.h index 9edf4dc..31162c6 100644 --- a/gdb/common/rsp-low.h +++ b/gdb/common/rsp-low.h @@ -28,14 +28,35 @@ extern int fromhex (int a); extern int tohex (int nib); +/* Write a character representing the low order four bits of NIBBLE in + hex to *BUF. Returns BUF+1. */ + extern char *pack_nibble (char *buf, int nibble); +/* Write the low byte of BYTE in hex to *BUF. Returns BUF+2. */ + extern char *pack_hex_byte (char *pkt, int byte); +/* Read hex digits from BUFF and convert to a number, which is stored + in RESULT. Reads until a non-hex digit is seen. Returns a pointer + to the terminating character. */ + extern char *unpack_varlen_hex (char *buff, ULONGEST *result); +/* HEX is a string of characters representing hexadecimal digits. + Convert pairs of hex digits to bytes and store sequentially into + BIN. COUNT is the maximum number of characters to convert. This + will convert fewer characters if the number of hex characters + actually seen is odd, or if HEX terminates before COUNT characters. + Returns the number of characters actually converted. */ + extern int hex2bin (const char *hex, gdb_byte *bin, int count); +/* Convert some bytes to a hexadecimal representation. BIN holds the + bytes to convert. COUNT says how many bytes to convert. The + resulting characters are stored in HEX, followed by a NUL + character. Returns the number of bytes actually converted. */ + extern int bin2hex (const gdb_byte *bin, char *hex, int count); /* Convert BUFFER, binary data at least LEN bytes long, into escaped |