* gdb/remote-fileio.h (remote_fileio_reset): Prototype.
* gdb/remote.c (extended_remote_restart, remote_open_1): Call it.
+2006-05-24 Nathan Sidwell <nathan@codesourcery.com>
+
+ * gdb/remote-fileio.c (remote_fileio_reset): New.
+ * gdb/remote-fileio.h (remote_fileio_reset): Prototype.
+ * gdb/remote.c (extended_remote_restart, remote_open_1): Call it.
+
2006-05-22 Richard Sandiford <richard@codesourcery.com>
opcodes/
return 0;
}
+/* Close any open descriptors, and reinitialize the file mapping */
+
+void
+remote_fileio_reset (void)
+{
+ int ix;
+
+ for (ix = 0; ix != remote_fio_data.fd_map_size; ix++)
+ {
+ int fd = remote_fio_data.fd_map[ix];
+
+ if (fd >= 0)
+ close (fd);
+ }
+ free (remote_fio_data.fd_map);
+ remote_fio_data.fd_map = NULL;
+ remote_fio_data.fd_map_size = 0;
+}
+
void
remote_fileio_request (char *buf)
{
remote_wait () and remote_async_wait () */
extern void remote_fileio_request (char *buf);
+/* Cleanup any remote fileio state. */
+extern void remote_fileio_reset (void);
+
/* Called from _initialize_remote () */
extern void initialize_remote_fileio (
struct cmd_list_element *remote_set_cmdlist,
xsnprintf (buf, rs->remote_packet_size, "R%x", 0);
putpkt (buf);
+ remote_fileio_reset ();
+
/* Now query for status so this looks just like we restarted
gdbserver from scratch. */
putpkt ("?");
if (!async_p)
wait_forever_enabled_p = 1;
+ remote_fileio_reset ();
+
reopen_exec_file ();
reread_symbols ();