summaryrefslogtreecommitdiff
path: root/gdbsupport
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@polymtl.ca>2022-08-29 12:19:40 -0400
committerSimon Marchi <simon.marchi@polymtl.ca>2022-09-21 14:11:03 -0400
commit517a63c2c48e5aaabe57de079e2d7f0bea09429b (patch)
tree2042e8a1a578cf61c31a257ab71c5bdaea2c9f32 /gdbsupport
parentb872057a63c53106e4bf6033a52d53b988f30dfd (diff)
downloadbinutils-gdb-517a63c2c48e5aaabe57de079e2d7f0bea09429b.tar.gz
gdbsupport: move fileio_errno_to_host to fileio.{h,cc} and rename
gdb_bfd.c and remote.c contain identical implementations of a fileio_error -> errno function. Factor that out to gdbsupport/fileio.{h,cc}. Rename it fileio_error_to_host, for symmetry with host_to_fileio_error. Change-Id: Ib9b8807683de2f809c94a5303e708acc2251a0df
Diffstat (limited to 'gdbsupport')
-rw-r--r--gdbsupport/fileio.cc53
-rw-r--r--gdbsupport/fileio.h4
2 files changed, 57 insertions, 0 deletions
diff --git a/gdbsupport/fileio.cc b/gdbsupport/fileio.cc
index db7c1a7c488..60a08f64977 100644
--- a/gdbsupport/fileio.cc
+++ b/gdbsupport/fileio.cc
@@ -78,6 +78,59 @@ host_to_fileio_error (int error)
/* See fileio.h. */
int
+fileio_error_to_host (fileio_error errnum)
+{
+ switch (errnum)
+ {
+ case FILEIO_EPERM:
+ return EPERM;
+ case FILEIO_ENOENT:
+ return ENOENT;
+ case FILEIO_EINTR:
+ return EINTR;
+ case FILEIO_EIO:
+ return EIO;
+ case FILEIO_EBADF:
+ return EBADF;
+ case FILEIO_EACCES:
+ return EACCES;
+ case FILEIO_EFAULT:
+ return EFAULT;
+ case FILEIO_EBUSY:
+ return EBUSY;
+ case FILEIO_EEXIST:
+ return EEXIST;
+ case FILEIO_ENODEV:
+ return ENODEV;
+ case FILEIO_ENOTDIR:
+ return ENOTDIR;
+ case FILEIO_EISDIR:
+ return EISDIR;
+ case FILEIO_EINVAL:
+ return EINVAL;
+ case FILEIO_ENFILE:
+ return ENFILE;
+ case FILEIO_EMFILE:
+ return EMFILE;
+ case FILEIO_EFBIG:
+ return EFBIG;
+ case FILEIO_ENOSPC:
+ return ENOSPC;
+ case FILEIO_ESPIPE:
+ return ESPIPE;
+ case FILEIO_EROFS:
+ return EROFS;
+ case FILEIO_ENOSYS:
+ return ENOSYS;
+ case FILEIO_ENAMETOOLONG:
+ return ENAMETOOLONG;
+ }
+ return -1;
+}
+
+/* See fileio.h. */
+
+int
fileio_to_host_openflags (int fileio_open_flags, int *open_flags_p)
{
int open_flags = 0;
diff --git a/gdbsupport/fileio.h b/gdbsupport/fileio.h
index 6a5297c6433..203e671f3e7 100644
--- a/gdbsupport/fileio.h
+++ b/gdbsupport/fileio.h
@@ -139,6 +139,10 @@ struct fio_timeval
extern fileio_error host_to_fileio_error (int error);
+/* Convert a File-I/O error number to a host-format errno value. */
+
+extern int fileio_error_to_host (fileio_error errnum);
+
/* Convert File-I/O open flags FFLAGS to host format, storing
the result in *FLAGS. Return 0 on success, -1 on error. */