OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [ada/] [acats/] [support/] [fdd2a00.a] - Diff between revs 294 and 338

Only display areas with differences | Details | Blame | View Log

Rev 294 Rev 338
-- FDD2A00.A
-- FDD2A00.A
--
--
--                             Grant of Unlimited Rights
--                             Grant of Unlimited Rights
--
--
--     The Ada Conformity Assessment Authority (ACAA) holds unlimited
--     The Ada Conformity Assessment Authority (ACAA) holds unlimited
--     rights in the software and documentation contained herein. Unlimited
--     rights in the software and documentation contained herein. Unlimited
--     rights are the same as those granted by the U.S. Government for older
--     rights are the same as those granted by the U.S. Government for older
--     parts of the Ada Conformity Assessment Test Suite, and are defined
--     parts of the Ada Conformity Assessment Test Suite, and are defined
--     in DFAR 252.227-7013(a)(19). By making this public release, the ACAA
--     in DFAR 252.227-7013(a)(19). By making this public release, the ACAA
--     intends to confer upon all recipients unlimited rights equal to those
--     intends to confer upon all recipients unlimited rights equal to those
--     held by the ACAA. These rights include rights to use, duplicate,
--     held by the ACAA. These rights include rights to use, duplicate,
--     release or disclose the released technical data and computer software
--     release or disclose the released technical data and computer software
--     in whole or in part, in any manner and for any purpose whatsoever, and
--     in whole or in part, in any manner and for any purpose whatsoever, and
--     to have or permit others to do so.
--     to have or permit others to do so.
--
--
--                                    DISCLAIMER
--                                    DISCLAIMER
--
--
--     ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
--     ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
--     DISCLOSED ARE AS IS.  THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
--     DISCLOSED ARE AS IS.  THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
--     WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
--     WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
--     SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
--     SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
--     OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
--     OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
--     PARTICULAR PURPOSE OF SAID MATERIAL.
--     PARTICULAR PURPOSE OF SAID MATERIAL.
--
--
--
--
-- FOUNDATION DESCRIPTION:
-- FOUNDATION DESCRIPTION:
--      This foundation provides the basis for testing user-defined stream
--      This foundation provides the basis for testing user-defined stream
--      attributes. It provides operations which count calls to stream
--      attributes. It provides operations which count calls to stream
--      attributes.
--      attributes.
--
--
-- CHANGE HISTORY:
-- CHANGE HISTORY:
--    30 JUL 2001   PHL   Initial version.
--    30 JUL 2001   PHL   Initial version.
--     5 DEC 2001   RLB   Reformatted for ACATS.
--     5 DEC 2001   RLB   Reformatted for ACATS.
--
--
with Ada.Streams;
with Ada.Streams;
use Ada.Streams;
use Ada.Streams;
package FDD2A00 is
package FDD2A00 is
    type Kinds is (Read, Write, Input, Output);
    type Kinds is (Read, Write, Input, Output);
    type Counts is array (Kinds) of Natural;
    type Counts is array (Kinds) of Natural;
    type My_Stream (Size : Stream_Element_Count) is new Root_Stream_Type with
    type My_Stream (Size : Stream_Element_Count) is new Root_Stream_Type with
        record
        record
            First : Stream_Element_Offset := 1;
            First : Stream_Element_Offset := 1;
            Last : Stream_Element_Offset := 0;
            Last : Stream_Element_Offset := 0;
            Contents : Stream_Element_Array (1 .. Size);
            Contents : Stream_Element_Array (1 .. Size);
        end record;
        end record;
    procedure Clear (Stream : in out My_Stream);
    procedure Clear (Stream : in out My_Stream);
    procedure Read (Stream : in out My_Stream;
    procedure Read (Stream : in out My_Stream;
                    Item : out Stream_Element_Array;
                    Item : out Stream_Element_Array;
                    Last : out Stream_Element_Offset);
                    Last : out Stream_Element_Offset);
    procedure Write (Stream : in out My_Stream; Item : in Stream_Element_Array);
    procedure Write (Stream : in out My_Stream; Item : in Stream_Element_Array);
    generic
    generic
        type T (<>) is limited private;
        type T (<>) is limited private;
        with procedure Actual_Write
        with procedure Actual_Write
                          (Stream : access Root_Stream_Type'Class; Item : T);
                          (Stream : access Root_Stream_Type'Class; Item : T);
        with function Actual_Input
        with function Actual_Input
                         (Stream : access Root_Stream_Type'Class) return T;
                         (Stream : access Root_Stream_Type'Class) return T;
        with procedure Actual_Read (Stream : access Root_Stream_Type'Class;
        with procedure Actual_Read (Stream : access Root_Stream_Type'Class;
                                    Item : out T);
                                    Item : out T);
        with procedure Actual_Output
        with procedure Actual_Output
                          (Stream : access Root_Stream_Type'Class; Item : T);
                          (Stream : access Root_Stream_Type'Class; Item : T);
    package Counting_Stream_Ops is
    package Counting_Stream_Ops is
        procedure Write (Stream : access Root_Stream_Type'Class; Item : T);
        procedure Write (Stream : access Root_Stream_Type'Class; Item : T);
        function Input (Stream : access Root_Stream_Type'Class) return T;
        function Input (Stream : access Root_Stream_Type'Class) return T;
        procedure Read (Stream : access Root_Stream_Type'Class; Item : out T);
        procedure Read (Stream : access Root_Stream_Type'Class; Item : out T);
        procedure Output (Stream : access Root_Stream_Type'Class; Item : T);
        procedure Output (Stream : access Root_Stream_Type'Class; Item : T);
        function Get_Counts return Counts;
        function Get_Counts return Counts;
    end Counting_Stream_Ops;
    end Counting_Stream_Ops;
end FDD2A00;
end FDD2A00;
package body FDD2A00 is
package body FDD2A00 is
    procedure Clear (Stream : in out My_Stream) is
    procedure Clear (Stream : in out My_Stream) is
    begin
    begin
        Stream.First := 1;
        Stream.First := 1;
        Stream.Last := 0;
        Stream.Last := 0;
    end Clear;
    end Clear;
    procedure Read (Stream : in out My_Stream;
    procedure Read (Stream : in out My_Stream;
                    Item : out Stream_Element_Array;
                    Item : out Stream_Element_Array;
                    Last : out Stream_Element_Offset) is
                    Last : out Stream_Element_Offset) is
    begin
    begin
        if Item'Length >= Stream.Last - Stream.First + 1 then
        if Item'Length >= Stream.Last - Stream.First + 1 then
            Item (Item'First .. Item'First + Stream.Last - Stream.First) :=
            Item (Item'First .. Item'First + Stream.Last - Stream.First) :=
               Stream.Contents (Stream.First .. Stream.Last);
               Stream.Contents (Stream.First .. Stream.Last);
            Last := Item'First + Stream.Last - Stream.First;
            Last := Item'First + Stream.Last - Stream.First;
            Stream.First := Stream.Last + 1;
            Stream.First := Stream.Last + 1;
        else
        else
            Item := Stream.Contents (Stream.First ..
            Item := Stream.Contents (Stream.First ..
                                        Stream.First + Item'Length - 1);
                                        Stream.First + Item'Length - 1);
            Last := Item'Last;
            Last := Item'Last;
            Stream.First := Stream.First + Item'Length;
            Stream.First := Stream.First + Item'Length;
        end if;
        end if;
    end Read;
    end Read;
    procedure Write (Stream : in out My_Stream;
    procedure Write (Stream : in out My_Stream;
                     Item : in Stream_Element_Array) is
                     Item : in Stream_Element_Array) is
    begin
    begin
        Stream.Contents (Stream.Last + 1 .. Stream.Last + Item'Length) := Item;
        Stream.Contents (Stream.Last + 1 .. Stream.Last + Item'Length) := Item;
        Stream.Last := Stream.Last + Item'Length;
        Stream.Last := Stream.Last + Item'Length;
    end Write;
    end Write;
    package body Counting_Stream_Ops is
    package body Counting_Stream_Ops is
        Cnts : Counts := (others => 0);
        Cnts : Counts := (others => 0);
        procedure Write (Stream : access Root_Stream_Type'Class; Item : T) is
        procedure Write (Stream : access Root_Stream_Type'Class; Item : T) is
        begin
        begin
            Cnts (Write) := Cnts (Write) + 1;
            Cnts (Write) := Cnts (Write) + 1;
            Actual_Write (Stream, Item);
            Actual_Write (Stream, Item);
        end Write;
        end Write;
        function Input (Stream : access Root_Stream_Type'Class) return T is
        function Input (Stream : access Root_Stream_Type'Class) return T is
        begin
        begin
            Cnts (Input) := Cnts (Input) + 1;
            Cnts (Input) := Cnts (Input) + 1;
            return Actual_Input (Stream);
            return Actual_Input (Stream);
        end Input;
        end Input;
        procedure Read (Stream : access Root_Stream_Type'Class; Item : out T) is
        procedure Read (Stream : access Root_Stream_Type'Class; Item : out T) is
        begin
        begin
            Cnts (Read) := Cnts (Read) + 1;
            Cnts (Read) := Cnts (Read) + 1;
            Actual_Read (Stream, Item);
            Actual_Read (Stream, Item);
        end Read;
        end Read;
        procedure Output (Stream : access Root_Stream_Type'Class; Item : T) is
        procedure Output (Stream : access Root_Stream_Type'Class; Item : T) is
        begin
        begin
            Cnts (Output) := Cnts (Output) + 1;
            Cnts (Output) := Cnts (Output) + 1;
            Actual_Output (Stream, Item);
            Actual_Output (Stream, Item);
        end Output;
        end Output;
        function Get_Counts return Counts is
        function Get_Counts return Counts is
        begin
        begin
            return Cnts;
            return Cnts;
        end Get_Counts;
        end Get_Counts;
    end Counting_Stream_Ops;
    end Counting_Stream_Ops;
end FDD2A00;
end FDD2A00;
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.