------------------------------------------------------------------------------ ------------------------------------------------------------------------------ -- Cheddar is a GNU GPL real time scheduling analysis tool. -- This program provides services to automatically check performances -- of real time architectures. -- -- Copyright (C) 2002-2010, by Frank Singhoff, Alain Plantec, Jerome Legrand -- -- The Cheddar project was started in 2002 by -- the LISyC Team, University of Western Britanny. -- -- Since 2008, Ellidiss technologies also contributes to the development of -- Cheddar and provides industrial support. -- -- 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 -- ----------------------------------------------------------------------------- -- Last update : -- $Rev: 541 $ -- $Date: 2012-10-08 22:23:24 +0200 (Mon, 08 Oct 2012) $ -- $Author: singhoff $ ------------------------------------------------------------------------------ ------------------------------------------------------------------------------ with Ada.Strings.Unbounded; use Ada.Strings.Unbounded; with Messages; use Messages; with Message_Set; use Message_Set; use Message_Set.Generic_Message_Set; with Buffers; use Buffers; with Buffer_Set; use Buffer_Set; use Buffer_Set.Generic_Buffer_Set; with Tasks; use Tasks; with Task_Groups; use Task_Groups; with Task_Set; use Task_Set; use Task_Set.Generic_Task_Set; with Task_Group_Set; use Task_Group_Set; use Task_Group_Set.Generic_Task_Group_Set; with Task_Dependencies; use Task_Dependencies; use Task_Dependencies.Half_Dep_Set; with Processors; use Processors; with Processor_Set; use Processor_Set; with Caches; use Caches; with Cache_Set; use Cache_Set; use Processor_Set.Generic_Processor_Set; use Processor_Set.Generic_core_unit_Set; with Address_Spaces; use Address_Spaces; with Address_Space_Set; use Address_Space_Set; use Address_Space_Set.Generic_Address_Space_Set; with Resource_Set; use Resource_Set; use Resource_Set.Generic_Resource_Set; with Network_Set; use Network_Set; use Network_Set.Generic_Network_Set; with Event_Analyzer_Set; use Event_Analyzer_Set; use Event_Analyzer_Set.Generic_Event_Analyzer_Set; with deployment_Set; use deployment_Set; with unbounded_strings; use unbounded_strings; use unbounded_strings.unbounded_string_list_package; package Systems is type System is tagged record Tasks : Tasks_Set; Task_Groups : Task_Groups_Set; Resources : Resources_Set; Messages : Messages_Set; Dependencies : Tasks_Dependencies_Ptr; Core_units : core_units_Set; Processors : Processors_Set; Buffers : Buffers_Set; Networks : Networks_Set; Event_Analyzers : Event_Analyzers_Set; Address_Spaces : Address_Spaces_Set; deployments : deployments_Set; Caches : Caches_Set; end record; type System_Ptr is access System; procedure Initialize (A_System : in out System); procedure Initialize (A_System : in System_Ptr); procedure Duplicate (Src : in System; Dest : in out System); -- Delete sub_programs : sometimes, deleting a -- cheddar object requires to delete other cheddar -- objects. These sub-programs implement such multiple -- delete operation -- procedure Delete_core_unit (A_Sys : in out System; A_core_unit : Core_Unit_Ptr); procedure Delete_Processor (A_Sys : in out System; A_Processor : Generic_Processor_Ptr); procedure Delete_Buffer (A_Sys : in out System; A_Buffer : Buffer_Ptr); procedure Delete_Message (A_Sys : in out System; A_Message : Generic_Message_Ptr); procedure Delete_Task (A_Sys : in out System; A_Task : Generic_Task_Ptr); procedure Delete_Task_Group (A_Sys : in out System; A_Task_Group : Generic_Task_Group_Ptr; Delete_All_Entities : Boolean := true); procedure Delete_Address_Space (A_Sys : in out System; An_Address_Space : Address_Space_Ptr); procedure Delete_Cache (A_Sys : in out System; A_Cache : Generic_Cache_Ptr); function XML_String (obj : in System; level : in Natural := 0) return Unbounded_String; function XML_String (obj : in System_Ptr; level : in Natural := 0) return Unbounded_String; -- Display a system to the screen in different languages -- procedure Put_Xml (A_System : in System); procedure Put_v2_Xml (A_System : in System; Graphic_Properties_Flag : Boolean := True); procedure Put_Aadl (A_System : in System); procedure Put (A_System : in System_Ptr); -- I/O sub-programs : read/write a system in different languages -- procedure Read_From_Aadl_File (A_System : in out System; Dir_List : in unbounded_string_list; Project_File_List : in unbounded_string_list); procedure Read_From_Xml_File (A_System : in out System; Dir_List : in unbounded_string_list; File_Name : in Unbounded_String); procedure Read_From_Xml_File (A_System : in out System; Dir_List : in unbounded_string_list; File_Name : in String); procedure Read_From_v2_Xml_File (A_System : in out System; Dir_List : in unbounded_string_list; File_Name : in Unbounded_String); procedure Read_From_v2_Xml_File (A_System : in out System; Dir_List : in unbounded_string_list; File_Name : in String); procedure Write_To_Xml_File (A_System : in System; File_Name : in Unbounded_String); procedure Write_To_Xml_File (A_System : in System; File_Name : in String); procedure Write_To_v2_Xml_File (A_System : in System; File_Name : in Unbounded_String; Graphic_Properties_Flag : Boolean := True); procedure Write_To_v2_Xml_File (A_System : in System; File_Name : in String; Graphic_Properties_Flag : Boolean := True); procedure Write_To_Aadl_File (A_System : in System; File_Name : in Unbounded_String); procedure Write_Aadl_Standard_Properties_Set_To_File (A_System : in System); procedure Write_Cheddar_Property_Sets_To_File (A_System : in System); function Export_Xml (A_System : in System; Graphic_Properties_Flag : Boolean := True) return Unbounded_String; function Export_Aadl_Project_Properties (A_System : in System) return Unbounded_String; function Export_Aadl_Cheddar_Properties (A_System : in System) return Unbounded_String; function Export_Aadl_User_Defined_Cheddar_Properties (A_System : in System) return Unbounded_String; function Export_Aadl_Standard_Properties (A_System : in System) return Unbounded_String; function Export_Aadl_Implementations (A_System : in System) return Unbounded_String; function Export_Aadl_Declarations (A_System : in System; Number_Of_Ht : in Natural) return Unbounded_String; end Systems;