int (*to_supports_non_stop) (struct target_ops *);
/* find_memory_regions support method for gcore */
int (*to_find_memory_regions) (struct target_ops *,
- find_memory_region_ftype func, void *data);
+ find_memory_region_ftype func, void *data)
+ TARGET_DEFAULT_FUNC (dummy_find_memory_regions);
/* make_corefile_notes support method for gcore */
- char * (*to_make_corefile_notes) (struct target_ops *, bfd *, int *);
+ char * (*to_make_corefile_notes) (struct target_ops *, bfd *, int *)
+ TARGET_DEFAULT_FUNC (dummy_make_corefile_notes);
/* get_bookmark support method for bookmarks */
- gdb_byte * (*to_get_bookmark) (struct target_ops *, char *, int);
+ gdb_byte * (*to_get_bookmark) (struct target_ops *, char *, int)
+ TARGET_DEFAULT_NORETURN (tcomplain ());
/* goto_bookmark support method for bookmarks */
- void (*to_goto_bookmark) (struct target_ops *, gdb_byte *, int);
+ void (*to_goto_bookmark) (struct target_ops *, gdb_byte *, int)
+ TARGET_DEFAULT_NORETURN (tcomplain ());
/* Return the thread-local address at OFFSET in the
thread-local storage for the thread PTID and the shared library
or executable file given by OBJFILE. If that block of
task Private_Data section of the Ada Task Control Block, and
their interpretation depends on the target. */
ptid_t (*to_get_ada_task_ptid) (struct target_ops *,
- long lwp, long thread);
+ long lwp, long thread)
+ TARGET_DEFAULT_FUNC (default_get_ada_task_ptid);
/* Read one auxv entry from *READPTR, not reading locations >= ENDPTR.
Return 0 if *READPTR is already at the end of the buffer.
CORE_ADDR *found_addrp);
/* Can target execute in reverse? */
- int (*to_can_execute_reverse) (struct target_ops *);
+ int (*to_can_execute_reverse) (struct target_ops *)
+ TARGET_DEFAULT_RETURN (0);
/* The direction the target is currently executing. Must be
implemented on targets that support reverse execution and async
mode. The default simply returns forward execution. */
- enum exec_direction_kind (*to_execution_direction) (struct target_ops *);
+ enum exec_direction_kind (*to_execution_direction) (struct target_ops *)
+ TARGET_DEFAULT_FUNC (default_execution_direction);
/* Does this target support debugging multiple processes
simultaneously? */
- int (*to_supports_multi_process) (struct target_ops *);
+ int (*to_supports_multi_process) (struct target_ops *)
+ TARGET_DEFAULT_RETURN (0);
/* Does this target support enabling and disabling tracepoints while a trace
experiment is running? */
- int (*to_supports_enable_disable_tracepoint) (struct target_ops *);
+ int (*to_supports_enable_disable_tracepoint) (struct target_ops *)
+ TARGET_DEFAULT_RETURN (0);
/* Does this target support disabling address space randomization? */
int (*to_supports_disable_randomization) (struct target_ops *);
/* Does this target support the tracenz bytecode for string collection? */
- int (*to_supports_string_tracing) (struct target_ops *);
+ int (*to_supports_string_tracing) (struct target_ops *)
+ TARGET_DEFAULT_RETURN (0);
/* Does this target support evaluation of breakpoint conditions on its
end? */
ptrace operations need to operate according to target_gdbarch ().
The default implementation always returns target_gdbarch (). */
- struct gdbarch *(*to_thread_architecture) (struct target_ops *, ptid_t);
+ struct gdbarch *(*to_thread_architecture) (struct target_ops *, ptid_t)
+ TARGET_DEFAULT_FUNC (default_thread_architecture);
/* Determine current address space of thread PTID.
/* Tracepoint-related operations. */
/* Prepare the target for a tracing run. */
- void (*to_trace_init) (struct target_ops *);
+ void (*to_trace_init) (struct target_ops *)
+ TARGET_DEFAULT_NORETURN (tcomplain ());
/* Send full details of a tracepoint location to the target. */
void (*to_download_tracepoint) (struct target_ops *,
- struct bp_location *location);
+ struct bp_location *location)
+ TARGET_DEFAULT_NORETURN (tcomplain ());
/* Is the target able to download tracepoint locations in current
state? */
- int (*to_can_download_tracepoint) (struct target_ops *);
+ int (*to_can_download_tracepoint) (struct target_ops *)
+ TARGET_DEFAULT_RETURN (0);
/* Send full details of a trace state variable to the target. */
void (*to_download_trace_state_variable) (struct target_ops *,
- struct trace_state_variable *tsv);
+ struct trace_state_variable *tsv)
+ TARGET_DEFAULT_NORETURN (tcomplain ());
/* Enable a tracepoint on the target. */
void (*to_enable_tracepoint) (struct target_ops *,
- struct bp_location *location);
+ struct bp_location *location)
+ TARGET_DEFAULT_NORETURN (tcomplain ());
/* Disable a tracepoint on the target. */
void (*to_disable_tracepoint) (struct target_ops *,
- struct bp_location *location);
+ struct bp_location *location)
+ TARGET_DEFAULT_NORETURN (tcomplain ());
/* Inform the target info of memory regions that are readonly
(such as text sections), and so it should return data from
those rather than look in the trace buffer. */
- void (*to_trace_set_readonly_regions) (struct target_ops *);
+ void (*to_trace_set_readonly_regions) (struct target_ops *)
+ TARGET_DEFAULT_NORETURN (tcomplain ());
/* Start a trace run. */
- void (*to_trace_start) (struct target_ops *);
+ void (*to_trace_start) (struct target_ops *)
+ TARGET_DEFAULT_NORETURN (tcomplain ());
/* Get the current status of a tracing run. */
- int (*to_get_trace_status) (struct target_ops *, struct trace_status *ts);
+ int (*to_get_trace_status) (struct target_ops *, struct trace_status *ts)
+ TARGET_DEFAULT_RETURN (-1);
void (*to_get_tracepoint_status) (struct target_ops *,
struct breakpoint *tp,
- struct uploaded_tp *utp);
+ struct uploaded_tp *utp)
+ TARGET_DEFAULT_NORETURN (tcomplain ());
/* Stop a trace run. */
- void (*to_trace_stop) (struct target_ops *);
+ void (*to_trace_stop) (struct target_ops *)
+ TARGET_DEFAULT_NORETURN (tcomplain ());
/* Ask the target to find a trace frame of the given type TYPE,
using NUM, ADDR1, and ADDR2 as search parameters. Returns the
operation fails. */
int (*to_trace_find) (struct target_ops *,
enum trace_find_type type, int num,
- CORE_ADDR addr1, CORE_ADDR addr2, int *tpp);
+ CORE_ADDR addr1, CORE_ADDR addr2, int *tpp)
+ TARGET_DEFAULT_RETURN (-1);
/* Get the value of the trace state variable number TSV, returning
1 if the value is known and writing the value itself into the
location pointed to by VAL, else returning 0. */
int (*to_get_trace_state_variable_value) (struct target_ops *,
- int tsv, LONGEST *val);
+ int tsv, LONGEST *val)
+ TARGET_DEFAULT_RETURN (0);
- int (*to_save_trace_data) (struct target_ops *, const char *filename);
+ int (*to_save_trace_data) (struct target_ops *, const char *filename)
+ TARGET_DEFAULT_NORETURN (tcomplain ());
int (*to_upload_tracepoints) (struct target_ops *,
- struct uploaded_tp **utpp);
+ struct uploaded_tp **utpp)
+ TARGET_DEFAULT_RETURN (0);
int (*to_upload_trace_state_variables) (struct target_ops *,
- struct uploaded_tsv **utsvp);
+ struct uploaded_tsv **utsvp)
+ TARGET_DEFAULT_RETURN (0);
LONGEST (*to_get_raw_trace_data) (struct target_ops *, gdb_byte *buf,
- ULONGEST offset, LONGEST len);
+ ULONGEST offset, LONGEST len)
+ TARGET_DEFAULT_NORETURN (tcomplain ());
/* Get the minimum length of instruction on which a fast tracepoint
may be set on the target. If this operation is unsupported,
return -1. If for some reason the minimum length cannot be
determined, return 0. */
- int (*to_get_min_fast_tracepoint_insn_len) (struct target_ops *);
+ int (*to_get_min_fast_tracepoint_insn_len) (struct target_ops *)
+ TARGET_DEFAULT_RETURN (-1);
/* Set the target's tracing behavior in response to unexpected
disconnection - set VAL to 1 to keep tracing, 0 to stop. */
- void (*to_set_disconnected_tracing) (struct target_ops *, int val);
- void (*to_set_circular_trace_buffer) (struct target_ops *, int val);
+ void (*to_set_disconnected_tracing) (struct target_ops *, int val)
+ TARGET_DEFAULT_IGNORE ();
+ void (*to_set_circular_trace_buffer) (struct target_ops *, int val)
+ TARGET_DEFAULT_IGNORE ();
/* Set the size of trace buffer in the target. */
- void (*to_set_trace_buffer_size) (struct target_ops *, LONGEST val);
+ void (*to_set_trace_buffer_size) (struct target_ops *, LONGEST val)
+ TARGET_DEFAULT_IGNORE ();
/* Add/change textual notes about the trace run, returning 1 if
successful, 0 otherwise. */
int (*to_set_trace_notes) (struct target_ops *,
const char *user, const char *notes,
- const char *stopnotes);
+ const char *stopnotes)
+ TARGET_DEFAULT_RETURN (0);
/* Return the processor core that thread PTID was last seen on.
This information is updated only when:
/* Return the address of the start of the Thread Information Block
a Windows OS specific feature. */
int (*to_get_tib_address) (struct target_ops *,
- ptid_t ptid, CORE_ADDR *addr);
+ ptid_t ptid, CORE_ADDR *addr)
+ TARGET_DEFAULT_NORETURN (tcomplain ());
/* Send the new settings of write permission variables. */
void (*to_set_permissions) (struct target_ops *);
/* Target can execute in reverse? */
#define target_can_execute_reverse \
- (current_target.to_can_execute_reverse ? \
- current_target.to_can_execute_reverse (¤t_target) : 0)
+ current_target.to_can_execute_reverse (¤t_target)
extern const struct target_desc *target_read_description (struct target_ops *);