aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/adaint.c
diff options
context:
space:
mode:
authorPascal Obry <obry@adacore.com>2014-08-01 08:09:43 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2014-08-01 10:09:43 +0200
commit479f90598ae5c20aa042e4700a98f273c8094496 (patch)
tree985eb45e6091440293155ce13497b176ad648ef3 /gcc/ada/adaint.c
parent2b9fbec94e888c688fa4d7e1d23658f54cab2b41 (diff)
downloadgcc-479f90598ae5c20aa042e4700a98f273c8094496.zip
gcc-479f90598ae5c20aa042e4700a98f273c8094496.tar.gz
gcc-479f90598ae5c20aa042e4700a98f273c8094496.tar.bz2
adaint.h, adaint.c (__gnat_open): Added.
2014-08-01 Pascal Obry <obry@adacore.com> * adaint.h, adaint.c (__gnat_open): Added. * s-crtl.ads (open): Import __gnat_open for large file support. From-SVN: r213411
Diffstat (limited to 'gcc/ada/adaint.c')
-rw-r--r--gcc/ada/adaint.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c
index e031393..42a8077 100644
--- a/gcc/ada/adaint.c
+++ b/gcc/ada/adaint.c
@@ -1219,6 +1219,27 @@ __gnat_open_new_temp (char *path, int fmode)
return fd < 0 ? -1 : fd;
}
+int
+__gnat_open (char *path, int fmode)
+{
+ int fd;
+
+#if defined (VMS)
+ fd = open (path, fmode, PERM, "mbc=16", "deq=64", "fop=tef");
+#elif defined (__MINGW32__)
+ {
+ TCHAR wpath[GNAT_MAX_PATH_LEN];
+
+ S2WSC (wpath, path, GNAT_MAX_PATH_LEN);
+ fd = _topen (wpath, fmode, PERM);
+ }
+#else
+ fd = GNAT_OPEN (path, fmode, PERM);
+#endif
+
+ return fd < 0 ? -1 : fd;
+}
+
/****************************************************************
** Perform a call to GNAT_STAT or GNAT_FSTAT, and extract as much information
** as possible from it, storing the result in a cache for later reuse