aboutsummaryrefslogtreecommitdiff
path: root/gdbserver/hostio.cc
diff options
context:
space:
mode:
authorTankut Baris Aktemur <tankut.baris.aktemur@intel.com>2020-02-17 16:12:02 +0100
committerTankut Baris Aktemur <tankut.baris.aktemur@intel.com>2020-02-20 17:35:18 +0100
commitc9b7b80460e47ea4554960af6814de71b3e427cb (patch)
tree46a37f8679442430281c5ea253bcb51a0e49ce2b /gdbserver/hostio.cc
parent8247b8236bc5528993d9b2938bc0544a5acea21d (diff)
downloadgdb-c9b7b80460e47ea4554960af6814de71b3e427cb.zip
gdb-c9b7b80460e47ea4554960af6814de71b3e427cb.tar.gz
gdb-c9b7b80460e47ea4554960af6814de71b3e427cb.tar.bz2
gdbserver: turn target ops 'multifs_{open, readlink, unlink}' into methods
gdbserver/ChangeLog: 2020-02-20 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> Turn process_stratum_target's multifs_open, multifs_readlink, multifs_unlink ops into methods of process_target. * target.h (struct process_stratum_target): Remove the target ops. (class process_target): Add the target ops. Also add 'supports_multifs'. * target.cc: Include "fcntl.h", "unistd.h", "sys/types.h", and "sys/stat.h". (process_target::supports_multifs): Define. (process_target::multifs_open): Define. (process_target::multifs_readlink): Define. (process_target::multifs_unlink): Define. Update the derived classes and callers below. * hostio.cc (handle_setfs): Update. (handle_open): Update. (handle_unlink): Update. (handle_readlink): Update. * linux-low.cc (linux_target_ops): Update. (linux_process_target::supports_multifs): Define. (linux_process_target::multifs_open): Define. (linux_process_target::multifs_readlink): Define. (linux_process_target::multifs_unlink): Define. * linux-low.h (class linux_process_target): Update. * lynx-low.cc (lynx_target_ops): Update. * nto-low.cc (nto_target_ops): Update. * win32-low.cc (win32_target_ops): Update.
Diffstat (limited to 'gdbserver/hostio.cc')
-rw-r--r--gdbserver/hostio.cc22
1 files changed, 10 insertions, 12 deletions
diff --git a/gdbserver/hostio.cc b/gdbserver/hostio.cc
index a3b32cd..6223b24 100644
--- a/gdbserver/hostio.cc
+++ b/gdbserver/hostio.cc
@@ -272,9 +272,7 @@ handle_setfs (char *own_buf)
then there's no point in GDB sending "vFile:setfs:" packets. We
reply with an empty packet (i.e. we pretend we don't understand
"vFile:setfs:") and that should stop GDB sending any more. */
- if (the_target->multifs_open == NULL
- && the_target->multifs_unlink == NULL
- && the_target->multifs_readlink == NULL)
+ if (!the_target->pt->supports_multifs ())
{
own_buf[0] = '\0';
return;
@@ -321,9 +319,9 @@ handle_open (char *own_buf)
/* We do not need to convert MODE, since the fileio protocol
uses the standard values. */
- if (hostio_fs_pid != 0 && the_target->multifs_open != NULL)
- fd = the_target->multifs_open (hostio_fs_pid, filename,
- flags, mode);
+ if (hostio_fs_pid != 0)
+ fd = the_target->pt->multifs_open (hostio_fs_pid, filename,
+ flags, mode);
else
fd = open (filename, flags, mode);
@@ -541,8 +539,8 @@ handle_unlink (char *own_buf)
return;
}
- if (hostio_fs_pid != 0 && the_target->multifs_unlink != NULL)
- ret = the_target->multifs_unlink (hostio_fs_pid, filename);
+ if (hostio_fs_pid != 0)
+ ret = the_target->pt->multifs_unlink (hostio_fs_pid, filename);
else
ret = unlink (filename);
@@ -571,10 +569,10 @@ handle_readlink (char *own_buf, int *new_packet_len)
return;
}
- if (hostio_fs_pid != 0 && the_target->multifs_readlink != NULL)
- ret = the_target->multifs_readlink (hostio_fs_pid, filename,
- linkname,
- sizeof (linkname) - 1);
+ if (hostio_fs_pid != 0)
+ ret = the_target->pt->multifs_readlink (hostio_fs_pid, filename,
+ linkname,
+ sizeof (linkname) - 1);
else
ret = readlink (filename, linkname, sizeof (linkname) - 1);