------------------------------------------------ -------------------------------- -- -- -- 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;