diff options
author | Pascal Obry <obry@adacore.com> | 2014-08-01 08:09:43 +0000 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2014-08-01 10:09:43 +0200 |
commit | 479f90598ae5c20aa042e4700a98f273c8094496 (patch) | |
tree | 985eb45e6091440293155ce13497b176ad648ef3 /gcc/ada/adaint.c | |
parent | 2b9fbec94e888c688fa4d7e1d23658f54cab2b41 (diff) | |
download | gcc-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.c | 21 |
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 |