*
* ? What was the last sigval ? SNN (signal NN)
*
- * bBB..BB Set baud rate to BB..BB OK or BNN, then sets
- * baud rate
- *
* All commands and responses are sent with a packet which includes a
* checksum. A packet consists of
*
/* Convert ch from a hex digit to an int */
static int
-hex(ch)
- unsigned char ch;
+hex (unsigned char ch)
{
if (ch >= 'a' && ch <= 'f')
return ch-'a'+10;
return -1;
}
+static char remcomInBuffer[BUFMAX];
+static char remcomOutBuffer[BUFMAX];
+
/* scan for the sequence $<data>#<checksum> */
unsigned char *
-getpacket (buffer)
- unsigned char *buffer;
+getpacket (void)
{
+ unsigned char *buffer = &remcomInBuffer[0];
unsigned char checksum;
unsigned char xmitcsum;
int count;
count = 0;
/* now, read until a # or end of buffer is found */
- while (count < BUFMAX)
+ while (count < BUFMAX - 1)
{
ch = getDebugChar ();
if (ch == '$')
/* send the packet in buffer. */
static void
-putpacket(buffer)
- unsigned char *buffer;
+putpacket (unsigned char *buffer)
{
unsigned char checksum;
int count;
while (getDebugChar() != '+');
}
-static char remcomInBuffer[BUFMAX];
-static char remcomOutBuffer[BUFMAX];
-
/* Indicate to caller of mem2hex or hex2mem that there has been an
error. */
static volatile int mem_err = 0;
*/
static unsigned char *
-mem2hex(mem, buf, count, may_fault)
- unsigned char *mem;
- unsigned char *buf;
- int count;
- int may_fault;
+mem2hex (unsigned char *mem, unsigned char *buf, int count, int may_fault)
{
unsigned char ch;
* return a pointer to the character AFTER the last byte written */
static char *
-hex2mem(buf, mem, count, may_fault)
- unsigned char *buf;
- unsigned char *mem;
- int count;
- int may_fault;
+hex2mem (unsigned char *buf, unsigned char *mem, int count, int may_fault)
{
int i;
unsigned char ch;
/* Set up exception handlers for tracing and breakpoints */
void
-set_debug_traps()
+set_debug_traps (void)
{
struct hard_trap_info *ht;
");
static void
-set_mem_fault_trap(enable)
- int enable;
+set_mem_fault_trap (int enable)
{
extern void fltr_set_mem_err();
mem_err = 0;
/* Convert the SPARC hardware trap type code to a unix signal number. */
static int
-computeSignal(tt)
- int tt;
+computeSignal (int tt)
{
struct hard_trap_info *ht;
extern void breakinst();
static void
-handle_exception (registers)
- unsigned long *registers;
+handle_exception (unsigned long *registers)
{
int tt; /* Trap type */
int sigval;
{
remcomOutBuffer[0] = 0;
- ptr = getpacket(remcomInBuffer);
+ ptr = getpacket();
switch (*ptr++)
{
case '?':
asm ("call 0
nop ");
break;
-
-#if 0
-Disabled until we can unscrew this properly
-
- case 'b': /* bBB... Set baud rate to BB... */
- {
- int baudrate;
- extern void set_timer_3();
-
- if (!hexToInt(&ptr, &baudrate))
- {
- strcpy(remcomOutBuffer,"B01");
- break;
- }
-
- /* Convert baud rate to uart clock divider */
- switch (baudrate)
- {
- case 38400:
- baudrate = 16;
- break;
- case 19200:
- baudrate = 33;
- break;
- case 9600:
- baudrate = 65;
- break;
- default:
- strcpy(remcomOutBuffer,"B02");
- goto x1;
- }
-
- putpacket("OK"); /* Ack before changing speed */
- set_timer_3(baudrate); /* Set it */
- }
-x1: break;
-#endif
} /* switch */
/* reply to the request */
the debugger. */
void
-breakpoint()
+breakpoint (void)
{
if (!initialized)
return;