it goes into the file stratum, which is always below the process
stratum. */
+#include "target/target.h"
#include "target/resume.h"
#include "target/wait.h"
#include "target/waitstatus.h"
struct target_ops
{
struct target_ops *beneath; /* To the target under this one. */
- char *to_shortname; /* Name this target type */
- char *to_longname; /* Name for printing */
- char *to_doc; /* Documentation. Does not include trailing
+ const char *to_shortname; /* Name this target type */
+ const char *to_longname; /* Name for printing */
+ const char *to_doc; /* Documentation. Does not include trailing
newline, and starts with a one-line descrip-
tion (probably similar to to_longname). */
/* Per-target scratch pad. */
command, and (if successful) pushes a new target onto the
stack. Targets should supply this routine, if only to provide
an error message. */
- void (*to_open) (char *, int);
+ void (*to_open) (const char *, int);
/* Old targets with a static target vector provide "to_close".
New re-entrant targets provide "to_xclose" and that is expected
to xfree everything (including the "struct target_ops"). */
TARGET_DEFAULT_IGNORE ();
void (*to_terminal_ours) (struct target_ops *)
TARGET_DEFAULT_IGNORE ();
- void (*to_terminal_save_ours) (struct target_ops *)
- TARGET_DEFAULT_IGNORE ();
void (*to_terminal_info) (struct target_ops *, const char *, int)
TARGET_DEFAULT_FUNC (default_terminal_info);
void (*to_kill) (struct target_ops *)
extern int target_read_string (CORE_ADDR, char **, int, int *);
-extern int target_read_memory (CORE_ADDR memaddr, gdb_byte *myaddr,
- ssize_t len);
+/* For target_read_memory see target/target.h. */
extern int target_read_raw_memory (CORE_ADDR memaddr, gdb_byte *myaddr,
ssize_t len);
extern int target_read_code (CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len);
-extern int target_write_memory (CORE_ADDR memaddr, const gdb_byte *myaddr,
- ssize_t len);
+/* For target_write_memory see target/target.h. */
extern int target_write_raw_memory (CORE_ADDR memaddr, const gdb_byte *myaddr,
ssize_t len);
extern int target_supports_terminal_ours (void);
-/* Save our terminal settings.
- This is called from TUI after entering or leaving the curses
- mode. Since curses modifies our terminal this call is here
- to take this change into account. */
-
-#define target_terminal_save_ours() \
- (*current_target.to_terminal_save_ours) (¤t_target)
-
/* Print useful information about our terminal status, if such a thing
exists. */
extern void target_find_new_threads (void);
/* Make target stop in a continuable fashion. (For instance, under
- Unix, this should act like SIGSTOP). This function is normally
- used by GUIs to implement a stop button. */
+ Unix, this should act like SIGSTOP). Note that this function is
+ asynchronous: it does not wait for the target to become stopped
+ before returning. If this is the behavior you want please use
+ target_stop_and_wait. */
extern void target_stop (ptid_t ptid);
target_stopped_by_watchpoint, in such case place it to *ADDR_P. Only the
INFERIOR_PTID task is being queried. */
#define target_stopped_data_address(target, addr_p) \
- (*target.to_stopped_data_address) (target, addr_p)
+ (*(target)->to_stopped_data_address) (target, addr_p)
/* Return non-zero if ADDR is within the range of a watchpoint spanning
LENGTH bytes beginning at START. */
#define target_watchpoint_addr_within_range(target, addr, start, length) \
- (*target.to_watchpoint_addr_within_range) (target, addr, start, length)
+ (*(target)->to_watchpoint_addr_within_range) (target, addr, start, length)
/* Return non-zero if the target is capable of using hardware to evaluate
the condition expression. In this case, if the condition is false when