------------------------------------------------------------------------------ ------------------------------------------------------------------------------ -- 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; with id_generators; use id_generators; with Parameters; use Parameters; use Parameters.Framework_Parameters_Table_Package; with Convert_Strings; with Convert_Unbounded_Strings; with text_io; use text_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 Tables; with ada.strings.unbounded.text_io; use ada.strings.unbounded.text_io; Package Call_Framework_Interface is type Framework_Request; type Framework_Request_Ptr is access all Framework_Request; type Framework_Response; type Framework_Response_Ptr is access all Framework_Response; type Framework_Statement_Type is ( Scheduling_Simulation_Basics, Scheduling_Simulation_Time_Line, Scheduling_Simulation_Preemption_Number, Scheduling_Simulation_Context_Switch_Number, Scheduling_Simulation_Response_Time, Scheduling_Simulation_All_Response_Times, Scheduling_Simulation_Blocking_Time, Scheduling_Simulation_Priority_Inversion, Scheduling_Simulation_Deadlock, Scheduling_Simulation_Run_Event_Handler, Scheduling_Feasibility_Basics, Scheduling_Feasibility_Periodic_Task_Worst_Case_Response_Time, Scheduling_Feasibility_Transaction_Worst_Case_Response_Time_Audsley, Scheduling_Feasibility_Transaction_Worst_Case_Response_Time_Tindell, Scheduling_Feasibility_Transaction_Worst_Case_Response_Time_Palencia, Scheduling_Feasibility_Transaction_Worst_Case_Response_Time_WCDOPS_Plus, Scheduling_Feasibility_Transaction_Worst_Case_Response_Time_WCDOPS_Plus_NIM, Scheduling_Feasibility_Cpu_Utilization, Scheduling_Feasibility_Compute_Worst_Case_Blocking_Time, Scheduling_Feasibility_Compute_And_Set_Worst_Case_Blocking_Time, Scheduling_Feasibility_Compute_Resource_Ceiling_Priority, Scheduling_Feasibility_Compute_And_Set_Resource_Ceiling_Priority, Scheduling_Feasibility_Tests_Compositional, Scheduling_Feasibility_Demand_Bound_Function, Scheduling_Feasibility_Interval, Scheduling_Feasibility_First_Fit, Scheduling_Feasibility_General_Task, Scheduling_Feasibility_Next_Fit, Scheduling_Feasibility_Best_Fit, Scheduling_Feasibility_Small_Task, Scheduling_Set_Priorities_According_To_Deadline_Monotonic, Scheduling_Set_Priorities_According_To_Rate_Monotonic, Scheduling_Set_Priorities_According_To_Audsley_OPA, Scheduling_Set_Priorities_According_To_OPA_CRPD_PT, Scheduling_Set_Priorities_According_To_OPA_CRPD_PT_Simplified, Scheduling_Set_Priorities_According_To_OPA_CRPD_Tree, Select_Feasibility_Tests_Simple, Select_Feasibility_Test_By_Name, Scheduling_Compute_Scheduling_Anomalies, Memory_Set_Footprint_Analysis, Memory_Compute_Footprint_Analysis, Memory_Analysis_Interferences_Delays, Buffer_Feasibility_Tests, Buffer_Scheduling_Simulation, Random_Response_Time_Density, Dependency_Compute_End_To_End_Response_Time_One_Step, Dependency_Set_End_To_End_Response_Time_One_Step, Dependency_Compute_End_To_End_Response_Time_All_Steps, Dependency_Set_End_To_End_Response_Time_All_Steps, Dependency_Compute_Chetto_Blazewicz_Priority, Dependency_Compute_Chetto_Blazewicz_Deadline, Dependency_Set_Chetto_Blazewicz_Priority, Dependency_Set_Chetto_Blazewicz_Deadline, Cache_Analysis_Compute_Cache_Access_Profile, Cache_Analysis_Import_CFG, Cache_Analysis_Import_CFG_And_Compute_Cache_Access_Profile, Network_NoC_Compute_Communication_Delay, Network_NoC_Compute_Path_Delay, Network_NoC_Compute_Direct_Interference_Delay, Network_NoC_Compute_Indirect_Interference_Delay, Network_Compute_NoC_Transformation_ECTM_SAF, Network_Set_NoC_Transformation_ECTM_SAF, Network_Compute_NoC_Transformation_ECTM_Wormhole, Network_Set_NoC_Transformation_ECTM_Wormhole, Network_Compute_NoC_Transformation_WCCTM_SAF, Network_Set_NoC_Transformation_WCCTM_SAF, Network_Compute_NoC_Transformation_WCCTM_Wormhole, Network_Set_NoC_Transformation_WCCTM_Wormhole, Network_Compute_Spacewire_Transformation_SCM, Network_Set_Spacewire_Transformation_SCM, MILS_Compute_security_chinese_wall, MILS_Compute_security_Warshall, MILS_Compute_security_bell_lapadula, MILS_Compute_security_biba); pragma convention (C, Framework_Statement_Type); procedure To_Framework_Statement_Type is new Convert_Strings(Framework_Statement_Type, Scheduling_Simulation_Basics); procedure To_Framework_Statement_Type is new Convert_Unbounded_Strings(Framework_Statement_Type, Scheduling_Simulation_Basics); function XML_String (obj : in Framework_Statement_Type) return Unbounded_String; function XML_Ref_String (obj : in Framework_Statement_Type) return Unbounded_String; package Framework_Statement_Type_io is new text_io.enumeration_io(Framework_Statement_Type); use Framework_Statement_Type_io; type Partioning_Type is ( General_Task, Best_Fit, First_Fit, Next_Fit, Small_Task); procedure To_Partioning_Type is new Convert_Strings(Partioning_Type, General_Task); procedure To_Partioning_Type is new Convert_Unbounded_Strings(Partioning_Type, General_Task); function XML_String (obj : in Partioning_Type) return Unbounded_String; function XML_Ref_String (obj : in Partioning_Type) return Unbounded_String; package Partioning_Type_io is new text_io.enumeration_io(Partioning_Type); use Partioning_Type_io; type Output_Format is ( Xml_Output, String_Output, Raw_Output); pragma convention (C, Output_Format); procedure To_Output_Format is new Convert_Strings(Output_Format, Xml_Output); procedure To_Output_Format is new Convert_Unbounded_Strings(Output_Format, Xml_Output); function XML_String (obj : in Output_Format) return Unbounded_String; function XML_Ref_String (obj : in Output_Format) return Unbounded_String; package Output_Format_io is new text_io.enumeration_io(Output_Format); use Output_Format_io; type Transaction_Wcrt_Type is ( Periodic, Tindell, Audsley, Palencia, Wcdops_plus, Wcdops_plus_nim); procedure To_Transaction_Wcrt_Type is new Convert_Strings(Transaction_Wcrt_Type, Periodic); procedure To_Transaction_Wcrt_Type is new Convert_Unbounded_Strings(Transaction_Wcrt_Type, Periodic); function XML_String (obj : in Transaction_Wcrt_Type) return Unbounded_String; function XML_Ref_String (obj : in Transaction_Wcrt_Type) return Unbounded_String; package Transaction_Wcrt_Type_io is new text_io.enumeration_io(Transaction_Wcrt_Type); use Transaction_Wcrt_Type_io; type CRPD_Computation_Approach_Type is ( No_CRPD, ECB_Only, ECB_Union_Multiset, UCB_Union_Multiset, Combined_Multiset); procedure To_CRPD_Computation_Approach_Type is new Convert_Strings(CRPD_Computation_Approach_Type, No_CRPD); procedure To_CRPD_Computation_Approach_Type is new Convert_Unbounded_Strings(CRPD_Computation_Approach_Type, No_CRPD); function XML_String (obj : in CRPD_Computation_Approach_Type) return Unbounded_String; function XML_Ref_String (obj : in CRPD_Computation_Approach_Type) return Unbounded_String; package CRPD_Computation_Approach_Type_io is new text_io.enumeration_io(CRPD_Computation_Approach_Type); use CRPD_Computation_Approach_Type_io; type Memory_Interference_Computation_Approach_Type is ( No_Memory_Interference, DRAM_Single_Arbiter, Kalray_Multi_Arbiter); procedure To_Memory_Interference_Computation_Approach_Type is new Convert_Strings(Memory_Interference_Computation_Approach_Type, No_Memory_Interference); procedure To_Memory_Interference_Computation_Approach_Type is new Convert_Unbounded_Strings(Memory_Interference_Computation_Approach_Type, No_Memory_Interference); function XML_String (obj : in Memory_Interference_Computation_Approach_Type) return Unbounded_String; function XML_Ref_String (obj : in Memory_Interference_Computation_Approach_Type) return Unbounded_String; package Memory_Interference_Computation_Approach_Type_io is new text_io.enumeration_io(Memory_Interference_Computation_Approach_Type); use Memory_Interference_Computation_Approach_Type_io; type Perform_Order is ( Total_Order, Causal_Order); pragma convention (C, Perform_Order); procedure To_Perform_Order is new Convert_Strings(Perform_Order, Total_Order); procedure To_Perform_Order is new Convert_Unbounded_Strings(Perform_Order, Total_Order); function XML_String (obj : in Perform_Order) return Unbounded_String; function XML_Ref_String (obj : in Perform_Order) return Unbounded_String; package Perform_Order_io is new text_io.enumeration_io(Perform_Order); use Perform_Order_io; -- --------= Framework_Request =-------- type Framework_Request is record statement : Framework_Statement_Type; param : Framework_Parameters_Table; target : Unbounded_String; end record; procedure Initialize(obj : out Framework_Request); procedure Put(obj : in Framework_Request); procedure Put(obj : in Framework_Request_Ptr); function Copy(obj : in Framework_Request_Ptr) return Framework_Request_Ptr; function Copy(obj : in Framework_Request) return Framework_Request_Ptr; procedure Build_Attributes_XML_String(obj : in Framework_Request; result : in out Unbounded_String); function XML_String(obj : in Framework_Request) return Unbounded_String; function XML_String(obj : in Framework_Request_Ptr) return Unbounded_String; function XML_Ref_String(obj : in Framework_Request) return Unbounded_String; procedure Free is new Unchecked_Deallocation (Framework_Request, Framework_Request_Ptr); package Framework_Request_Package is new Tables(Framework_Request, Max_Requests, Put, XML_String, XML_Ref_String); use Framework_Request_Package; subtype Framework_Request_Range is Framework_Request_Package.table_range; subtype Framework_Request_Range_Ptr is Framework_Request_Package.table_range_Ptr; subtype Framework_Request_Table is Framework_Request_Package.table; subtype Framework_Request_Table_Ptr is Framework_Request_Package.table_Ptr; -- --------= Framework_Response =-------- type Framework_Response is record title : Unbounded_String; text : Unbounded_String; end record; procedure Initialize(obj : out Framework_Response); procedure Put(obj : in Framework_Response); procedure Put(obj : in Framework_Response_Ptr); function Copy(obj : in Framework_Response_Ptr) return Framework_Response_Ptr; function Copy(obj : in Framework_Response) return Framework_Response_Ptr; procedure Build_Attributes_XML_String(obj : in Framework_Response; result : in out Unbounded_String); function XML_String(obj : in Framework_Response) return Unbounded_String; function XML_String(obj : in Framework_Response_Ptr) return Unbounded_String; function XML_Ref_String(obj : in Framework_Response) return Unbounded_String; procedure Free is new Unchecked_Deallocation (Framework_Response, Framework_Response_Ptr); package Framework_Response_Package is new Tables(Framework_Response, Max_Requests, Put, XML_String, XML_Ref_String); use Framework_Response_Package; subtype Framework_Response_Range is Framework_Response_Package.table_range; subtype Framework_Response_Range_Ptr is Framework_Response_Package.table_range_Ptr; subtype Framework_Response_Table is Framework_Response_Package.table; subtype Framework_Response_Table_Ptr is Framework_Response_Package.table_Ptr; End Call_Framework_Interface;