------------------------------------------------------------------------------ ------------------------------------------------------------------------------ -- This source file was automatically generated by 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 GNU GPL real-time scheduling analysis tool. -- This program provides services to automatically check schedulability and -- other performance criteria of real-time architecture models. -- -- Copyright (C) 2002-2016 Frank Singhoff, Alain Plantec, Jerome Legrand -- -- The Cheddar project was started in 2002 by -- Frank Singhoff, Lab-STICC UMR 6285 laboratory, Université de Bretagne Occidentale -- -- Cheddar has been published in the "Agence de Protection des Programmes/France" in 2008. -- Since 2008, Ellidiss technologies also contributes to the development of -- Cheddar and provides industrial support. -- -- The full list of contributors and sponsors can be found in AUTHORS.txt and SPONSORS.txt -- -- 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; use Framework_Config.Priority_Io; with id_generators; use id_generators; with Tasks; use Tasks; with Convert_Strings; with Convert_Unbounded_Strings; with text_io; use text_io; with standards_io; use standards_io; use standards_io.natural_io; with Unbounded_Strings; use Unbounded_Strings; use unbounded_strings.Unbounded_String_List_Package; with Ada.Finalization; with Unchecked_Deallocation; with Primitive_XML_Strings; use Primitive_XML_Strings; with ada.strings.unbounded.text_io; use ada.strings.unbounded.text_io; Package Scheduler_Interface is type Scheduling_Parameters; type Scheduling_Parameters_Ptr is access all Scheduling_Parameters; type Preemptives_Type is ( Preemptive, Not_Preemptive); procedure To_Preemptives_Type is new Convert_Strings(Preemptives_Type, Preemptive); procedure To_Preemptives_Type is new Convert_Unbounded_Strings(Preemptives_Type, Preemptive); function XML_String (obj : in Preemptives_Type) return Unbounded_String; function XML_Ref_String (obj : in Preemptives_Type) return Unbounded_String; package Preemptives_Type_io is new text_io.enumeration_io(Preemptives_Type); use Preemptives_Type_io; type Schedulers_Type is ( No_Scheduling_Protocol, Rate_Monotonic_Protocol, Deadline_Monotonic_Protocol, Posix_1003_Highest_Priority_First_Protocol, Earliest_Deadline_First_Protocol, Least_Laxity_First_Protocol, Least_Runtime_Laxity_First_Protocol, D_Over_Protocol, Maximum_Urgency_First_Based_On_Laxity_Protocol, Maximum_Urgency_First_Based_On_Deadline_Protocol, Earliest_Deadline_First_Energy_Harvesting_Protocol, Earliest_Deadline_First_Energy_To_Time_Protocol, Round_Robin_Protocol, Time_Sharing_Based_On_Cpu_Usage_Protocol, Time_Sharing_Based_On_Wait_Time_Protocol, Compiled_User_Defined_Protocol, Automata_User_Defined_Protocol, Pipeline_User_Defined_Protocol, User_Defined_Protocol, Mixed_Criticality_SMC_Protocol, Mixed_Criticality_AMC_Protocol, Mixed_Criticality_Anytime_AMC_Protocol, Mixed_Criticality_Recurrent_Anytime_AMC_Protocol, Mixed_Criticality_EDF_VD_Protocol, DAG_highest_level_first_estimated_times_protocol, Hierarchical_Cyclic_Protocol, Hierarchical_Round_Robin_Protocol, Hierarchical_Fixed_Priority_Protocol, Hierarchical_Offline_Protocol, Hierarchical_Polling_Aperiodic_Server_Protocol, Hierarchical_Priority_Exchange_Aperiodic_Server_Protocol, Hierarchical_Sporadic_Aperiodic_Server_Protocol, Hierarchical_Deferrable_Aperiodic_Server_Protocol, Reduction_To_Uniprocessor_protocol, Earliest_Deadline_Zero_Laxity_protocol, Largest_Local_Remaining_Execution_First_Protocol, Proportionate_Fair_PF_Protocol, Proportionate_Fair_PD_Protocol, Proportionate_Fair_PD2_Protocol); procedure To_Schedulers_Type is new Convert_Strings(Schedulers_Type, No_Scheduling_Protocol); procedure To_Schedulers_Type is new Convert_Unbounded_Strings(Schedulers_Type, No_Scheduling_Protocol); function XML_String (obj : in Schedulers_Type) return Unbounded_String; function XML_Ref_String (obj : in Schedulers_Type) return Unbounded_String; package Schedulers_Type_io is new text_io.enumeration_io(Schedulers_Type); use Schedulers_Type_io; -- --------= Scheduling_Parameters =-------- type Scheduling_Parameters is record scheduler_type : Schedulers_Type; quantum : Natural; preemptive_type : Preemptives_Type; automaton_name : Unbounded_String; capacity : Natural; period : Natural; threshold : Natural; priority : Priority_Range; user_defined_scheduler_source : Unbounded_String; user_defined_scheduler_source_file_name : Unbounded_String; user_defined_scheduler_protocol_name : Unbounded_String; start_time : Natural; end record; procedure Initialize(obj : out Scheduling_Parameters); procedure Put(obj : in Scheduling_Parameters); procedure Put(obj : in Scheduling_Parameters_Ptr); function Copy(obj : in Scheduling_Parameters_Ptr) return Scheduling_Parameters_Ptr; function Copy(obj : in Scheduling_Parameters) return Scheduling_Parameters_Ptr; procedure Build_Attributes_XML_String(obj : in Scheduling_Parameters; result : in out Unbounded_String); function XML_String(obj : in Scheduling_Parameters) return Unbounded_String; function XML_String(obj : in Scheduling_Parameters_Ptr) return Unbounded_String; function XML_Ref_String(obj : in Scheduling_Parameters) return Unbounded_String; procedure Free is new Unchecked_Deallocation (Scheduling_Parameters, Scheduling_Parameters_Ptr); End Scheduler_Interface;