------------------------------------------------------------------------------ ------------------------------------------------------------------------------ -- 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-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 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 := Very_Verbose; Max_Processors : constant Natural := 20; Max_Tasks : constant Natural := 250; Max_Messages : constant Natural := 5; Max_Buffers : constant Natural := 30; Max_Resources : constant Natural := 300; Max_Networks : constant Natural := 5; Max_Event_Analyzers : constant Natural := 10; Max_Address_Spaces : constant Natural := 20; Max_Sections : constant Natural := 300; Max_Schedulers : constant Natural := ( 1 + Max_Address_Spaces); Max_Transitions : constant Natural := 200; Max_Caches : constant Natural := 5; Max_Core_Units : constant Natural := 20; Max_Deployments : constant Natural := 20; 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_Schedulers) + 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 := 200000; Low_Priority : constant Priority_Range := Priority_Range'First; High_Priority : constant Priority_Range := Priority_Range'Last; -- Maximum accurrancy of big numbers packages. - Increase it if you need to run large XML Chedar project file - Increasing this constant implies increasing cheddar memory footprint - Increasing this constant implies increasing cheddar CPU usage Max_Big_Number_Size : constant Natural := 200; 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 := 300; -- 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 := 250; -- 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 := 20; -- 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 := 20; -- 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); End Framework_Config;