diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-12-15 11:51:01 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-12-15 11:51:01 +0000 |
commit | 9e0ecfab1d8fa100f78d23060cd15b5c34a449a7 (patch) | |
tree | 1a02b34983bc3ac002967364fb841e53d5f9fc47 /gcc/ada/i-cstrea.ads | |
parent | c974e0ffe8c1ecfaafef45dc8a723120fbe469ee (diff) | |
download | gcc-9e0ecfab1d8fa100f78d23060cd15b5c34a449a7.tar.gz |
2003-12-15 Robert Dewar <dewar@gnat.com>
* exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
sec stack size.
2003-12-15 Vincent Celier <celier@gnat.com>
* gnatchop.adb: (Error_Msg): Do not exit on error for a warning
(Gnatchop): Do not set failure status when reporting the number of
warnings.
2003-12-15 Doug Rupp <rupp@gnat.com>
* s-ctrl.ads: New file.
* Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
* Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
(GNATBIND_OBJS): Add ada/s-crtl.o.
* Makefile.in [VMS]: Clean up ifeq rules.
* gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
s-tasdeb.adb: Update copyright.
Import System.CRTL.
Make minor modifications to use System.CRTL declared functions instead
of importing locally.
2003-12-15 GNAT Script <nobody@gnat.com>
* Make-lang.in: Makefile automatically updated
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74627 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/i-cstrea.ads')
-rw-r--r-- | gcc/ada/i-cstrea.ads | 102 |
1 files changed, 33 insertions, 69 deletions
diff --git a/gcc/ada/i-cstrea.ads b/gcc/ada/i-cstrea.ads index 4650cdbde83..39f8af90a74 100644 --- a/gcc/ada/i-cstrea.ads +++ b/gcc/ada/i-cstrea.ads @@ -34,38 +34,17 @@ -- This package is a thin binding to selected functions in the C -- library that provide a complete interface for handling C streams. -with System.Parameters; +with System.CRTL; package Interfaces.C_Streams is pragma Preelaborate; - -- Note: the reason we do not use the types that are in Interfaces.C is - -- that we want to avoid dragging in the code in this unit if possible. - - subtype chars is System.Address; - -- Pointer to null-terminated array of characters - - subtype FILEs is System.Address; - -- Corresponds to the C type FILE* - + subtype chars is System.CRTL.chars; + subtype FILEs is System.CRTL.FILEs; + subtype int is System.CRTL.int; + subtype long is System.CRTL.long; + subtype size_t is System.CRTL.size_t; subtype voids is System.Address; - -- Corresponds to the C type void* - - subtype int is Integer; - -- Note: the above type is a subtype deliberately, and it is part of - -- this spec that the above correspondence is guaranteed. This means - -- that it is legitimate to, for example, use Integer instead of int. - -- We provide this synonym for clarity, but in some cases it may be - -- convenient to use the underlying types (for example to avoid an - -- unnecessary dependency of a spec on the spec of this unit). - - type long is range -(2 ** (System.Parameters.long_bits - 1)) - .. +(2 ** (System.Parameters.long_bits - 1)) - 1; - -- Note: the above type also used to be a subtype, but the correspondence - -- was unused so it was made into a parameterized type to avoid having - -- multiple versions of this spec for systems where long /= Long_Integer. - - type size_t is mod 2 ** Standard'Address_Size; NULL_Stream : constant FILEs; -- Value returned (NULL in C) to indicate an fdopen/fopen/tmpfile error @@ -106,34 +85,39 @@ package Interfaces.C_Streams is -- Library Reference" (Microsoft Press, 1990, ISBN 1-55615-225-6), -- which includes useful information on system compatibility. - procedure clearerr (stream : FILEs); + procedure clearerr (stream : FILEs) renames System.CRTL.clearerr; - function fclose (stream : FILEs) return int; + function fclose (stream : FILEs) return int renames System.CRTL.fclose; - function fdopen (handle : int; mode : chars) return FILEs; + function fdopen (handle : int; mode : chars) return FILEs + renames System.CRTL.fdopen; function feof (stream : FILEs) return int; function ferror (stream : FILEs) return int; - function fflush (stream : FILEs) return int; + function fflush (stream : FILEs) return int renames System.CRTL.fflush; - function fgetc (stream : FILEs) return int; + function fgetc (stream : FILEs) return int renames System.CRTL.fgetc; - function fgets (strng : chars; n : int; stream : FILEs) return chars; + function fgets (strng : chars; n : int; stream : FILEs) return chars + renames System.CRTL.fgets; function fileno (stream : FILEs) return int; - function fopen (filename : chars; Mode : chars) return FILEs; + function fopen (filename : chars; Mode : chars) return FILEs + renames System.CRTL.fopen; -- Note: to maintain target independence, use text_translation_required, -- a boolean variable defined in a-sysdep.c to deal with the target -- dependent text translation requirement. If this variable is set, -- then b/t should be appended to the standard mode argument to set -- the text translation mode off or on as required. - function fputc (C : int; stream : FILEs) return int; + function fputc (C : int; stream : FILEs) return int + renames System.CRTL.fputc; - function fputs (Strng : chars; Stream : FILEs) return int; + function fputs (Strng : chars; Stream : FILEs) return int + renames System.CRTL.fputs; function fread (buffer : voids; @@ -159,15 +143,16 @@ package Interfaces.C_Streams is (filename : chars; mode : chars; stream : FILEs) - return FILEs; + return FILEs renames System.CRTL.freopen; function fseek (stream : FILEs; offset : long; origin : int) - return int; + return int renames System.CRTL.fseek; - function ftell (stream : FILEs) return long; + function ftell (stream : FILEs) return long + renames System.CRTL.ftell; function fwrite (buffer : voids; @@ -176,12 +161,12 @@ package Interfaces.C_Streams is stream : FILEs) return size_t; - function isatty (handle : int) return int; + function isatty (handle : int) return int renames System.CRTL.isatty; - procedure mktemp (template : chars); + procedure mktemp (template : chars) renames System.CRTL.mktemp; -- The return value (which is just a pointer to template) is discarded - procedure rewind (stream : FILEs); + procedure rewind (stream : FILEs) renames System.CRTL.rewind; function setvbuf (stream : FILEs; @@ -190,16 +175,18 @@ package Interfaces.C_Streams is size : size_t) return int; - procedure tmpnam (string : chars); + procedure tmpnam (string : chars) renames System.CRTL.tmpnam; -- The parameter must be a pointer to a string buffer of at least L_tmpnam -- bytes (the call with a null parameter is not supported). The returned -- value, which is just a copy of the input argument, is discarded. - function tmpfile return FILEs; + function tmpfile return FILEs renames System.CRTL.tmpfile; - function ungetc (c : int; stream : FILEs) return int; + function ungetc (c : int; stream : FILEs) return int + renames System.CRTL.ungetc; - function unlink (filename : chars) return int; + function unlink (filename : chars) return int + renames System.CRTL.unlink; --------------------- -- Extra functions -- @@ -253,29 +240,6 @@ private pragma Inline (fwrite); pragma Inline (setvbuf); - -- The following routines are always functions in C, and thus can be - -- imported directly into Ada without any intermediate C needed - - pragma Import (C, clearerr); - pragma Import (C, fclose); - pragma Import (C, fdopen); - pragma Import (C, fflush); - pragma Import (C, fgetc); - pragma Import (C, fgets); - pragma Import (C, fopen); - pragma Import (C, fputc); - pragma Import (C, fputs); - pragma Import (C, freopen); - pragma Import (C, fseek); - pragma Import (C, ftell); - pragma Import (C, isatty); - pragma Import (C, mktemp); - pragma Import (C, rewind); - pragma Import (C, tmpnam); - pragma Import (C, tmpfile); - pragma Import (C, ungetc); - pragma Import (C, unlink); - pragma Import (C, file_exists, "__gnat_file_exists"); pragma Import (C, is_regular_file, "__gnat_is_regular_file_fd"); |