Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-mn10300
* 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-mn10300: MN10300: gcc 4.6 vs am33 inline assembly MN10300: Deprecate gdbstub MN10300: Allow KGDB to use the MN10300 serial ports MN10300: Emulate single stepping in KGDB on MN10300 MN10300: Generalise kernel debugger kernel halt, reboot or power off hook KGDB: Notify GDB of machine halt, reboot or power off MN10300: Use KGDB MN10300: Create generic kernel debugger hooks MN10300: Create general kernel debugger cache flushing MN10300: Introduce a general config option for kernel debugger hooks MN10300: The icache invalidate functions should disable the icache first MN10300: gdbstub: Restrict single-stepping to non-preemptable non-SMP configs
This commit is contained in:
@@ -1093,3 +1093,33 @@ int gdbstub_state(struct kgdb_state *ks, char *cmd)
|
||||
put_packet(remcom_out_buffer);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* gdbstub_exit - Send an exit message to GDB
|
||||
* @status: The exit code to report.
|
||||
*/
|
||||
void gdbstub_exit(int status)
|
||||
{
|
||||
unsigned char checksum, ch, buffer[3];
|
||||
int loop;
|
||||
|
||||
buffer[0] = 'W';
|
||||
buffer[1] = hex_asc_hi(status);
|
||||
buffer[2] = hex_asc_lo(status);
|
||||
|
||||
dbg_io_ops->write_char('$');
|
||||
checksum = 0;
|
||||
|
||||
for (loop = 0; loop < 3; loop++) {
|
||||
ch = buffer[loop];
|
||||
checksum += ch;
|
||||
dbg_io_ops->write_char(ch);
|
||||
}
|
||||
|
||||
dbg_io_ops->write_char('#');
|
||||
dbg_io_ops->write_char(hex_asc_hi(checksum));
|
||||
dbg_io_ops->write_char(hex_asc_lo(checksum));
|
||||
|
||||
/* make sure the output is flushed, lest the bootloader clobber it */
|
||||
dbg_io_ops->flush();
|
||||
}
|
||||
|
Reference in New Issue
Block a user