diff options
author | Gary Benson <gbenson@redhat.com> | 2015-04-09 10:28:05 +0100 |
---|---|---|
committer | Gary Benson <gbenson@redhat.com> | 2015-04-09 13:26:32 +0100 |
commit | b88bb45061e0095a0bafce938363f3051a602dd2 (patch) | |
tree | 6211b8640d4fdd7ab03a6db48a0e38cf239f9f77 /gdb/common | |
parent | 2f2680f33a356115fb31c932d3b983fcae89902f (diff) | |
download | gdb-b88bb45061e0095a0bafce938363f3051a602dd2.zip gdb-b88bb45061e0095a0bafce938363f3051a602dd2.tar.gz gdb-b88bb45061e0095a0bafce938363f3051a602dd2.tar.bz2 |
Introduce new shared function remote_fileio_to_fio_error
This commit introduces a new shared function to replace three
identical functions in various places in the codebase.
gdb/ChangeLog:
* common/common-remote-fileio.h (remote_fileio_to_fio_error):
New declaration.
* common/common-remote-fileio.c (remote_fileio_to_fio_error):
New function, factored out the named functions below.
* inf-child.c (gdb/fileio.h): Remove include.
(common-remote-fileio.h): New include.
(inf_child_errno_to_fileio_error): Remove function. Update
all callers to use remote_fileio_to_fio_error.
* remote-fileio.c (remote_fileio_errno_to_target): Likewise.
gdb/gdbserver/ChangeLog:
* hostio-errno.c (errno_to_fileio_error): Remove function.
Update caller to use remote_fileio_to_fio_error.
Diffstat (limited to 'gdb/common')
-rw-r--r-- | gdb/common/common-remote-fileio.c | 53 | ||||
-rw-r--r-- | gdb/common/common-remote-fileio.h | 5 |
2 files changed, 58 insertions, 0 deletions
diff --git a/gdb/common/common-remote-fileio.c b/gdb/common/common-remote-fileio.c index f78b3f7..30c2c6b 100644 --- a/gdb/common/common-remote-fileio.c +++ b/gdb/common/common-remote-fileio.c @@ -21,6 +21,59 @@ #include "common-remote-fileio.h" #include <sys/stat.h> +/* See common-remote-fileio.h. */ + +int +remote_fileio_to_fio_error (int error) +{ + switch (error) + { + case EPERM: + return FILEIO_EPERM; + case ENOENT: + return FILEIO_ENOENT; + case EINTR: + return FILEIO_EINTR; + case EIO: + return FILEIO_EIO; + case EBADF: + return FILEIO_EBADF; + case EACCES: + return FILEIO_EACCES; + case EFAULT: + return FILEIO_EFAULT; + case EBUSY: + return FILEIO_EBUSY; + case EEXIST: + return FILEIO_EEXIST; + case ENODEV: + return FILEIO_ENODEV; + case ENOTDIR: + return FILEIO_ENOTDIR; + case EISDIR: + return FILEIO_EISDIR; + case EINVAL: + return FILEIO_EINVAL; + case ENFILE: + return FILEIO_ENFILE; + case EMFILE: + return FILEIO_EMFILE; + case EFBIG: + return FILEIO_EFBIG; + case ENOSPC: + return FILEIO_ENOSPC; + case ESPIPE: + return FILEIO_ESPIPE; + case EROFS: + return FILEIO_EROFS; + case ENOSYS: + return FILEIO_ENOSYS; + case ENAMETOOLONG: + return FILEIO_ENAMETOOLONG; + } + return FILEIO_EUNKNOWN; +} + /* Convert a host-format mode_t into a bitmask of File-I/O flags. */ static LONGEST diff --git a/gdb/common/common-remote-fileio.h b/gdb/common/common-remote-fileio.h index 27bc585..96e4aa5 100644 --- a/gdb/common/common-remote-fileio.h +++ b/gdb/common/common-remote-fileio.h @@ -23,6 +23,11 @@ #include "gdb/fileio.h" #include <sys/stat.h> +/* Convert a errno error number to a File-I/O error number for + transmission over the remote protocol. */ + +extern int remote_fileio_to_fio_error (int error); + /* Pack a host-format integer into a byte buffer in big-endian format ready for transmission over the remote protocol. BYTES specifies the size of the integer to pack in bytes. */ |