* dcache.c (dcache_info): Output a cache line's state vector so it
lines up under the data vector. * dcache.c (dcache_read_line): New function. (dcache_peek_byte): Use it. (dcache_alloc): Return NULL if write of reclaimed cache line fails. (dcache_peek_byte, dcache_poke_byte): Return failure if dcache_alloc() returns a NULL data block pointer. (dcache_xfer_memory): Don't force writeback unless we were writing. * monitor.c (monitor_expect): Change places where immediate_quit is set to 1 or 0 to increments and decrements respectively. This allows such changes to nest properly. * ocd.c (ocd_start_remote): Likewise. * remote-adapt.c (expect): Likewise. * remote-array.c (expect): Likewise. * remote-eb.c (expect): Likewise. * remote-e7000.c (e7000_start_remote): Likewise. * remote-mips.c (mips_expect_timeout, mips_getstring): Likewise. * remote-nrom.c (expect): Likewise. * remote-os9k.c (expect): Likewise. * remote-sds.c (sds_start_remote): Likewise. * remote-st.c (expect): Likewise. * remote-utils.c (sr_expect): Likewise. * remote.c (remote_start_remote): Likewise. * tracepoint.c (read_actions): Likewise. * remote-mips.c (mips_getstring): Balance changes to immediate_quit.
This commit is contained in:
parent
76b0a8c0ed
commit
8edbea78dc
16 changed files with 149 additions and 84 deletions
|
@ -1,3 +1,34 @@
|
||||||
|
2000-08-31 J.T. Conklin <jtc@redback.com>
|
||||||
|
|
||||||
|
* dcache.c (dcache_info): Output a cache line's state vector so it
|
||||||
|
lines up under the data vector.
|
||||||
|
|
||||||
|
* dcache.c (dcache_read_line): New function.
|
||||||
|
(dcache_peek_byte): Use it.
|
||||||
|
(dcache_alloc): Return NULL if write of reclaimed cache line fails.
|
||||||
|
(dcache_peek_byte, dcache_poke_byte): Return failure if
|
||||||
|
dcache_alloc() returns a NULL data block pointer.
|
||||||
|
(dcache_xfer_memory): Don't force writeback unless we were writing.
|
||||||
|
|
||||||
|
* monitor.c (monitor_expect): Change places where immediate_quit
|
||||||
|
is set to 1 or 0 to increments and decrements respectively. This
|
||||||
|
allows such changes to nest properly.
|
||||||
|
* ocd.c (ocd_start_remote): Likewise.
|
||||||
|
* remote-adapt.c (expect): Likewise.
|
||||||
|
* remote-array.c (expect): Likewise.
|
||||||
|
* remote-eb.c (expect): Likewise.
|
||||||
|
* remote-e7000.c (e7000_start_remote): Likewise.
|
||||||
|
* remote-mips.c (mips_expect_timeout, mips_getstring): Likewise.
|
||||||
|
* remote-nrom.c (expect): Likewise.
|
||||||
|
* remote-os9k.c (expect): Likewise.
|
||||||
|
* remote-sds.c (sds_start_remote): Likewise.
|
||||||
|
* remote-st.c (expect): Likewise.
|
||||||
|
* remote-utils.c (sr_expect): Likewise.
|
||||||
|
* remote.c (remote_start_remote): Likewise.
|
||||||
|
* tracepoint.c (read_actions): Likewise.
|
||||||
|
|
||||||
|
* remote-mips.c (mips_getstring): Balance changes to immediate_quit.
|
||||||
|
|
||||||
2000-08-31 David Anderson <davea@sgi.com>
|
2000-08-31 David Anderson <davea@sgi.com>
|
||||||
|
|
||||||
* MAINTAINERS: Add myself to write-after-approval list.
|
* MAINTAINERS: Add myself to write-after-approval list.
|
||||||
|
|
141
gdb/dcache.c
141
gdb/dcache.c
|
@ -149,17 +149,19 @@ struct dcache_struct
|
||||||
int cache_has_stuff;
|
int cache_has_stuff;
|
||||||
};
|
};
|
||||||
|
|
||||||
static int dcache_poke_byte (DCACHE * dcache, CORE_ADDR addr, char *ptr);
|
static int dcache_poke_byte (DCACHE *dcache, CORE_ADDR addr, char *ptr);
|
||||||
|
|
||||||
static int dcache_peek_byte (DCACHE * dcache, CORE_ADDR addr, char *ptr);
|
static int dcache_peek_byte (DCACHE *dcache, CORE_ADDR addr, char *ptr);
|
||||||
|
|
||||||
static struct dcache_block *dcache_hit (DCACHE * dcache, CORE_ADDR addr);
|
static struct dcache_block *dcache_hit (DCACHE *dcache, CORE_ADDR addr);
|
||||||
|
|
||||||
static int dcache_write_line (DCACHE * dcache, struct dcache_block *db);
|
static int dcache_write_line (DCACHE *dcache, struct dcache_block *db);
|
||||||
|
|
||||||
static struct dcache_block *dcache_alloc (DCACHE * dcache, CORE_ADDR addr);
|
static int dcache_read_line (DCACHE *dcache, struct dcache_block *db);
|
||||||
|
|
||||||
static int dcache_writeback (DCACHE * dcache);
|
static struct dcache_block *dcache_alloc (DCACHE *dcache, CORE_ADDR addr);
|
||||||
|
|
||||||
|
static int dcache_writeback (DCACHE *dcache);
|
||||||
|
|
||||||
static void dcache_info (char *exp, int tty);
|
static void dcache_info (char *exp, int tty);
|
||||||
|
|
||||||
|
@ -231,7 +233,7 @@ dcache_write_line (DCACHE *dcache, register struct dcache_block *db)
|
||||||
{
|
{
|
||||||
int s;
|
int s;
|
||||||
int e;
|
int e;
|
||||||
s = 0;
|
|
||||||
if (db->anydirty)
|
if (db->anydirty)
|
||||||
{
|
{
|
||||||
for (s = 0; s < LINE_SIZE; s++)
|
for (s = 0; s < LINE_SIZE; s++)
|
||||||
|
@ -266,6 +268,44 @@ dcache_write_line (DCACHE *dcache, register struct dcache_block *db)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Read cache line */
|
||||||
|
static int
|
||||||
|
dcache_read_line (DCACHE *dcache, struct dcache_block *db)
|
||||||
|
{
|
||||||
|
CORE_ADDR memaddr;
|
||||||
|
char *myaddr;
|
||||||
|
int len;
|
||||||
|
int res;
|
||||||
|
|
||||||
|
/* If there are any dirty bytes in the line, it must be written
|
||||||
|
before a new line can be read */
|
||||||
|
if (db->anydirty)
|
||||||
|
{
|
||||||
|
if (!dcache_write_line (dcache, db))
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
len = LINE_SIZE;
|
||||||
|
memaddr = db->addr;
|
||||||
|
myaddr = db->data;
|
||||||
|
|
||||||
|
while (len > 0)
|
||||||
|
{
|
||||||
|
res = (*dcache->read_memory) (memaddr, myaddr, len);
|
||||||
|
if (res == 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
memaddr += res;
|
||||||
|
myaddr += res;
|
||||||
|
len -= res;
|
||||||
|
}
|
||||||
|
|
||||||
|
memset (db->state, ENTRY_OK, sizeof (db->data));
|
||||||
|
db->anydirty = 0;
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
/* Get a free cache block, put or keep it on the valid list,
|
/* Get a free cache block, put or keep it on the valid list,
|
||||||
and return its address. */
|
and return its address. */
|
||||||
|
|
||||||
|
@ -287,9 +327,11 @@ dcache_alloc (DCACHE *dcache, CORE_ADDR addr)
|
||||||
{
|
{
|
||||||
/* Nothing left on free list, so grab one from the valid list */
|
/* Nothing left on free list, so grab one from the valid list */
|
||||||
db = dcache->valid_head;
|
db = dcache->valid_head;
|
||||||
dcache->valid_head = db->p;
|
|
||||||
|
|
||||||
dcache_write_line (dcache, db);
|
if (!dcache_write_line (dcache, db))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
dcache->valid_head = db->p;
|
||||||
}
|
}
|
||||||
|
|
||||||
db->addr = MASK(addr);
|
db->addr = MASK(addr);
|
||||||
|
@ -308,48 +350,6 @@ dcache_alloc (DCACHE *dcache, CORE_ADDR addr)
|
||||||
return db;
|
return db;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Using the data cache DCACHE return the contents of the byte at
|
|
||||||
address ADDR in the remote machine.
|
|
||||||
|
|
||||||
Returns 0 on error. */
|
|
||||||
|
|
||||||
static int
|
|
||||||
dcache_peek_byte (DCACHE *dcache, CORE_ADDR addr, char *ptr)
|
|
||||||
{
|
|
||||||
register struct dcache_block *db = dcache_hit (dcache, addr);
|
|
||||||
int ok = 1;
|
|
||||||
int done = 0;
|
|
||||||
if (db == 0
|
|
||||||
|| db->state[XFORM (addr)] == ENTRY_BAD)
|
|
||||||
{
|
|
||||||
if (db)
|
|
||||||
{
|
|
||||||
dcache_write_line (dcache, db);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
db = dcache_alloc (dcache, addr);
|
|
||||||
|
|
||||||
immediate_quit++;
|
|
||||||
while (done < LINE_SIZE)
|
|
||||||
{
|
|
||||||
int try =
|
|
||||||
(*dcache->read_memory)
|
|
||||||
(db->addr + done,
|
|
||||||
db->data + done,
|
|
||||||
LINE_SIZE - done);
|
|
||||||
if (try == 0)
|
|
||||||
return 0;
|
|
||||||
done += try;
|
|
||||||
}
|
|
||||||
immediate_quit--;
|
|
||||||
|
|
||||||
memset (db->state, ENTRY_OK, sizeof (db->data));
|
|
||||||
db->anydirty = 0;
|
|
||||||
}
|
|
||||||
*ptr = db->data[XFORM (addr)];
|
|
||||||
return ok;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Writeback any dirty lines to the remote. */
|
/* Writeback any dirty lines to the remote. */
|
||||||
static int
|
static int
|
||||||
dcache_writeback (DCACHE *dcache)
|
dcache_writeback (DCACHE *dcache)
|
||||||
|
@ -368,6 +368,34 @@ dcache_writeback (DCACHE *dcache)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Using the data cache DCACHE return the contents of the byte at
|
||||||
|
address ADDR in the remote machine.
|
||||||
|
|
||||||
|
Returns 0 on error. */
|
||||||
|
|
||||||
|
static int
|
||||||
|
dcache_peek_byte (DCACHE *dcache, CORE_ADDR addr, char *ptr)
|
||||||
|
{
|
||||||
|
register struct dcache_block *db = dcache_hit (dcache, addr);
|
||||||
|
|
||||||
|
if (!db)
|
||||||
|
{
|
||||||
|
db = dcache_alloc (dcache, addr);
|
||||||
|
if (!db)
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (db->state[XFORM (addr)] == ENTRY_BAD)
|
||||||
|
{
|
||||||
|
if (!dcache_read_line(dcache, db))
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
*ptr = db->data[XFORM (addr)];
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Write the byte at PTR into ADDR in the data cache.
|
/* Write the byte at PTR into ADDR in the data cache.
|
||||||
Return zero on write error.
|
Return zero on write error.
|
||||||
*/
|
*/
|
||||||
|
@ -380,6 +408,8 @@ dcache_poke_byte (DCACHE *dcache, CORE_ADDR addr, char *ptr)
|
||||||
if (!db)
|
if (!db)
|
||||||
{
|
{
|
||||||
db = dcache_alloc (dcache, addr);
|
db = dcache_alloc (dcache, addr);
|
||||||
|
if (!db)
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
db->data[XFORM (addr)] = *ptr;
|
db->data[XFORM (addr)] = *ptr;
|
||||||
|
@ -435,7 +465,7 @@ dcache_xfer_memory (DCACHE *dcache, CORE_ADDR memaddr, char *myaddr, int len,
|
||||||
|
|
||||||
if (dcache_enabled_p)
|
if (dcache_enabled_p)
|
||||||
{
|
{
|
||||||
int (*xfunc) (DCACHE * dcache, CORE_ADDR addr, char *ptr);
|
int (*xfunc) (DCACHE *dcache, CORE_ADDR addr, char *ptr);
|
||||||
xfunc = should_write ? dcache_poke_byte : dcache_peek_byte;
|
xfunc = should_write ? dcache_poke_byte : dcache_peek_byte;
|
||||||
|
|
||||||
for (i = 0; i < len; i++)
|
for (i = 0; i < len; i++)
|
||||||
|
@ -443,8 +473,11 @@ dcache_xfer_memory (DCACHE *dcache, CORE_ADDR memaddr, char *myaddr, int len,
|
||||||
if (!xfunc (dcache, memaddr + i, myaddr + i))
|
if (!xfunc (dcache, memaddr + i, myaddr + i))
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (should_write)
|
||||||
|
dcache_writeback (dcache);
|
||||||
|
|
||||||
dcache->cache_has_stuff = 1;
|
dcache->cache_has_stuff = 1;
|
||||||
dcache_writeback (dcache);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -487,7 +520,7 @@ dcache_info (char *exp, int tty)
|
||||||
printf_filtered ("\n");
|
printf_filtered ("\n");
|
||||||
|
|
||||||
for (j = 0; j < LINE_SIZE; j++)
|
for (j = 0; j < LINE_SIZE; j++)
|
||||||
printf_filtered (" %2x", p->state[j]);
|
printf_filtered ("%2x", p->state[j]);
|
||||||
printf_filtered ("\n");
|
printf_filtered ("\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -521,7 +521,7 @@ monitor_expect (char *string, char *buf, int buflen)
|
||||||
fprintf_unfiltered (gdb_stdlog, "MON Expecting '%s'\n", safe_string);
|
fprintf_unfiltered (gdb_stdlog, "MON Expecting '%s'\n", safe_string);
|
||||||
}
|
}
|
||||||
|
|
||||||
immediate_quit = 1;
|
immediate_quit++;
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
if (buf)
|
if (buf)
|
||||||
|
@ -529,7 +529,7 @@ monitor_expect (char *string, char *buf, int buflen)
|
||||||
if (buflen < 2)
|
if (buflen < 2)
|
||||||
{
|
{
|
||||||
*buf = '\000';
|
*buf = '\000';
|
||||||
immediate_quit = 0;
|
immediate_quit--;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -549,7 +549,7 @@ monitor_expect (char *string, char *buf, int buflen)
|
||||||
p++;
|
p++;
|
||||||
if (*p == '\0')
|
if (*p == '\0')
|
||||||
{
|
{
|
||||||
immediate_quit = 0;
|
immediate_quit--;
|
||||||
|
|
||||||
if (buf)
|
if (buf)
|
||||||
{
|
{
|
||||||
|
|
|
@ -181,7 +181,7 @@ ocd_start_remote (PTR dummy)
|
||||||
|
|
||||||
target_type = *(enum ocd_target_type *) dummy;
|
target_type = *(enum ocd_target_type *) dummy;
|
||||||
|
|
||||||
immediate_quit = 1; /* Allow user to interrupt it */
|
immediate_quit++; /* Allow user to interrupt it */
|
||||||
|
|
||||||
SERIAL_SEND_BREAK (ocd_desc); /* Wake up the wiggler */
|
SERIAL_SEND_BREAK (ocd_desc); /* Wake up the wiggler */
|
||||||
|
|
||||||
|
@ -243,7 +243,7 @@ ocd_start_remote (PTR dummy)
|
||||||
ocd_error ("OCD_SET_CTL_FLAGS:", error_code);
|
ocd_error ("OCD_SET_CTL_FLAGS:", error_code);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
immediate_quit = 0;
|
immediate_quit--;
|
||||||
|
|
||||||
/* This is really the job of start_remote however, that makes an assumption
|
/* This is really the job of start_remote however, that makes an assumption
|
||||||
that the target is about to print out a status message of some sort. That
|
that the target is about to print out a status message of some sort. That
|
||||||
|
|
|
@ -201,7 +201,7 @@ expect (char *string)
|
||||||
char *p = string;
|
char *p = string;
|
||||||
|
|
||||||
fflush (adapt_stream);
|
fflush (adapt_stream);
|
||||||
immediate_quit = 1;
|
immediate_quit++;
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
if (readchar () == *p)
|
if (readchar () == *p)
|
||||||
|
@ -209,7 +209,7 @@ expect (char *string)
|
||||||
p++;
|
p++;
|
||||||
if (*p == '\0')
|
if (*p == '\0')
|
||||||
{
|
{
|
||||||
immediate_quit = 0;
|
immediate_quit--;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -363,7 +363,7 @@ expect (char *string, int discard)
|
||||||
|
|
||||||
debuglogs (1, "Expecting \"%s\".", string);
|
debuglogs (1, "Expecting \"%s\".", string);
|
||||||
|
|
||||||
immediate_quit = 1;
|
immediate_quit++;
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
c = readchar (timeout);
|
c = readchar (timeout);
|
||||||
|
@ -373,7 +373,7 @@ expect (char *string, int discard)
|
||||||
{
|
{
|
||||||
if (*p == '\0')
|
if (*p == '\0')
|
||||||
{
|
{
|
||||||
immediate_quit = 0;
|
immediate_quit--;
|
||||||
debuglogs (4, "Matched");
|
debuglogs (4, "Matched");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -569,7 +569,7 @@ e7000_start_remote (void *dummy)
|
||||||
int try;
|
int try;
|
||||||
int quit_trying;
|
int quit_trying;
|
||||||
|
|
||||||
immediate_quit = 1; /* Allow user to interrupt it */
|
immediate_quit++; /* Allow user to interrupt it */
|
||||||
|
|
||||||
/* Hello? Are you there? */
|
/* Hello? Are you there? */
|
||||||
sync = 0;
|
sync = 0;
|
||||||
|
@ -635,7 +635,7 @@ e7000_start_remote (void *dummy)
|
||||||
puts_e7000debug ("b -\r"); /* Clear breakpoints */
|
puts_e7000debug ("b -\r"); /* Clear breakpoints */
|
||||||
expect_prompt ();
|
expect_prompt ();
|
||||||
|
|
||||||
immediate_quit = 0;
|
immediate_quit--;
|
||||||
|
|
||||||
/* This is really the job of start_remote however, that makes an assumption
|
/* This is really the job of start_remote however, that makes an assumption
|
||||||
that the target is about to print out a status message of some sort. That
|
that the target is about to print out a status message of some sort. That
|
||||||
|
|
|
@ -100,7 +100,7 @@ expect (char *string)
|
||||||
{
|
{
|
||||||
char *p = string;
|
char *p = string;
|
||||||
|
|
||||||
immediate_quit = 1;
|
immediate_quit++;
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
if (readchar () == *p)
|
if (readchar () == *p)
|
||||||
|
@ -108,7 +108,7 @@ expect (char *string)
|
||||||
p++;
|
p++;
|
||||||
if (*p == '\0')
|
if (*p == '\0')
|
||||||
{
|
{
|
||||||
immediate_quit = 0;
|
immediate_quit--;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -551,7 +551,7 @@ mips_expect_timeout (const char *string, int timeout)
|
||||||
fprintf_unfiltered (gdb_stdlog, "\", got \"");
|
fprintf_unfiltered (gdb_stdlog, "\", got \"");
|
||||||
}
|
}
|
||||||
|
|
||||||
immediate_quit = 1;
|
immediate_quit++;
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
int c;
|
int c;
|
||||||
|
@ -575,7 +575,7 @@ mips_expect_timeout (const char *string, int timeout)
|
||||||
{
|
{
|
||||||
if (*p == '\0')
|
if (*p == '\0')
|
||||||
{
|
{
|
||||||
immediate_quit = 0;
|
immediate_quit--;
|
||||||
if (remote_debug)
|
if (remote_debug)
|
||||||
fprintf_unfiltered (gdb_stdlog, "\": OK\n");
|
fprintf_unfiltered (gdb_stdlog, "\": OK\n");
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -609,7 +609,7 @@ mips_getstring (char *string, int n)
|
||||||
char *p = string;
|
char *p = string;
|
||||||
int c;
|
int c;
|
||||||
|
|
||||||
immediate_quit = 1;
|
immediate_quit++;
|
||||||
while (n > 0)
|
while (n > 0)
|
||||||
{
|
{
|
||||||
c = SERIAL_READCHAR (mips_desc, 2);
|
c = SERIAL_READCHAR (mips_desc, 2);
|
||||||
|
@ -618,6 +618,7 @@ mips_getstring (char *string, int n)
|
||||||
{
|
{
|
||||||
fprintf_unfiltered (gdb_stderr,
|
fprintf_unfiltered (gdb_stderr,
|
||||||
"Failed to read %d characters from target (TIMEOUT)\n", n);
|
"Failed to read %d characters from target (TIMEOUT)\n", n);
|
||||||
|
immediate_quit--;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -625,6 +626,7 @@ mips_getstring (char *string, int n)
|
||||||
n--;
|
n--;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
immediate_quit--;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,7 @@ expect (char *string)
|
||||||
char *p = string;
|
char *p = string;
|
||||||
int c;
|
int c;
|
||||||
|
|
||||||
immediate_quit = 1;
|
immediate_quit++;
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
|
@ -76,8 +76,7 @@ expect (char *string)
|
||||||
{
|
{
|
||||||
if (*p == '\0')
|
if (*p == '\0')
|
||||||
{
|
{
|
||||||
immediate_quit = 0;
|
immediate_quit--;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -143,7 +143,7 @@ expect (char *string, int discard)
|
||||||
if (sr_get_debug ())
|
if (sr_get_debug ())
|
||||||
printf ("Expecting \"%s\"\n", string);
|
printf ("Expecting \"%s\"\n", string);
|
||||||
|
|
||||||
immediate_quit = 1;
|
immediate_quit++;
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
c = readchar (timeout);
|
c = readchar (timeout);
|
||||||
|
@ -153,7 +153,7 @@ expect (char *string, int discard)
|
||||||
{
|
{
|
||||||
if (*p == '\0')
|
if (*p == '\0')
|
||||||
{
|
{
|
||||||
immediate_quit = 0;
|
immediate_quit--;
|
||||||
if (sr_get_debug ())
|
if (sr_get_debug ())
|
||||||
printf ("\nMatched\n");
|
printf ("\nMatched\n");
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -163,7 +163,7 @@ sds_start_remote (PTR dummy)
|
||||||
char c;
|
char c;
|
||||||
unsigned char buf[200];
|
unsigned char buf[200];
|
||||||
|
|
||||||
immediate_quit = 1; /* Allow user to interrupt it */
|
immediate_quit++; /* Allow user to interrupt it */
|
||||||
|
|
||||||
/* Ack any packet which the remote side has already sent. */
|
/* Ack any packet which the remote side has already sent. */
|
||||||
SERIAL_WRITE (sds_desc, "{#*\r\n", 5);
|
SERIAL_WRITE (sds_desc, "{#*\r\n", 5);
|
||||||
|
@ -181,7 +181,7 @@ sds_start_remote (PTR dummy)
|
||||||
buf[0] = 0;
|
buf[0] = 0;
|
||||||
sds_send (buf, 1);
|
sds_send (buf, 1);
|
||||||
|
|
||||||
immediate_quit = 0;
|
immediate_quit--;
|
||||||
|
|
||||||
start_remote (); /* Initialize gdb process mechanisms */
|
start_remote (); /* Initialize gdb process mechanisms */
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
@ -117,7 +117,7 @@ expect (char *string, int discard)
|
||||||
char *p = string;
|
char *p = string;
|
||||||
int c;
|
int c;
|
||||||
|
|
||||||
immediate_quit = 1;
|
immediate_quit++;
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
c = readchar (timeout);
|
c = readchar (timeout);
|
||||||
|
@ -125,7 +125,7 @@ expect (char *string, int discard)
|
||||||
{
|
{
|
||||||
if (*p == '\0')
|
if (*p == '\0')
|
||||||
{
|
{
|
||||||
immediate_quit = 0;
|
immediate_quit--;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -264,7 +264,7 @@ sr_expect (char *string)
|
||||||
{
|
{
|
||||||
char *p = string;
|
char *p = string;
|
||||||
|
|
||||||
immediate_quit = 1;
|
immediate_quit++;
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
if (sr_readchar () == *p)
|
if (sr_readchar () == *p)
|
||||||
|
@ -272,7 +272,7 @@ sr_expect (char *string)
|
||||||
p++;
|
p++;
|
||||||
if (*p == '\0')
|
if (*p == '\0')
|
||||||
{
|
{
|
||||||
immediate_quit = 0;
|
immediate_quit--;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1975,7 +1975,7 @@ remote_start_remote_dummy (void *dummy)
|
||||||
static int
|
static int
|
||||||
remote_start_remote (PTR dummy)
|
remote_start_remote (PTR dummy)
|
||||||
{
|
{
|
||||||
immediate_quit = 1; /* Allow user to interrupt it */
|
immediate_quit++; /* Allow user to interrupt it */
|
||||||
|
|
||||||
/* Ack any packet which the remote side has already sent. */
|
/* Ack any packet which the remote side has already sent. */
|
||||||
SERIAL_WRITE (remote_desc, "+", 1);
|
SERIAL_WRITE (remote_desc, "+", 1);
|
||||||
|
@ -1988,7 +1988,7 @@ remote_start_remote (PTR dummy)
|
||||||
get_offsets (); /* Get text, data & bss offsets */
|
get_offsets (); /* Get text, data & bss offsets */
|
||||||
|
|
||||||
putpkt ("?"); /* initiate a query from remote machine */
|
putpkt ("?"); /* initiate a query from remote machine */
|
||||||
immediate_quit = 0;
|
immediate_quit--;
|
||||||
|
|
||||||
return remote_start_remote_dummy (dummy);
|
return remote_start_remote_dummy (dummy);
|
||||||
}
|
}
|
||||||
|
|
|
@ -889,7 +889,7 @@ read_actions (struct tracepoint *t)
|
||||||
if (job_control)
|
if (job_control)
|
||||||
signal (STOP_SIGNAL, SIG_DFL);
|
signal (STOP_SIGNAL, SIG_DFL);
|
||||||
#endif
|
#endif
|
||||||
immediate_quit = 0;
|
immediate_quit--;
|
||||||
discard_cleanups (old_chain);
|
discard_cleanups (old_chain);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue