frv: use the common ascii hex helpers
PATCH 8/12 frv: use the common ascii hex helpers
Signed-off-by Harvey Harrison <[email protected]>
--- arch/frv/kernel/gdb-stub.c | 88 ++++++++++++++++++-------------------------- 1 files changed, 36 insertions(+), 52 deletions(-)
arch/frv/kernel/gdb-stub.c +36 -52
@@ -182,8 +182,6 @@ extern volatile u32 __attribute__((section(".bss"))) gdbstub_trace_through_excepstatic char input_buffer[BUFMAX ];static char output_buffer[BUFMAX ]; -static const char hexchars[] ="0123456789abcdef" ; -static const char *regnames[] = {"PSR " ,"ISR " ,"CCR " ,"CCCR" ,"LR " ,"LCR " ,"PC " ,"_stt" ,
@@ -383,8 +381,8 @@ static int gdbstub_send_packet(char *buffer) }gdbstub_tx_char ('#' ); -gdbstub_tx_char (hexchars[checksum >>4 ]); -gdbstub_tx_char (hexchars[checksum &0xf ]); +gdbstub_tx_char (hex_asc_hi (checksum)); +gdbstub_tx_char (hex_asc_lo (checksum)); } while (gdbstub_rx_char(&ch,0),#ifdef GDBSTUB_DEBUG_PROTOCOL
@@ -674,8 +672,7 @@ static unsigned char *mem2hex(const void *_mem, char *buf, int count, int may_faif ((uint32_t )mem&1 && count>=1 ) {if (!gdbstub_read_byte (mem,ch))return NULL ; - *buf++ = hexchars[ch[0 ] >>4 ]; - *buf++ = hexchars[ch[0 ] &0xf ]; + buf =pack_hex_byte (buf, ch[0 ]); mem++; count--; }
@@ -683,10 +680,8 @@ static unsigned char *mem2hex(const void *_mem, char *buf, int count, int may_faif ((uint32_t )mem&3 && count>=2 ) {if (!gdbstub_read_word (mem,(uint16_t *)ch))return NULL ; - *buf++ = hexchars[ch[0 ] >>4 ]; - *buf++ = hexchars[ch[0 ] &0xf ]; - *buf++ = hexchars[ch[1 ] >>4 ]; - *buf++ = hexchars[ch[1 ] &0xf ]; + buf =pack_hex_byte (buf, ch[0 ]); + buf =pack_hex_byte (buf, ch[1 ]); mem +=2 ; count -=2 ; }
@@ -694,14 +689,10 @@ static unsigned char *mem2hex(const void *_mem, char *buf, int count, int may_fawhile (count>=4 ) {if (!gdbstub_read_dword (mem,(uint32_t *)ch))return NULL ; - *buf++ = hexchars[ch[0 ] >>4 ]; - *buf++ = hexchars[ch[0 ] &0xf ]; - *buf++ = hexchars[ch[1 ] >>4 ]; - *buf++ = hexchars[ch[1 ] &0xf ]; - *buf++ = hexchars[ch[2 ] >>4 ]; - *buf++ = hexchars[ch[2 ] &0xf ]; - *buf++ = hexchars[ch[3 ] >>4 ]; - *buf++ = hexchars[ch[3 ] &0xf ]; + buf =pack_hex_byte (buf, ch[0 ]); + buf =pack_hex_byte (buf, ch[1 ]); + buf =pack_hex_byte (buf, ch[2 ]); + buf =pack_hex_byte (buf, ch[3 ]); mem +=4 ; count -=4 ; }
@@ -709,10 +700,8 @@ static unsigned char *mem2hex(const void *_mem, char *buf, int count, int may_faif (count>=2 ) {if (!gdbstub_read_word (mem,(uint16_t *)ch))return NULL ; - *buf++ = hexchars[ch[0 ] >>4 ]; - *buf++ = hexchars[ch[0 ] &0xf ]; - *buf++ = hexchars[ch[1 ] >>4 ]; - *buf++ = hexchars[ch[1 ] &0xf ]; + buf =pack_hex_byte (buf, ch[0 ]); + buf =pack_hex_byte (buf, ch[1 ]); mem +=2 ; count -=2 ; }
@@ -720,8 +709,7 @@ static unsigned char *mem2hex(const void *_mem, char *buf, int count, int may_faif (count>=1 ) {if (!gdbstub_read_byte (mem,ch))return NULL ; - *buf++ = hexchars[ch[0 ] >>4 ]; - *buf++ = hexchars[ch[0 ] &0xf ]; + buf =pack_hex_byte (buf, ch[0 ]); } *buf =0 ;
@@ -1471,22 +1459,22 @@ void gdbstub(int sigval) *ptr++ ='O' ; ptr =mem2hex (title, ptr,sizeof (title) -1 ,0 ); - hx = hexchars[(brr &0xf0000000 ) >>28 ]; - *ptr++ = hexchars[hx >>4 ]; *ptr++ = hexchars[hx &0xf ]; - hx = hexchars[(brr &0x0f000000 ) >>24 ]; - *ptr++ = hexchars[hx >>4 ]; *ptr++ = hexchars[hx &0xf ]; - hx = hexchars[(brr &0x00f00000 ) >>20 ]; - *ptr++ = hexchars[hx >>4 ]; *ptr++ = hexchars[hx &0xf ]; - hx = hexchars[(brr &0x000f0000 ) >>16 ]; - *ptr++ = hexchars[hx >>4 ]; *ptr++ = hexchars[hx &0xf ]; - hx = hexchars[(brr &0x0000f000 ) >>12 ]; - *ptr++ = hexchars[hx >>4 ]; *ptr++ = hexchars[hx &0xf ]; - hx = hexchars[(brr &0x00000f00 ) >>8 ]; - *ptr++ = hexchars[hx >>4 ]; *ptr++ = hexchars[hx &0xf ]; - hx = hexchars[(brr &0x000000f0 ) >>4 ]; - *ptr++ = hexchars[hx >>4 ]; *ptr++ = hexchars[hx &0xf ]; - hx = hexchars[(brr &0x0000000f )]; - *ptr++ = hexchars[hx >>4 ]; *ptr++ = hexchars[hx &0xf ]; + hx =hex_asc_hi (brr >>24 ); + ptr =pack_hex_byte (ptr, hx); + hx =hex_asc_lo (brr >>24 ); + ptr =pack_hex_byte (ptr, hx); + hx =hex_asc_hi (brr >>16 ); + ptr =pack_hex_byte (ptr, hx); + hx =hex_asc_lo (brr >>16 ); + ptr =pack_hex_byte (ptr, hx); + hx =hex_asc_hi (brr >>8 ); + ptr =pack_hex_byte (ptr, hx); + hx =hex_asc_lo (brr >>8 ); + ptr =pack_hex_byte (ptr, hx); + hx =hex_asc_hi (brr); + ptr =pack_hex_byte (ptr, hx); + hx =hex_asc_lo (brr); + ptr =pack_hex_byte (ptr, hx); ptr =mem2hex (crlf, ptr,sizeof (crlf) -1 ,0 ); *ptr =0 ;
@@ -1500,12 +1488,10 @@ void gdbstub(int sigval)/* Send trap type (converted to signal) */ *ptr++ ='T' ; - *ptr++ = hexchars[sigval >>4 ]; - *ptr++ = hexchars[sigval &0xf ]; + ptr =pack_hex_byte (ptr, sigval);/* Send Error PC */ - *ptr++ = hexchars[GDB_REG_PC >>4 ]; - *ptr++ = hexchars[GDB_REG_PC &0xf ]; + ptr =pack_hex_byte (ptr,GDB_REG_PC ); *ptr++ =':' ; ptr =mem2hex (&__debug_frame->pc, ptr,4 ,0 ); *ptr++ =';' ;
@@ -1513,8 +1499,7 @@ void gdbstub(int sigval)/* * Send frame pointer */ - *ptr++ = hexchars[GDB_REG_FP >>4 ]; - *ptr++ = hexchars[GDB_REG_FP &0xf ]; + ptr =pack_hex_byte (ptr,GDB_REG_FP ); *ptr++ =':' ; ptr =mem2hex (&__debug_frame->fp, ptr,4 ,0 ); *ptr++ =';' ;
@@ -1522,8 +1507,7 @@ void gdbstub(int sigval)/* * Send stack pointer */ - *ptr++ = hexchars[GDB_REG_SP >>4 ]; - *ptr++ = hexchars[GDB_REG_SP &0xf ]; + ptr =pack_hex_byte (ptr,GDB_REG_SP ); *ptr++ =':' ; ptr =mem2hex (&__debug_frame->sp, ptr,4 ,0 ); *ptr++ =';' ;
@@ -1548,8 +1532,8 @@ void gdbstub(int sigval)/* request repeat of last signal number */ case '?' : output_buffer[0 ] ='S' ; - output_buffer[1 ] = hexchars[sigval >>4 ]; - output_buffer[2 ] = hexchars[sigval &0xf ]; + output_buffer[1 ] =hex_asc_hi (sigval); + output_buffer[2 ] =hex_asc_lo (sigval); output_buffer[3 ] =0 ;break ;
@@ -2059,8 +2043,8 @@ void gdbstub_exit(int status) }gdbstub_tx_char ('#' ); -gdbstub_tx_char (hexchars[checksum >>4 ]); -gdbstub_tx_char (hexchars[checksum &0xf ]); +gdbstub_tx_char (hex_asc_hi (checksum)); +gdbstub_tx_char (hex_asc_lo (checksum));/* make sure the output is flushed, or else RedBoot might clobber it */ gdbstub_tx_char ('-' );
Signature · 1 line
1.5.5.1.404.g981f6