summaryrefslogtreecommitdiff
path: root/gcc/ada/s-stratt.ads
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/s-stratt.ads')
-rw-r--r--gcc/ada/s-stratt.ads26
1 files changed, 25 insertions, 1 deletions
diff --git a/gcc/ada/s-stratt.ads b/gcc/ada/s-stratt.ads
index 926c6f6a0eb..a62feba078f 100644
--- a/gcc/ada/s-stratt.ads
+++ b/gcc/ada/s-stratt.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2000 Free Software Foundation, Inc.
+-- Copyright (C) 1992-2003 Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -53,6 +53,8 @@ pragma Preelaborate (Stream_Attributes);
subtype RST is Ada.Streams.Root_Stream_Type'Class;
+ subtype SEC is Ada.Streams.Stream_Element_Count;
+
-- Enumeration types are usually transferred using the routine for the
-- corresponding integer. The exception is that special routines are
-- provided for Boolean and the character types, in case the protocol
@@ -148,6 +150,28 @@ pragma Preelaborate (Stream_Attributes);
procedure W_U (Stream : access RST; Item : in UST.Unsigned);
procedure W_WC (Stream : access RST; Item : in Wide_Character);
+ ----------------------------
+ -- Composite Input/Output --
+ ----------------------------
+
+ -- The following Boolean constant is defined and set to True only if the
+ -- stream representation of a series of elementary items of the same
+ -- type (one of the types handled by the above procedures) has the same
+ -- representation as an array of such items in memory. This allows such
+ -- a series of items to be read or written as a block, instead of
+ -- element by element.
+
+ -- If the stream representation does not have this property for all the
+ -- above types, then this constant can be omitted or set to False,
+ -- and the front end will generate element-by-element operations.
+
+ -- This interface assumes that a Stream_Element has the same size as
+ -- a Storage_Unit. If that is not the case, then this flag should
+ -- also be omitted (or set to False).
+
+ Block_Stream_Ops_OK : constant Boolean := True;
+ -- Set to False if block stream operations not permitted
+
private
pragma Inline (I_AD);
pragma Inline (I_AS);