Do the checks from remote_xfer_memory.
(remote_read_bytes): Do the checks from remote_xfer_memory.
(remote_xfer_memory): Remove checks pushed into lower level
functions.
(remote_xfer_partial): Call remote_write_bytes and remote_read_bytes
directly.
* remote.h (remote_write_bytes): Update prototype.
(init_remote_state): Initialize the new fields.
(get_memory_packet_size): Update BUF and BUF_SIZE if necessary.
(set_thread, remote_thread_alive, remote_unpack_thread_info_response)
(remote_get_threadinfo, parse_threadlist_response)
(remote_get_threadlist, remote_current_thread, remote_threads_info)
(remote_threads_extra_info, extended_remote_restart, get_offsets)
(remote_check_symbols, remote_open_1, remote_detach)
(remove_vcont_probe, remote_vcont_resume, remote_resume)
(remote_wait, remote_async_wait, fetch_register_using_p)
(remote_fetch_registers, store_register_using_P)
(remote_store_registers, check_binary_download, remote_write_bytes)
(remote_read_bytes, remote_insert_breakpoint)
(remote_remove_breakpoint, remote_insert_watchpoint)
(remote_remove_watchpoint, remote_insert_hw_breakpoint)
(remote_remove_hw_breakpoint, compare_sections_command)
(remote_xfer_partial, remote_rcmd, packet_command)
(remote_get_thread_local_address): Use the global incoming buffer
instead of alloca or xmalloc. Limit outgoing packets to
rs->remote_packet_size and incoming packets to rs->buf_size.
Update calls to getpkt and remote_send.
(remote_send): Take arguments by reference.
(putpkt_binary): Eliminate junkbuf. Use skip_frame.
(skip_frame): New function.
(read_frame): Take arguments by reference. Expand the packet
buffer instead of issuing an error.
(getpkt, getpkt_sane): Take arguments by reference.
* remote.h (getpkt): Update prototype and doc.
* tracepoint.c (remote_get_noisy_reply): Take arguments by
reference.
(target_buf): Change from array to pointer.
(target_buf_size): New variable.
(remote_set_transparent_ranges): Update call to getpkt.
(trace_start_command, trace_stop_command, trace_status_command):
Update calls to remote_get_noisy_reply.
(finish_tfind_command): Take arguments by reference.
(trace_find_command, trace_find_pc_command)
(trace_find_tracepoint_command, trace_find_line_command):
(trace_find_range_command, trace_find_outside_command): Update
calls to finish_tfind_command.
(_initialize_tracepoint): Initialize target_buf_size and target_buf.
argument.
(remote_fileio_func_open, remote_fileio_func_rename)
(remote_fileio_func_unlink, remote_fileio_func_stat)
(remote_fileio_func_fstat, remote_fileio_func_gettimeofday)
(remote_fileio_func_system): Cast the arguments to
remote_read_bytes and remote_write_bytes.
(remote_fileio_func_read, remote_fileio_func_write): Use a
gdb_byte buffer.
* remote.h (remote_read_bytes, remote_write_bytes): Update
prototypes.
* remote.c (hex2bin, bin2hex): Use gdb_byte for the BIN argument.
(threadref_to_int): Replace bogus char * cast.
(remote_unpack_thread_info_response): Use int for tag.
(remote_threads_extra_info, remote_check_symbols): Cast string
arguments to hex2bin.
(remote_wait): Use a char buffer for packets and a gdb_byte
buffer for registers.
(remote_async_wait): Likewise.
(remote_prepare_to_store, store_register_using_P)
(remote_store_registers): Use gdb_byte buffers.
(remote_write_bytes, remote_read_bytes): Use a gdb_byte pointer
for MYADDR and char buffers for strings.
(remote_xfer_partial): Add casts for string operations on READBUF.
(remote_rcmd): Cast strings passed to bin2hex.
* remote-fileio.c: New file implementing the remote File-I/O protocol.
* remote-fileio.h: New header file defining remote File-I/O interface.
* remote.c (remote_write_bytes, remote_read_bytes): Remove
static storage class.
(remote_wait, remote_async_wait): Call remote_fileio_request() on
'F' packet.
(_initialize_remote): Call initialize_remote_fileio().
* remote.h: Declare remote_write_bytes() and remote_read_bytes().
* Makefile.in (REMOTE_OBS): Add remote-fileio.o
(SFILES): Add remote-fileio.c.
Add dependencies for building remote-fileio.o. Add remote-fileio.h to
dependencies for building remote.o.
* defs.h: Declare gdb_stdin, gdb_stdtargerr and gdb_stdtargin.
* main.c: New ui_file gdb_stdin, gdb_stdtargerr and gdb_stdtargin.
(captured_main): Initialize new ui_files.
* ui-file.c: Add read and fgets input functions.
(ui_file_new): set ui_file_fputs and ui_file_read to null functions.
(null_file_read): New function.
(ui_file_read): New function.
(set_ui_file_read): New function.
(stdio_file_read): New function.
* ui-file.h: New type ui_file_read_ftype.
(set_ui_file_read): Declare.
(ui_file_read): Declare.