------------------------------------------------------------------------------ ------------------------------------------------------------------------------ -- 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 free real time scheduling tool. -- This program provides services to automatically check temporal constraints -- of real time tasks. -- -- Copyright (C) 2002-2014 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 id_generators; use id_generators; with Convert_Strings; with Convert_Unbounded_Strings; with text_io; use text_io; with standards_io; use standards_io; use standards_io.natural_io; Package Framework_Config is -- Definition of priority range. We choose the most current value : -- 256 priority levels (from 0 to 255) -- Zero is the lowest priority level Type Priority_Range is new Natural range 0 .. 255; package Priority_Io is new Text_IO.Integer_IO (Priority_Range); use Priority_Io; type Debug_Level is ( No_Debug, Minimal, Verbose, Very_Verbose); procedure To_Debug_Level is new Convert_Strings(Debug_Level, No_Debug); procedure To_Debug_Level is new Convert_Unbounded_Strings(Debug_Level, No_Debug); function XML_String (obj : in Debug_Level) return Unbounded_String; function XML_Ref_String (obj : in Debug_Level) return Unbounded_String; package Debug_Level_io is new text_io.enumeration_io(Debug_Level); use Debug_Level_io; type Languages is ( Francais, English); procedure To_Languages is new Convert_Strings(Languages, Francais); procedure To_Languages is new Convert_Unbounded_Strings(Languages, Francais); function XML_String (obj : in Languages) return Unbounded_String; function XML_Ref_String (obj : in Languages) return Unbounded_String; package Languages_io is new text_io.enumeration_io(Languages); use Languages_io; -- Maximum processors, tasks, messages, buffers and resources which can be defined in a cheddar XML file Increasing these constants implies increasing cheddar memory footprint Cheddar_Debug : Debug_Level := No_Debug; Max_Processors : constant Natural := 100; Max_Task_groups : constant Natural := 30; Max_Tasks : constant Natural := 200; Max_Batteries : constant Natural := 5; Max_Messages : constant Natural := 5; Max_Buffers : constant Natural := 30; Max_Resources : constant Natural := 30; Max_Networks : constant Natural := 5; Max_Event_Analyzers : constant Natural := 10; Max_Address_Spaces : constant Natural := 100; Max_Sections : constant Natural := 50; Max_Transitions : constant Natural := 200; Max_Caches : constant Natural := 10; Max_Memories : constant Natural := 10; Max_Core_Units : constant Natural := Max_Processors; Max_Positions : constant Natural := 30; -- MUST BE EQUAL TO 1 + natural'max( natural'max(Max_Deployments,Max_Core_Units), Max_Address_Spaces); Max_Schedulers : constant Natural := 200; Max_Cache_Size : constant Natural := 256; Max_CFG_Nodes : constant Natural := 100; Max_CFG_Edges : constant Natural := 100; Max_CFGs : constant Natural := 200; Max_Objects : constant Natural := ((((((((((((Max_Processors + Max_Tasks) + Max_Messages) + Max_Buffers) + Max_Resources) + Max_Networks) + Max_Event_Analyzers) + Max_Address_Spaces) + Max_Sections) + Max_Address_Spaces) + Max_Transitions) + Max_Caches) + Max_Core_Units); -- Define the largest scheduling interval time that the simulator can compute. Increasing this constant implies increasing cheddar CPU usage Max_Scheduling_Period : constant Natural := 30000; Low_Priority : constant Priority_Range := Priority_Range'First; High_Priority : constant Priority_Range := Priority_Range'Last; Current_Language : Languages := English; -- Maximum number of tasks that can use a shared resource. Increasing this constant implies increasing cheddar memory footprint Max_Tasks_For_A_Resource : constant Natural := 10; -- Maximum number of tasks that can use a shared buffer. Increasing this constant implies increasing cheddar memory footprint Max_Tasks_For_A_Buffer : constant Natural := 10; -- Define maximum of variables that can be defined in parametric scheduler Increasing this constant implies increasing cheddar memory footprint Max_Variables : constant Natural := 400; -- Maximum number of statements in a parametric scheduler. Increasing this constant implies increasing cheddar memory footprint Max_Statements : constant Natural := 400; -- The langage used to defined a parametric scheduler is block oriented : the constant below given the maximum depth level of block. Increasing this constant implies increasing cheddar memory footprint Max_Block_Level : constant Natural := 100; -- Maximum number of dependencies of a XML Cheddar project file. Dependencies can be a message/buffer used by two tasks or a precedencies constraint. Increasing this constant implies increasing cheddar memory footprint Max_Tasks_Dependencies : constant Natural := 150; -- Define maximum of user's defined task parameter Max_User_Defined_Task_Parameters : constant Natural := 12; -- Maximum of parameters during a framework call Max_Framework_Parameters : constant Natural := 40; -- Define offset constants : a task can contain at most 3 offsets Max_Offsets : constant Natural := 5; -- This constant define the size of "xi" of a discrete density probability Max_Density_Size : constant Natural := 200; -- Maximum size of the framework request table. Increasing this constant implies increasing cheddar memory footprint Max_Requests : constant Natural := 40; -- Maximum size of a fixed string Max_String_Size : constant Natural := 200; -- This constant is used by the parametric simulation engine. It defines size of tables which store simulation data for all elements of Cheddar project (except time units) Max_Simulation : constant Natural := Natural'Max(Natural'Max (Max_Processors, Max_Tasks), Natural'Max(Natural'Max (Max_Messages, Max_Buffers),Natural'Max (Max_Resources, Max_Networks))); -- Sum of all objects which can be stored in a XML project Sum_Simulation : constant Natural := ((((Max_Processors + Max_Tasks) + Max_Messages) + Max_Resources) + Max_Networks); NB_MAX_BLOCKS_CFG : constant Natural := 30; MAX_LENGTH_NAME_VAR : constant Natural := 50; MAX_LENGTH_NAME_BLOCK : constant Natural := 50; MAX_NB_USED_VAR_STATEMENT : constant Natural := 10; MAX_NB_STATEMENTS_BLOCK : constant Natural := 10; MAX_NB_NEXT_NODES_STATEMENT : constant Natural := 10; MAX_NB_PREVIOUS_NODES_STATEMENT : constant Natural := 10; MAX_DEF : constant Natural := (MAX_NB_STATEMENTS_BLOCK * NB_MAX_BLOCKS_CFG); MAX_USE : constant Natural := (MAX_NB_USED_VAR_STATEMENT * MAX_NB_STATEMENTS_BLOCK); MAX_DEF_USE : constant Natural := ((MAX_USE * MAX_DEF) * NB_MAX_BLOCKS_CFG); Max_Task_Release_Records : constant Natural := 100; Max_Relative_Priority_Records : constant Natural := 100; Max_Scheduling_Errors : constant Natural := 100; Max_Execution_Units : constant Natural := 100; Max_Data_Accesses : constant Natural := 100; End Framework_Config;