------------------------------------------------ -------------------------------- -- -- -- OCARINA COMPONENTS -- -- -- -- O C A R I N A . G E N E R A T O R S . P O _ H I _ C . M A P P I N G -- -- -- -- S p e c -- -- -- -- Copyright (C) 2007, GET-Telecom Paris. -- -- -- -- Ocarina is free software; you can redistribute it and/or modify -- -- it under terms of the GNU General Public License as published by the -- -- Free Software Foundation; either version 2, or (at your option) any -- -- later version. Ocarina 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 distributed with Ocarina; see file COPYING. -- -- If not, write to the Free Software Foundation, 51 Franklin Street, Fifth -- -- Floor, Boston, MA 02111-1301, USA. -- -- -- -- As a special exception, if other files instantiate generics from this -- -- unit, or you link this unit with other files to produce an executable, -- -- this unit does not by itself cause the resulting executable to be -- -- covered by the GNU General Public License. This exception does not -- -- however invalidate any other reasons why the executable file might be -- -- covered by the GNU Public License. -- -- -- -- Ocarina is maintained by the Ocarina team -- -- (ocarina-users@listes.enst.fr) -- -- -- ------------------------------------------------------------------------------ -- This package contains routines to map entities from the AADL tree -- into entities of the PolyORB-HI Ada tree. with Ocarina.Generators.Properties; use Ocarina.Generators.Properties; package Ocarina.Generators.PO_HI_C.Mapping is procedure Call_Remote_Functions (Caller_Thread : Node_Id; Spg_Call : Node_Id; Declarations : List_Id; Statements : List_Id); -- Calls all the remote subprograms connected to the features of -- Spg_Call. Appends the possibly added declaration to the -- Declarations lists and the call statements to the -- Statements. These two lists have to be created before the call -- to Call_Remote_Subprograms. -- Tree binding operations function Map_Distributed_Application (E : Node_Id) return Node_Id; function Map_HI_Node (E : Node_Id) return Node_Id; function Map_HI_Unit (E : Node_Id) return Node_Id; procedure Bind_AADL_To_Activity (G : Node_Id; A : Node_Id); procedure Bind_AADL_To_Naming (G : Node_Id; A : Node_Id); procedure Bind_AADL_To_Job (G : Node_Id; A : Node_Id); procedure Bind_AADL_To_Main (G : Node_Id; A : Node_Id); procedure Bind_AADL_To_Enumerator (G : Node_Id; A : Node_Id); procedure Bind_AADL_To_Stub (G : Node_Id; A : Node_Id); procedure Bind_AADL_To_Feature_Subprogram (G : Node_Id; A : Node_Id); procedure Bind_AADL_To_Subprogram (G : Node_Id; A : Node_Id); procedure Bind_AADL_To_Servers (G : Node_Id; A : Node_Id); procedure Bind_AADL_To_Entities (G : Node_Id; A : Node_Id); function Map_Task_Job_Identifier (E : Node_Id) return Node_Id; function Map_Time (T : Time_Type) return Node_Id; function Map_C_Enumerator_Name (E : Node_Id; Entity : Boolean := False; Server : Boolean := False; Port_Type : Boolean := False; Local_Port : Boolean := False) return Name_Id; function Map_C_Define_Name (E : Node_Id; Nb_Ports : Boolean := False) return Name_Id; function Map_C_Full_Parameter_Name (Spg : Node_Id; P : Node_Id; Suffix : Character := ASCII.NUL) return Name_Id; function Map_C_Feature_Subprogram (A : Node_Id) return Node_Id; function Map_C_Data_Type_Designator (E : Node_Id) return Node_Id; function Map_C_Defining_Identifier (A : Node_Id) return Node_Id; procedure Bind_AADL_To_Type_Definition (G : Node_Id; A : Node_Id); procedure Bind_AADL_To_Process_Request (G : Node_Id; A : Node_Id); procedure Bind_AADL_To_Types (G : Node_Id; A : Node_Id); procedure Bind_AADL_To_Object (G : Node_Id; A : Node_Id); procedure Bind_AADL_To_Request_Type (G : Node_Id; A : Node_Id); procedure Bind_AADL_To_Deployment (G : Node_Id; A : Node_Id); procedure Bind_AADL_To_Request (G : Node_Id; A : Node_Id); procedure Bind_AADL_To_Marshaller (G : Node_Id; A : Node_Id); procedure Bind_AADL_To_Unmarshaller (G : Node_Id; A : Node_Id); procedure Bind_AADL_To_Local_Port (G : Node_Id; A : Node_Id); procedure Bind_AADL_To_Global_Port (G : Node_Id; A : Node_Id); function Map_Stub_Identifier (E : Node_Id) return Node_Id; function Map_C_Subprogram_Spec (S : Node_Id) return Node_Id; function Map_C_Subprogram_Body (S : Node_Id) return Node_Id; function Map_C_Subprogram_Identifier (E : Node_Id) return Node_Id; function Map_C_Marshaller_Subprogram (A : Node_Id; Is_Unmarshall : Boolean := False; Is_Request : Boolean := False) return Node_Id; procedure Bind_AADL_To_Default_Value (G : Node_Id; A : Node_Id); function Map_Task_Deliver_Identifier (E : Node_Id) return Node_Id; function Map_C_Operation_Name (E : Node_Id) return Name_Id; function Map_C_Port_Data_Name (E : Node_Id; P : Node_Id) return Name_Id; function Map_C_Variable_Name (E : Node_Id; Port_Variable : Boolean := False; Port_History : Boolean := False; Port_Woffsets : Boolean := False; Port_Empties : Boolean := False; Port_First : Boolean := False; Port_Queue : Boolean := False; Port_Recent : Boolean := False; Port_Fifo_Size : Boolean := False; Port_Offsets : Boolean := False; Port_Used_Size : Boolean := False; Port_N_Dest : Boolean := False; Port_Local_Dest : Boolean := False; Port_Destinations : Boolean := False; Port_Total_Fifo : Boolean := False; Port_Request : Boolean := False; Request_Variable : Boolean := False) return Name_Id; end Ocarina.Generators.PO_HI_C.Mapping;