gdb_packet: Formatting cleanup

This commit is contained in:
dragonmux 2022-03-31 14:11:38 -04:00
parent e424859ecb
commit be83c2861e
No known key found for this signature in database
GPG Key ID: 9DA7A6AD14274BA4
2 changed files with 57 additions and 50 deletions

View File

@ -45,7 +45,8 @@ int gdb_getpacket(char *packet, int size)
*/ */
do { do {
packet[0] = gdb_if_getchar(); packet[0] = gdb_if_getchar();
if (packet[0]==0x04) return 1; if (packet[0] == 0x04)
return 1;
} while ((packet[0] != '$') && (packet[0] != REMOTE_SOM)); } while ((packet[0] != '$') && (packet[0] != REMOTE_SOM));
#if PC_HOSTED == 0 #if PC_HOSTED == 0
if (packet[0] == REMOTE_SOM) { if (packet[0] == REMOTE_SOM) {
@ -91,11 +92,13 @@ int gdb_getpacket(char *packet, int size)
#endif #endif
} while (packet[0] != '$'); } while (packet[0] != '$');
i = 0; csum = 0; i = 0;
csum = 0;
/* Capture packet data into buffer */ /* Capture packet data into buffer */
while ((c = gdb_if_getchar()) != '#') { while ((c = gdb_if_getchar()) != '#') {
if(i == size) break; /* Oh shit */ if (i == size) /* Oh shit */
break;
if (c == '$') { /* Restart capture */ if (c == '$') { /* Restart capture */
i = 0; i = 0;
@ -116,7 +119,8 @@ int gdb_getpacket(char *packet, int size)
recv_csum[2] = 0; recv_csum[2] = 0;
/* return packet if checksum matches */ /* return packet if checksum matches */
if(csum == strtol(recv_csum, NULL, 16)) break; if (csum == strtol(recv_csum, NULL, 16))
break;
/* get here if checksum fails */ /* get here if checksum fails */
gdb_if_putchar('-', 1); /* send nack */ gdb_if_putchar('-', 1); /* send nack */
@ -150,7 +154,8 @@ static void gdb_next_char(char c, unsigned char *csum)
gdb_if_putchar('}', 0); gdb_if_putchar('}', 0);
gdb_if_putchar(c ^ 0x20, 0); gdb_if_putchar(c ^ 0x20, 0);
*csum += '}' + (c ^ 0x20); *csum += '}' + (c ^ 0x20);
} else { }
else {
gdb_if_putchar(c, 0); gdb_if_putchar(c, 0);
*csum += c; *csum += c;
} }
@ -168,9 +173,9 @@ void gdb_putpacket2(const char *packet1, int size1,const char *packet2, int size
csum = 0; csum = 0;
gdb_if_putchar('$', 0); gdb_if_putchar('$', 0);
for(i = 0; i < size1; i++) for (i = 0; i < size1; ++i)
gdb_next_char(packet1[i], &csum); gdb_next_char(packet1[i], &csum);
for(i = 0; i < size2; i++) for (i = 0; i < size2; ++i)
gdb_next_char(packet2[i], &csum); gdb_next_char(packet2[i], &csum);
gdb_if_putchar('#', 0); gdb_if_putchar('#', 0);
@ -180,6 +185,7 @@ void gdb_putpacket2(const char *packet1, int size1,const char *packet2, int size
DEBUG_GDB_WIRE("\n"); DEBUG_GDB_WIRE("\n");
} while ((gdb_if_getchar_to(2000) != '+') && (tries++ < 3)); } while ((gdb_if_getchar_to(2000) != '+') && (tries++ < 3));
} }
void gdb_putpacket(const char *packet, int size) void gdb_putpacket(const char *packet, int size)
{ {
int i; int i;
@ -191,7 +197,7 @@ void gdb_putpacket(const char *packet, int size)
DEBUG_GDB_WIRE("%s : ", __func__); DEBUG_GDB_WIRE("%s : ", __func__);
csum = 0; csum = 0;
gdb_if_putchar('$', 0); gdb_if_putchar('$', 0);
for(i = 0; i < size; i++) for (i = 0; i < size; ++i)
gdb_next_char(packet[i], &csum); gdb_next_char(packet[i], &csum);
gdb_if_putchar('#', 0); gdb_if_putchar('#', 0);
snprintf(xmit_csum, sizeof(xmit_csum), "%02X", csum); snprintf(xmit_csum, sizeof(xmit_csum), "%02X", csum);
@ -216,12 +222,13 @@ void gdb_putpacket_f(const char *fmt, ...)
void gdb_out(const char *buf) void gdb_out(const char *buf)
{ {
char *hexdata;
int l = strlen(buf); int l = strlen(buf);
hexdata = alloca(2*l+1); char *hexdata = calloc(1, 2 * l + 1);
if (!hexdata)
return;
hexify(hexdata, buf, l); hexify(hexdata, buf, l);
gdb_putpacket2("O", 1, hexdata, 2 * l); gdb_putpacket2("O", 1, hexdata, 2 * l);
free(hexdata);
} }
void gdb_voutf(const char *fmt, va_list ap) void gdb_voutf(const char *fmt, va_list ap)