forked from Imagelibrary/binutils-gdb
PR remote/1966
* dcache.c (dcache_write_line): Use target_write. (dcache_read_line): Use target_read. * mi/mi-main.c (mi_cmd_data_read_memory): Use target_read. * symfile.c (struct load_section_data): Add new per-section members. (load_progress): New function. (load_section_callback): Pass load_progress to the new target_write_with_progress. * target.c (current_xfer_partial, memory_xfer_partial): New. (target_xfer_partial): New prototype. (target_xfer_memory, target_xfer_partial_p, xfer_using_stratum) (do_xfer_memory, target_xfer_memory_partial) (target_read_memory_partial, target_write_memory_partial): Delete. (trust_readonly): Move higher in the file. (update_current_target): Use current_xer_partial. (target_xfer_partial): Use memory_xfer_partial. Handle TARGET_OBJECT_RAW_MEMORY specially. (target_read_memory): Use target_read. (target_write_memory): Use target_write. (default_xfer_partial): Call to_xfer_partial directly. (target_write_with_progress): New function, based on target_write. (target_write): Call it. * target.h (enum target_object): Add TARGET_OBJECT_RAW_MEMORY. (target_write_with_progress): New prototype. (do_xfer_memory, target_read_memory_partial) (target_write_memory_partial): Delete prototypes.
This commit is contained in:
31
gdb/target.h
31
gdb/target.h
@@ -189,6 +189,10 @@ enum target_object
|
||||
TARGET_OBJECT_AVR,
|
||||
/* Transfer up-to LEN bytes of memory starting at OFFSET. */
|
||||
TARGET_OBJECT_MEMORY,
|
||||
/* Memory, avoiding GDB's data cache and trusting the executable.
|
||||
Target implementations of to_xfer_partial never need to handle
|
||||
this object, and most callers should not use it. */
|
||||
TARGET_OBJECT_RAW_MEMORY,
|
||||
/* Kernel Unwind Table. See "ia64-tdep.c". */
|
||||
TARGET_OBJECT_UNWIND_TABLE,
|
||||
/* Transfer auxilliary vector. */
|
||||
@@ -220,6 +224,18 @@ extern LONGEST target_write (struct target_ops *ops,
|
||||
const char *annex, const gdb_byte *buf,
|
||||
ULONGEST offset, LONGEST len);
|
||||
|
||||
/* Similar to target_write, except that it also calls PROGRESS
|
||||
with the number of bytes written and the opaque BATON after
|
||||
every partial write. This is useful for progress reporting
|
||||
and user interaction while writing data. To abort the transfer,
|
||||
the progress callback can throw an exception. */
|
||||
LONGEST target_write_with_progress (struct target_ops *ops,
|
||||
enum target_object object,
|
||||
const char *annex, const gdb_byte *buf,
|
||||
ULONGEST offset, LONGEST len,
|
||||
void (*progress) (ULONGEST, void *),
|
||||
void *baton);
|
||||
|
||||
/* Wrapper to perform a full read of unknown size. OBJECT/ANNEX will
|
||||
be read using OPS. The return value will be -1 if the transfer
|
||||
fails or is not supported; 0 if the object is empty; or the length
|
||||
@@ -547,9 +563,6 @@ extern void target_disconnect (char *, int);
|
||||
|
||||
extern DCACHE *target_dcache;
|
||||
|
||||
extern int do_xfer_memory (CORE_ADDR memaddr, gdb_byte *myaddr, int len,
|
||||
int write, struct mem_attrib *attrib);
|
||||
|
||||
extern int target_read_string (CORE_ADDR, char **, int, int *);
|
||||
|
||||
extern int target_read_memory (CORE_ADDR memaddr, gdb_byte *myaddr, int len);
|
||||
@@ -563,18 +576,6 @@ extern int xfer_memory (CORE_ADDR, gdb_byte *, int, int,
|
||||
extern int child_xfer_memory (CORE_ADDR, gdb_byte *, int, int,
|
||||
struct mem_attrib *, struct target_ops *);
|
||||
|
||||
/* Make a single attempt at transfering LEN bytes. On a successful
|
||||
transfer, the number of bytes actually transfered is returned and
|
||||
ERR is set to 0. When a transfer fails, -1 is returned (the number
|
||||
of bytes actually transfered is not defined) and ERR is set to a
|
||||
non-zero error indication. */
|
||||
|
||||
extern int target_read_memory_partial (CORE_ADDR addr, gdb_byte *buf,
|
||||
int len, int *err);
|
||||
|
||||
extern int target_write_memory_partial (CORE_ADDR addr, gdb_byte *buf,
|
||||
int len, int *err);
|
||||
|
||||
extern char *child_pid_to_exec_file (int);
|
||||
|
||||
extern char *child_core_file_to_sym_file (char *);
|
||||
|
||||
Reference in New Issue
Block a user