exp_dist.adb (Specific_Build_General_Calling_Stubs, [...]): New subprograms.

* exp_dist.adb (Specific_Build_General_Calling_Stubs,
	Specific_Build_Stub_Target): New subprograms.
	(Build_Subprogram_Calling_Stubs): Make this procedure independent from
	the PCS implementation used, using the above PCS-customized subprograms.
	Minor reformatting.
	(PolyORB_Support.Helpers): New subunit containing supporting subprograms
	for generation of DSA code targeted to the PolyORB PCS.
	(Add_Stub_Type): Rewrite to isolate the parts that are specific to one
	implementation of the partition communication subsystem in ancillary
	subprograms.
	(Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
	PolyORB_Support.Build_Stub_Type): New subrograms containing the
	PCS-specific part of Add_Stub_Type.
	(Insert_Partition_Check): Use runtime library function to perform
	E.4(19) check.

        * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
        (RE_Same_Partition): New entity, from s-parint.

        * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.

From-SVN: r91884
This commit is contained in:
Arnaud Charlet 2004-12-08 12:46:11 +01:00
parent 1453276224
commit bd7f7a653f
4 changed files with 5743 additions and 752 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1020,6 +1020,7 @@ package Rtsfind is
RE_RCI_Locator, -- System.Partition_Interface
RE_RCI_Subp_Info, -- System.Partition_Interface
RE_RCI_Subp_Info_Array, -- System.Partition_Interface
RE_Same_Partition, -- System.Partition_Interface
RE_Subprogram_Id, -- System.Partition_Interface
RE_Get_RAS_Info, -- System.Partition_Interface
@ -1072,6 +1073,7 @@ package Rtsfind is
RE_Entity_Of, -- System.PolyORB_Interface
RE_Inc_Usage, -- System.PolyORB_Interface
RE_Set_Ref, -- System.PolyORB_Interface
RE_Make_Ref, -- System.PolyORB_Interface
RE_Get_Local_Address, -- System.PolyORB_Interface
RE_Get_Reference, -- System.PolyORB_Interface
RE_Local_Oid_To_Address, -- System.PolyORB_Interface
@ -2099,6 +2101,7 @@ package Rtsfind is
RE_RCI_Locator => System_Partition_Interface,
RE_RCI_Subp_Info => System_Partition_Interface,
RE_RCI_Subp_Info_Array => System_Partition_Interface,
RE_Same_Partition => System_Partition_Interface,
RE_Subprogram_Id => System_Partition_Interface,
RE_Get_RAS_Info => System_Partition_Interface,
@ -2141,6 +2144,7 @@ package Rtsfind is
RE_Entity_Of => System_PolyORB_Interface,
RE_Inc_Usage => System_PolyORB_Interface,
RE_Set_Ref => System_PolyORB_Interface,
RE_Make_Ref => System_PolyORB_Interface,
RE_Get_Local_Address => System_PolyORB_Interface,
RE_Get_Reference => System_PolyORB_Interface,
RE_Local_Oid_To_Address => System_PolyORB_Interface,

View File

@ -306,4 +306,18 @@ package body System.Partition_Interface is
end if;
end Run;
--------------------
-- Same_Partition --
--------------------
function Same_Partition
(Left : access RACW_Stub_Type;
Right : access RACW_Stub_Type) return Boolean
is
pragma Unreferenced (Left);
pragma Unreferenced (Right);
begin
return True;
end Same_Partition;
end System.Partition_Interface;

View File

@ -96,6 +96,12 @@ package System.Partition_Interface is
-- Use by the main subprogram to check that a remote receiver
-- unit has has the same version than the caller's one.
function Same_Partition
(Left : access RACW_Stub_Type;
Right : access RACW_Stub_Type) return Boolean;
-- Determine whether Left and Right correspond to objects instantiated
-- on the same partition, for enforcement of E.4(19).
function Get_Active_Partition_ID (Name : Unit_Name) return RPC.Partition_ID;
-- Similar in some respects to RCI_Locator.Get_Active_Partition_ID