aboutsummaryrefslogtreecommitdiff
path: root/gdb/remote-fileio.c
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@codesourcery.com>2006-06-08 19:08:22 +0000
committerNathan Sidwell <nathan@codesourcery.com>2006-06-08 19:08:22 +0000
commitad9a8f3f0088e383aa284d3f654af2852ed59dac (patch)
treede34f7a650ff6ac42676d1501d6ed395afcc7f77 /gdb/remote-fileio.c
parent1dd41f16d1f2ad0257298ebccc2fb0ce66da5532 (diff)
downloadgdb-ad9a8f3f0088e383aa284d3f654af2852ed59dac.zip
gdb-ad9a8f3f0088e383aa284d3f654af2852ed59dac.tar.gz
gdb-ad9a8f3f0088e383aa284d3f654af2852ed59dac.tar.bz2
* remote-fileio.c (remote_fileio_reset): New.
* remote-fileio.h (remote_fileio_reset): Prototype. * remote.c (extended_remote_restart, remote_open_1): Call it.
Diffstat (limited to 'gdb/remote-fileio.c')
-rw-r--r--gdb/remote-fileio.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/gdb/remote-fileio.c b/gdb/remote-fileio.c
index 7056a34..d445d40 100644
--- a/gdb/remote-fileio.c
+++ b/gdb/remote-fileio.c
@@ -1355,6 +1355,28 @@ do_remote_fileio_request (struct ui_out *uiout, void *buf_arg)
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);
+ }
+ if (remote_fio_data.fd_map)
+ {
+ 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)
{