}
req_str = req ? "non-stop" : "all-stop";
- if (start_non_stop (req) != 0)
+ if (the_target->pt->start_non_stop (req == 1) != 0)
{
fprintf (stderr, "Setting %s mode failed\n", req_str);
write_enn (own_buf);
debug_printf ("Forcing non-stop mode\n");
non_stop = true;
- start_non_stop (1);
+ the_target->pt->start_non_stop (true);
}
process->gdb_detached = 1;
gdb_byte *readbuf, const gdb_byte *writebuf,
ULONGEST offset, LONGEST len)
{
- if (the_target->qxfer_osdata == NULL || writebuf != NULL)
+ if (!the_target->pt->supports_qxfer_osdata () || writebuf != NULL)
return -2;
- return (*the_target->qxfer_osdata) (annex, readbuf, NULL, offset, len);
+ return the_target->pt->qxfer_osdata (annex, readbuf, NULL, offset, len);
}
/* Handle qXfer:siginfo:read and qXfer:siginfo:write. */
gdb_byte *readbuf, const gdb_byte *writebuf,
ULONGEST offset, LONGEST len)
{
- if (the_target->qxfer_siginfo == NULL)
+ if (!the_target->pt->supports_qxfer_siginfo ())
return -2;
if (annex[0] != '\0' || current_thread == NULL)
return -1;
- return (*the_target->qxfer_siginfo) (annex, readbuf, writebuf, offset, len);
+ return the_target->pt->qxfer_siginfo (annex, readbuf, writebuf, offset, len);
}
/* Handle qXfer:statictrace:read. */
handle_qxfer_fdpic (const char *annex, gdb_byte *readbuf,
const gdb_byte *writebuf, ULONGEST offset, LONGEST len)
{
- if (the_target->read_loadmap == NULL)
+ if (!the_target->pt->supports_read_loadmap ())
return -2;
if (current_thread == NULL)
return -1;
- return (*the_target->read_loadmap) (annex, offset, readbuf, len);
+ return the_target->pt->read_loadmap (annex, offset, readbuf, len);
}
/* Handle qXfer:btrace:read. */
if (the_target->pt->supports_read_auxv ())
strcat (own_buf, ";qXfer:auxv:read+");
- if (the_target->qxfer_siginfo != NULL)
+ if (the_target->pt->supports_qxfer_siginfo ())
strcat (own_buf, ";qXfer:siginfo:read+;qXfer:siginfo:write+");
- if (the_target->read_loadmap != NULL)
+ if (the_target->pt->supports_read_loadmap ())
strcat (own_buf, ";qXfer:fdpic:read+");
/* We always report qXfer:features:read, as targets may
if (cs.transport_is_reliable)
strcat (own_buf, ";QStartNoAckMode+");
- if (the_target->qxfer_osdata != NULL)
+ if (the_target->pt->supports_qxfer_osdata ())
strcat (own_buf, ";qXfer:osdata:read+");
if (target_supports_multi_process ())
}
/* Thread-local storage support. */
- if (the_target->get_tls_address != NULL
+ if (the_target->pt->supports_get_tls_address ()
&& startswith (own_buf, "qGetTLSAddr:"))
{
char *p = own_buf + 12;
if (thread == NULL)
err = 2;
else
- err = the_target->get_tls_address (thread, parts[0], parts[1],
- &address);
+ err = the_target->pt->get_tls_address (thread, parts[0], parts[1],
+ &address);
}
if (err == 0)
}
/* Windows OS Thread Information Block address support. */
- if (the_target->get_tib_address != NULL
+ if (the_target->pt->supports_get_tib_address ()
&& startswith (own_buf, "qGetTIBAddr:"))
{
const char *annex;
CORE_ADDR tlb;
ptid_t ptid = read_ptid (own_buf + 12, &annex);
- n = (*the_target->get_tib_address) (ptid, &tlb);
+ n = the_target->pt->get_tib_address (ptid, &tlb);
if (n == 1)
{
strcpy (own_buf, paddress(tlb));
write_ok (own_buf);
- if (the_target->handle_monitor_command == NULL
- || (*the_target->handle_monitor_command) (mon) == 0)
+ if (the_target->pt->handle_monitor_command (mon) == 0)
/* Default processing. */
handle_monitor_command (mon, own_buf);
{
/* For now, assume targets that don't have this callback also don't
manage the thread's last_status field. */
- if (the_target->thread_stopped == NULL)
+ if (!the_target->pt->supports_thread_stopped ())
{
struct vstop_notif *new_notif = new struct vstop_notif;
}
else
{
- if (thread_stopped (thread))
+ if (target_thread_stopped (thread))
{
if (debug_threads)
{
{
thread_info *thread = NULL;
- pause_all (0);
- stabilize_threads ();
+ target_pause_all (false);
+ target_stabilize_threads ();
gdb_wants_all_threads_stopped ();
/* We can only report one status, but we might be coming out of
down without informing GDB. */
if (!non_stop)
{
- if (start_non_stop (1))
+ if (the_target->pt->start_non_stop (true))
non_stop = 1;
/* Detaching implicitly resumes all threads;