aboutsummaryrefslogtreecommitdiff
path: root/gdb/common/fileio.h
diff options
context:
space:
mode:
authorGary Benson <gbenson@redhat.com>2015-06-09 10:00:15 +0100
committerGary Benson <gbenson@redhat.com>2015-06-09 13:24:46 +0100
commit3ac2e371a1abd1279f66477aa4fc68039da1872e (patch)
tree5571999b6a42fbfb6249c98fcf86a790b117d594 /gdb/common/fileio.h
parentecef18c564bd609aa7640564747b807bfe1632c6 (diff)
downloadgdb-3ac2e371a1abd1279f66477aa4fc68039da1872e.zip
gdb-3ac2e371a1abd1279f66477aa4fc68039da1872e.tar.gz
gdb-3ac2e371a1abd1279f66477aa4fc68039da1872e.tar.bz2
Don't assume File-I/O mode bits match the host's format
inf_child_fileio_open and its gdbserver equivalent both assume that the mode_t bits defined in gdb/fileio.h are the same as those used by the open system call, but there is no mechanism to ensure this is the case. This commit adds a conversion function to handle systems where the File-I/O definitions do not align with the host's. gdb/ChangeLog: * common/fileio.h (fileio_to_host_mode): New declaration. * common/fileio.c (fileio_to_host_mode): New Function. * inf-child.c (inf_child_fileio_open): Process mode argument with fileio_to_host_mode. gdb/gdbserver/ChangeLog: * hostio.c (handle_open): Process mode argument with fileio_to_host_mode.
Diffstat (limited to 'gdb/common/fileio.h')
-rw-r--r--gdb/common/fileio.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/gdb/common/fileio.h b/gdb/common/fileio.h
index b0f27ab..88f96cf 100644
--- a/gdb/common/fileio.h
+++ b/gdb/common/fileio.h
@@ -32,6 +32,11 @@ extern int host_to_fileio_error (int error);
extern int fileio_to_host_openflags (int fflags, int *flags);
+/* Convert File-I/O mode FMODE to host format, storing
+ the result in *MODE. Return 0 on success, -1 on error. */
+
+extern int fileio_to_host_mode (int fmode, mode_t *mode);
+
/* Pack a host-format integer into a byte buffer in big-endian
format. BYTES specifies the size of the integer to pack in
bytes. */