24 #include "target/target.h"
25 #include "target/resume.h"
26 #include "target/wait.h"
27 #include "target/waitstatus.h"
254 int (*
qxfer_spu) (
const char *annex,
unsigned char *readbuf,
268 unsigned const char *writebuf,
302 unsigned char *myaddr,
unsigned int len);
360 unsigned char *jjump_pad_insn,
379 unsigned const char *writebuf,
417 char *(*pid_to_exec_file) (
int pid);
424 int flags, mode_t mode);
438 char *buf,
size_t bufsiz);
445 #define create_inferior(program, args) \
446 (*the_target->create_inferior) (program, args)
448 #define myattach(pid) \
449 (*the_target->attach) (pid)
453 #define target_supports_fork_events() \
454 (the_target->supports_fork_events ? \
455 (*the_target->supports_fork_events) () : 0)
457 #define target_supports_vfork_events() \
458 (the_target->supports_vfork_events ? \
459 (*the_target->supports_vfork_events) () : 0)
461 #define target_handle_new_gdb_connection() \
464 if (the_target->handle_new_gdb_connection != NULL) \
465 (*the_target->handle_new_gdb_connection) (); \
468 #define detach_inferior(pid) \
469 (*the_target->detach) (pid)
471 #define mourn_inferior(PROC) \
472 (*the_target->mourn) (PROC)
474 #define mythread_alive(pid) \
475 (*the_target->thread_alive) (pid)
477 #define fetch_inferior_registers(regcache, regno) \
478 (*the_target->fetch_registers) (regcache, regno)
480 #define store_inferior_registers(regcache, regno) \
481 (*the_target->store_registers) (regcache, regno)
483 #define join_inferior(pid) \
484 (*the_target->join) (pid)
486 #define target_supports_non_stop() \
487 (the_target->supports_non_stop ? (*the_target->supports_non_stop ) () : 0)
489 #define target_async(enable) \
490 (the_target->async ? (*the_target->async) (enable) : 0)
492 #define target_supports_multi_process() \
493 (the_target->supports_multi_process ? \
494 (*the_target->supports_multi_process) () : 0)
496 #define target_process_qsupported(query) \
499 if (the_target->process_qsupported) \
500 the_target->process_qsupported (query); \
503 #define target_supports_tracepoints() \
504 (the_target->supports_tracepoints \
505 ? (*the_target->supports_tracepoints) () : 0)
507 #define target_supports_fast_tracepoints() \
508 (the_target->install_fast_tracepoint_jump_pad != NULL)
510 #define target_get_min_fast_tracepoint_insn_len() \
511 (the_target->get_min_fast_tracepoint_insn_len \
512 ? (*the_target->get_min_fast_tracepoint_insn_len) () : 0)
514 #define thread_stopped(thread) \
515 (*the_target->thread_stopped) (thread)
517 #define pause_all(freeze) \
520 if (the_target->pause_all) \
521 (*the_target->pause_all) (freeze); \
524 #define unpause_all(unfreeze) \
527 if (the_target->unpause_all) \
528 (*the_target->unpause_all) (unfreeze); \
531 #define stabilize_threads() \
534 if (the_target->stabilize_threads) \
535 (*the_target->stabilize_threads) (); \
538 #define install_fast_tracepoint_jump_pad(tpoint, tpaddr, \
539 collector, lockaddr, \
542 trampoline, trampoline_size, \
544 jjump_pad_insn_size, \
545 adjusted_insn_addr, \
546 adjusted_insn_addr_end, \
548 (*the_target->install_fast_tracepoint_jump_pad) (tpoint, tpaddr, \
549 collector,lockaddr, \
550 orig_size, jump_entry, \
554 jjump_pad_insn_size, \
555 adjusted_insn_addr, \
556 adjusted_insn_addr_end, \
559 #define target_emit_ops() \
560 (the_target->emit_ops ? (*the_target->emit_ops) () : NULL)
562 #define target_supports_disable_randomization() \
563 (the_target->supports_disable_randomization ? \
564 (*the_target->supports_disable_randomization) () : 0)
566 #define target_supports_agent() \
567 (the_target->supports_agent ? \
568 (*the_target->supports_agent) () : 0)
570 #define target_supports_btrace(format) \
571 (the_target->supports_btrace \
572 ? (*the_target->supports_btrace) (the_target, format) : 0)
574 #define target_enable_btrace(ptid, conf) \
575 (*the_target->enable_btrace) (ptid, conf)
577 #define target_disable_btrace(tinfo) \
578 (*the_target->disable_btrace) (tinfo)
580 #define target_read_btrace(tinfo, buffer, type) \
581 (*the_target->read_btrace) (tinfo, buffer, type)
583 #define target_read_btrace_conf(tinfo, buffer) \
584 (*the_target->read_btrace_conf) (tinfo, buffer)
586 #define target_supports_range_stepping() \
587 (the_target->supports_range_stepping ? \
588 (*the_target->supports_range_stepping) () : 0)
590 #define target_supports_stopped_by_sw_breakpoint() \
591 (the_target->supports_stopped_by_sw_breakpoint ? \
592 (*the_target->supports_stopped_by_sw_breakpoint) () : 0)
594 #define target_stopped_by_sw_breakpoint() \
595 (the_target->stopped_by_sw_breakpoint ? \
596 (*the_target->stopped_by_sw_breakpoint) () : 0)
598 #define target_supports_stopped_by_hw_breakpoint() \
599 (the_target->supports_stopped_by_hw_breakpoint ? \
600 (*the_target->supports_stopped_by_hw_breakpoint) () : 0)
602 #define target_supports_conditional_breakpoints() \
603 (the_target->supports_conditional_breakpoints ? \
604 (*the_target->supports_conditional_breakpoints) () : 0)
606 #define target_stopped_by_hw_breakpoint() \
607 (the_target->stopped_by_hw_breakpoint ? \
608 (*the_target->stopped_by_hw_breakpoint) () : 0)
617 #define prepare_to_access_memory() \
618 (the_target->prepare_to_access_memory \
619 ? (*the_target->prepare_to_access_memory) () \
622 #define done_accessing_memory() \
625 if (the_target->done_accessing_memory) \
626 (*the_target->done_accessing_memory) (); \
629 #define target_core_of_thread(ptid) \
630 (the_target->core_of_thread ? (*the_target->core_of_thread) (ptid) \
CORE_ADDR(* read_pc)(struct regcache *regcache)
int(* supports_btrace)(struct target_ops *, enum btrace_format)
const char * target_pid_to_str(ptid_t)
int(* prepare_to_access_memory)(void)
int read_inferior_memory(CORE_ADDR memaddr, unsigned char *myaddr, int len)
int(* stopped_by_watchpoint)(void)
int(* qxfer_osdata)(const char *annex, unsigned char *readbuf, unsigned const char *writebuf, CORE_ADDR offset, int len)
int(* multifs_open)(int pid, const char *filename, int flags, mode_t mode)
int(* get_tls_address)(struct thread_info *thread, CORE_ADDR offset, CORE_ADDR load_module, CORE_ADDR *address)
int start_non_stop(int nonstop)
struct target_ops * the_target
int(* stopped_by_sw_breakpoint)(void)
int(* read_loadmap)(const char *annex, CORE_ADDR offset, unsigned char *myaddr, unsigned int len)
void(* fetch_registers)(struct regcache *regcache, int regno)
void(* store_registers)(struct regcache *regcache, int regno)
int(* insert_point)(enum raw_bkpt_type type, CORE_ADDR addr, int size, struct raw_breakpoint *bp)
int(* get_tib_address)(ptid_t ptid, CORE_ADDR *address)
void(* process_qsupported)(const char *)
void(* mourn)(struct process_info *proc)
int(* remove_point)(enum raw_bkpt_type type, CORE_ADDR addr, int size, struct raw_breakpoint *bp)
int(* qxfer_siginfo)(const char *annex, unsigned char *readbuf, unsigned const char *writebuf, CORE_ADDR offset, int len)
int(* supports_multi_process)(void)
int(* create_inferior)(char *program, char **args)
void set_desired_thread(int id)
CORE_ADDR step_range_start
int(* attach)(unsigned long pid)
int(* read_offsets)(CORE_ADDR *text, CORE_ADDR *data)
int(* core_of_thread)(ptid_t)
int(* write_memory)(CORE_ADDR memaddr, const unsigned char *myaddr, int len)
int(* thread_stopped)(struct thread_info *thread)
int(* thread_alive)(ptid_t pid)
void(* request_interrupt)(void)
void(* unpause_all)(int unfreeze)
int(* supports_agent)(void)
int(* supports_vfork_events)(void)
int(* handle_monitor_command)(char *)
void(* pause_all)(int freeze)
void(* done_accessing_memory)(void)
int(* supports_stopped_by_hw_breakpoint)(void)
int(* multifs_unlink)(int pid, const char *filename)
void(* look_up_symbols)(void)
ptid_t(* wait)(ptid_t ptid, struct target_waitstatus *status, int options)
int(* supports_conditional_breakpoints)(void)
int(* get_min_fast_tracepoint_insn_len)(void)
int(* qxfer_spu)(const char *annex, unsigned char *readbuf, unsigned const char *writebuf, CORE_ADDR offset, int len)
int(* qxfer_libraries_svr4)(const char *annex, unsigned char *readbuf, unsigned const char *writebuf, CORE_ADDR offset, int len)
int write_inferior_memory(CORE_ADDR memaddr, const unsigned char *myaddr, int len)
int(* supports_tracepoints)(void)
int(* supports_fork_events)(void)
int(* supports_non_stop)(void)
ssize_t(* multifs_readlink)(int pid, const char *filename, char *buf, size_t bufsiz)
int(* read_auxv)(CORE_ADDR offset, unsigned char *myaddr, unsigned int len)
int(* read_btrace)(struct btrace_target_info *, struct buffer *, int type)
ptid_t mywait(ptid_t ptid, struct target_waitstatus *ourstatus, int options, int connected_wait)
int(* install_fast_tracepoint_jump_pad)(CORE_ADDR tpoint, CORE_ADDR tpaddr, CORE_ADDR collector, CORE_ADDR lockaddr, ULONGEST orig_size, CORE_ADDR *jump_entry, CORE_ADDR *trampoline, ULONGEST *trampoline_size, unsigned char *jjump_pad_insn, ULONGEST *jjump_pad_insn_size, CORE_ADDR *adjusted_insn_addr, CORE_ADDR *adjusted_insn_addr_end, char *err)
int(* supports_range_stepping)(void)
void(* resume)(struct thread_resume *resume_info, size_t n)
int(* read_memory)(CORE_ADDR memaddr, unsigned char *myaddr, int len)
int(* supports_disable_randomization)(void)
void(* stabilize_threads)(void)
int(* supports_z_point_type)(char z_type)
unsigned long long ULONGEST
int(* start_non_stop)(int)
void(* handle_new_gdb_connection)(void)
int(* stopped_by_hw_breakpoint)(void)
CORE_ADDR(* stopped_data_address)(void)
void(* write_pc)(struct regcache *regcache, CORE_ADDR pc)
void set_target_ops(struct target_ops *)
int(* supports_stopped_by_sw_breakpoint)(void)
int(* read_btrace_conf)(const struct btrace_target_info *, struct buffer *)
int(* disable_btrace)(struct btrace_target_info *tinfo)
void(* hostio_last_error)(char *buf)