------------------------------------------------------------------------------ ------------------------------------------------------------------------------ -- This Ada package was automatically generated by the software engineering tool Platypus -- see http://dossen.univ-brest.fr/apl -- -- Any modification of this file will be lost. -- Please see the "platypus" directory instead : it contains the Cheddar's -- model and its meta-model. ------------------------------------------------------------------------------ ------------------------------------------------------------------------------ -- Cheddar is a free real time scheduling tool. -- This program provides services to automatically check temporal constraints -- of real time tasks. -- -- Copyright (C) 2002-2009 Frank Singhoff -- Cheddar is developed by the LAB-STICC Team, University of Brest -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -- -- -- Contact : cheddar@listes.univ-brest.fr -- To post to this mailing list, you must be subscribed -- (see http//beru.univ-brest.fr/~singhoff/cheddar for details) -- ------------------------------------------------------------------------------ ------------------------------------------------------------------------------ with Ada.Strings.Unbounded; use Ada.Strings.Unbounded; with Framework_Config; use Framework_Config; with id_generators; use id_generators; with Time_Unit_Events; use Time_Unit_Events; with Buffers; use Buffers; use Buffers.Buffer_Roles_Package; with access_Lists; with Unchecked_Deallocation; with Indexed_Tables; with standards_io; use standards_io; use standards_io.double_io; use standards_io.natural_io; with Ada.Finalization; with unbounded_strings; use unbounded_strings; use unbounded_strings.Unbounded_String_List_Package; with Primitive_XML_Strings; use Primitive_XML_Strings; with Tables; with Task_Set; use Task_Set; with Double_Util; use Double_Util; with Ada.Strings.Unbounded.Text_Io; use Ada.Strings.Unbounded.Text_Io; with Tasks; use Tasks; with Text_io; use Text_io; with Convert_Strings; with Convert_Unbounded_Strings; with Ada.Numerics.Aux; use Ada.Numerics.Aux; Package Scheduling_Analysis is subtype Scheduling_Sequence is Time_Unit_Package.Indexed_Table; subtype Scheduling_Sequence_Ptr is Time_Unit_Package.Indexed_Table_Ptr; package Generic_Index_Lst_Package is new access_Lists(Put => Put, Element => Double, Element_Ptr => Double_Ptr, Free => Double_Util.Free, copy => copy, xml_string => xml_string); use Generic_Index_Lst_Package; package Double_Tasks_Parameters_Package is new Indexed_Tables(Double, Generic_Task_Ptr, Framework_Config.Max_Tasks, 0, Double_Util.Put, Double_Util.Initialize, Put_Name, Get_Name, XML_String, XML_Ref_String); use Double_Tasks_Parameters_Package; subtype Blocking_Time_Table is Double_Tasks_Parameters_Package.indexed_table; subtype Blocking_Time_Table_Ptr is Double_Tasks_Parameters_Package.indexed_table_Ptr; subtype Blocking_Time_Range is Double_Tasks_Parameters_Package.indexed_table_range; subtype Blocking_Time_Range_Ptr is Double_Tasks_Parameters_Package.indexed_table_range_Ptr; subtype Response_Time_Table is Double_Tasks_Parameters_Package.indexed_table; subtype Response_Time_Table_Ptr is Double_Tasks_Parameters_Package.indexed_table_Ptr; subtype Response_Time_Range is Double_Tasks_Parameters_Package.indexed_table_range; subtype Response_Time_Range_Ptr is Double_Tasks_Parameters_Package.indexed_table_range_Ptr; -- --------= Buffer_Size_Item =-------- type Buffer_Size_Item is record time : Natural; size : Natural; end record; type Buffer_Size_Item_Ptr is access all Buffer_Size_Item; procedure Initialize(obj : out Buffer_Size_Item); procedure Put(obj : in Buffer_Size_Item); procedure Put(obj : in Buffer_Size_Item_Ptr); function Copy(obj : in Buffer_Size_Item_Ptr) return Buffer_Size_Item_Ptr; function Copy(obj : in Buffer_Size_Item) return Buffer_Size_Item_Ptr; procedure Build_Attributes_XML_String(obj : in Buffer_Size_Item; level : in natural := 0; result : in out Unbounded_String); function XML_String(obj : in Buffer_Size_Item; level : in natural := 0) return Unbounded_String; function XML_Ref_String(obj : in Buffer_Size_Item; level : in natural := 0) return Unbounded_String; procedure Free is new Unchecked_Deallocation (Buffer_Size_Item, Buffer_Size_Item_Ptr); package Buffer_Size_Package is new Tables(Buffer_Size_Item, Framework_Config.Max_Scheduling_Period, Put, XML_String, XML_Ref_String); use Buffer_Size_Package; subtype Buffer_Size_Range is Buffer_Size_Package.table_range; subtype Buffer_Size_Range_Ptr is Buffer_Size_Package.table_range_Ptr; subtype Buffer_Size_Table is Buffer_Size_Package.table; subtype Buffer_Size_Table_Ptr is Buffer_Size_Package.table_Ptr; package Buffer_Result_Package is new Indexed_Tables(Buffer_Size_Table, Buffer_Ptr, Framework_Config.Max_Buffers, 0, Put, Initialize, Buffers.Put_Name, Buffers.Get_Name, XML_Root_String, XML_String); use Buffer_Result_Package; subtype Buffer_Result_Range is Buffer_Result_Package.indexed_table_range; subtype Buffer_Result_Range_Ptr is Buffer_Result_Package.indexed_table_range_Ptr; subtype Buffer_Result_Table is Buffer_Result_Package.indexed_table; subtype Buffer_Result_Table_Ptr is Buffer_Result_Package.indexed_table_Ptr; package Waiting_Time_Package is new Tables(Double, Framework_Config.Max_Scheduling_Period, Put, XML_String, XML_Ref_String); use Waiting_Time_Package; subtype Waiting_Time_Range is Waiting_Time_Package.table_range; subtype Waiting_Time_Range_Ptr is Waiting_Time_Package.table_range_Ptr; subtype Waiting_Time_Table is Waiting_Time_Package.table; subtype Waiting_Time_Table_Ptr is Waiting_Time_Package.table_Ptr; -- --------= Density_Item =-------- type Density_Item is record response_time : Natural; probability : Double; end record; type Density_Item_Ptr is access all Density_Item; procedure Initialize(obj : out Density_Item); procedure Put(obj : in Density_Item); procedure Put(obj : in Density_Item_Ptr); function Copy(obj : in Density_Item_Ptr) return Density_Item_Ptr; function Copy(obj : in Density_Item) return Density_Item_Ptr; procedure Build_Attributes_XML_String(obj : in Density_Item; level : in natural := 0; result : in out Unbounded_String); function XML_String(obj : in Density_Item; level : in natural := 0) return Unbounded_String; function XML_Ref_String(obj : in Density_Item; level : in natural := 0) return Unbounded_String; procedure Free is new Unchecked_Deallocation (Density_Item, Density_Item_Ptr); package Density_Package is new Tables(Density_Item, Framework_Config.Max_Density_Size, Put, XML_String, XML_Ref_String); use Density_Package; subtype Density_Range is Density_Package.table_range; subtype Density_Range_Ptr is Density_Package.table_range_Ptr; subtype Density_Table is Density_Package.table; subtype Density_Table_Ptr is Density_Package.table_Ptr; package Densities_Table_Package is new Indexed_Tables(Density_Table, Generic_Task_Ptr, framework_config.max_tasks, 0, Put, Initialize, Put_Name, Get_Name, XML_Root_String, XML_String); use Densities_Table_Package; subtype Densities_Range is Densities_Table_Package.indexed_table_range; subtype Densities_Range_Ptr is Densities_Table_Package.indexed_table_range_Ptr; subtype Densities_Table is Densities_Table_Package.indexed_table; subtype Densities_Table_Ptr is Densities_Table_Package.indexed_table_Ptr; -- --------= Deadlock_Item =-------- type Deadlock_Item is record time : Natural; task_name : Unbounded_String; resource_name : Unbounded_String; end record; type Deadlock_Item_Ptr is access all Deadlock_Item; procedure Initialize(obj : out Deadlock_Item); procedure Put(obj : in Deadlock_Item); procedure Put(obj : in Deadlock_Item_Ptr); function Copy(obj : in Deadlock_Item_Ptr) return Deadlock_Item_Ptr; function Copy(obj : in Deadlock_Item) return Deadlock_Item_Ptr; procedure Build_Attributes_XML_String(obj : in Deadlock_Item; level : in natural := 0; result : in out Unbounded_String); function XML_String(obj : in Deadlock_Item; level : in natural := 0) return Unbounded_String; function XML_String(obj : in Deadlock_Item_ptr; level : in natural := 0) return Unbounded_String; function XML_Ref_String(obj : in Deadlock_Item; level : in natural := 0) return Unbounded_String; procedure Free is new Unchecked_Deallocation (Deadlock_Item, Deadlock_Item_Ptr); package Deadlock_Package is new Access_Lists(Deadlock_Item, Deadlock_Item_Ptr, Put, Free, Copy, xml_string); use Deadlock_Package; subtype Deadlock_Iterator is Deadlock_Package.iterator; subtype Deadlock_Iterator_Ptr is Deadlock_Package.iterator_Ptr; subtype Deadlock_List is Deadlock_Package.list; subtype Deadlock_List_Ptr is Deadlock_Package.list_Ptr; -- --------= Priority_Inversion_Item =-------- type Priority_Inversion_Item is record start_time : Natural; end_time : Natural; task_name : Unbounded_String; resource_name : Unbounded_String; end record; type Priority_Inversion_Item_Ptr is access all Priority_Inversion_Item; procedure Initialize(obj : out Priority_Inversion_Item); procedure Put(obj : in Priority_Inversion_Item); procedure Put(obj : in Priority_Inversion_Item_Ptr); function Copy(obj : in Priority_Inversion_Item_Ptr) return Priority_Inversion_Item_Ptr; function Copy(obj : in Priority_Inversion_Item) return Priority_Inversion_Item_Ptr; procedure Build_Attributes_XML_String(obj : in Priority_Inversion_Item; level : in natural := 0; result : in out Unbounded_String); function XML_String(obj : in Priority_Inversion_Item; level : in natural := 0) return Unbounded_String; function XML_String(obj : in Priority_Inversion_Item_ptr; level : in natural := 0) return Unbounded_String; function XML_Ref_String(obj : in Priority_Inversion_Item; level : in natural := 0) return Unbounded_String; procedure Free is new Unchecked_Deallocation (Priority_Inversion_Item, Priority_Inversion_Item_Ptr); package Priority_Inversion_List_Package is new Access_Lists(Priority_Inversion_Item, Priority_Inversion_Item_Ptr, Put, Free, Copy, xml_string); use Priority_Inversion_List_Package; subtype Priority_Inversion_Iterator is Priority_Inversion_List_Package.iterator; subtype Priority_Inversion_Iterator_Ptr is Priority_Inversion_List_Package.iterator_Ptr; subtype Priority_Inversion_List is Priority_Inversion_List_Package.list; subtype Priority_Inversion_List_Ptr is Priority_Inversion_List_Package.list_Ptr; End Scheduling_Analysis;