------------------------------------------------------------------------------ ------------------------------------------------------------------------------ -- 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 Time_Unit_Events; use Time_Unit_Events; with Call_Framework_Interface; use Call_Framework_Interface; with Convert_Strings; with Convert_Unbounded_Strings; with text_io; use text_io; with standards_io; use standards_io; use standards_io.natural_io; use standards_io.boolean_io; with Unbounded_Strings; use Unbounded_Strings; with ada.strings.unbounded.text_io; use ada.strings.unbounded.text_io; Package Editor_Config is type Data_From_Simulation is ( Worst_Case, Best_Case, Average_Case, Plot_Case); procedure To_Data_From_Simulation is new Convert_Strings(Data_From_Simulation, Worst_Case); procedure To_Data_From_Simulation is new Convert_Unbounded_Strings(Data_From_Simulation, Worst_Case); function XML_String (obj : in Data_From_Simulation) return Unbounded_String; function XML_Ref_String (obj : in Data_From_Simulation) return Unbounded_String; package Data_From_Simulation_io is new text_io.enumeration_io(Data_From_Simulation); use Data_From_Simulation_io; type Data_From_Simulation_Table is Array ( Data_From_Simulation'Range ) of Boolean; WCRT_With_memory_interferences : Memory_Interference_Computation_Approach_Type := No_Memory_Interference; WCRT_With_CRPD : CRPD_Computation_Approach_Type := No_CRPD; display_release_resource : Boolean := True; display_wait_for_resource : Boolean := False; display_allocate_resource : Boolean := True; display_task_activation : Boolean := True; display_address_space_activation : Boolean := False; display_address_space_completion : Boolean := False; draw_core_unit_time_line : Boolean := True; several_colors_for_time_lines : Boolean := True; draw_address_space_time_line : Boolean := False; -- Maximum number of time line displayed at simulation. If the number of tasks/messages/buffers/resources in a project is greater that this constant, the user have to choose which object the simulator engine has to display Max_Time_Line_To_Display : Natural := 30; -- This constant stores the number of time line we draw between each timing axis Time_Line_Between_Time_Axis : Natural := 4; -- This constant stores how time unit axis are displayed. The constant give a duration (in time unit) between each time display on the axis Display_Witch_Time_Unit_Label : constant Natural := 5; Max_Time_Line_Size_To_Display : Natural := 1000; -- Maximum number of time line which can de computed All these time line can not be displayed Max_Time_Line : constant Natural := ((((Max_Tasks + Max_Messages) + Max_Resources) + Max_Buffers) + ((((Max_Tasks + Max_Messages) + Max_Resources) + Max_Buffers) / Time_Line_Between_Time_Axis)); -- Each item of this boolean table store the user's choose on which event the simulator engine will generate. options tuned by the user AT RUNTIME Generate_Events : Time_Unit_Event_Type_Boolean_Table := (others => True); -- should we do simulations on all processors ? options tuned by the user AT RUNTIME Schedule_All_Processors : Boolean := False; -- should we display the event table after simulation ? options tuned by the user AT RUNTIME Schedule_And_Display_Event_Table : Boolean := False; -- should we save the event table after simulation ? options tuned by the user AT RUNTIME Schedule_And_Export_Event_Table : Boolean := False; -- should we do simulations according to offset ? options tuned by the user AT RUNTIME Schedule_With_Offsets : Boolean := True; -- should we do simulations according to shared resources ? options tuned by the user AT RUNTIME Schedule_With_Resources : Boolean := True; -- should we do simulations according to jitters ? options tuned by the user AT RUNTIME Schedule_With_Jitters : Boolean := False; -- should we do simulations according to task precedencies ? options tuned by the user AT RUNTIME Schedule_With_Precedencies : Boolean := True; -- should we do simulations according to task crpd ? options tuned by the user AT RUNTIME Schedule_With_CRPD : Boolean := False; -- should discard jobs that missed their deadlines ? options tuned by the user AT RUNTIME Schedule_With_Discard_Missed_Deadlines : Boolean := False; -- should we detect scheduling anomalies during scheudling simulations ? options tuned by the user AT RUNTIME Anomaly_Detection : Boolean := False; -- should run dvfs adaptation AT RUNTIME Dvfs : Boolean := False; -- try to decrease preemption during simulations. options tuned by the user AT RUNTIME Minimize_Preemption : Boolean := False; Selected_Font : Unbounded_String := to_unbounded_string("-adobe-helvetica-medium-o-normal--14-140-75-75-p-78-iso8859-1"); --should we use only one seed to all random values generated during simulations ? options tuned by the user AT RUNTIME Has_Global_Seed : Boolean := True; --should we use seed with a predictable value to be able to do predictable simulation ? options tuned by the user AT RUNTIME Is_Global_Predictable_Seed : Boolean := False; --if Has_Global_Seed and Is_Global_Predictable_Seed are True, Global_Seed_Value store the seed. options tuned by the user AT RUNTIME Global_Seed_Value : Natural := 0; --should we compute, from a simulation worst/best/average/plot cases from response time. options tuned by the user AT RUNTIME Response_Time_From_Simulation : Data_From_Simulation_Table; --should we compute, from a simulation worst/best/average/plot cases from blocking time. options tuned by the user AT RUNTIME Blocking_Time_From_Simulation : Data_From_Simulation_Table; -- should we compute context switch during the simulation ? options tuned by the user AT RUNTIME Context_Switch_From_Simulation : Boolean := True; -- should we compute preemption during the simulation ? options tuned by the user AT RUNTIME Preemption_From_Simulation : Boolean := True; -- should we run the event analyser during the simulation ? options tuned by the user AT RUNTIME Run_Event_Analyzer_From_Simulation : Boolean := True; End Editor_Config;