mirror of git://gcc.gnu.org/git/gcc.git
exp_ch9.ads, [...] (Build_Entry_Names): Remove (unused).
2017-01-06 Tristan Gingold <gingold@adacore.com> * exp_ch9.ads, exp_ch9.adb (Build_Entry_Names): Remove (unused). * rtsfind.ads (RE_Task_Entry_Names_Array, RO_ST_Set_Entry_Names) (RE_Protected_Entry_Names_Array, RO_PE_Set_Entry_Names): Remove (unused). * s-taskin.ads, s-taskin.adb (Set_Entry_Names, Task_Entry_Names_Array, Task_Entry_Names_Access): Remove. * s-tpoben.ads, s-tpoben.adb (Set_Entry_Names, Protected_Entry_Names_Array, Protected_Entry_Names_Access): Remove. From-SVN: r244142
This commit is contained in:
parent
0789ef6f84
commit
dbf2a2d34a
|
|
@ -1,3 +1,14 @@
|
||||||
|
2017-01-06 Tristan Gingold <gingold@adacore.com>
|
||||||
|
|
||||||
|
* exp_ch9.ads, exp_ch9.adb (Build_Entry_Names): Remove (unused).
|
||||||
|
* rtsfind.ads (RE_Task_Entry_Names_Array, RO_ST_Set_Entry_Names)
|
||||||
|
(RE_Protected_Entry_Names_Array, RO_PE_Set_Entry_Names): Remove
|
||||||
|
(unused).
|
||||||
|
* s-taskin.ads, s-taskin.adb (Set_Entry_Names,
|
||||||
|
Task_Entry_Names_Array, Task_Entry_Names_Access): Remove.
|
||||||
|
* s-tpoben.ads, s-tpoben.adb (Set_Entry_Names,
|
||||||
|
Protected_Entry_Names_Array, Protected_Entry_Names_Access): Remove.
|
||||||
|
|
||||||
2017-01-06 Bob Duff <duff@adacore.com>
|
2017-01-06 Bob Duff <duff@adacore.com>
|
||||||
|
|
||||||
* sinfo.ads, sinfo.adb (Map_Pragma_Name): Preparation work,
|
* sinfo.ads, sinfo.adb (Map_Pragma_Name): Preparation work,
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,6 @@ with Sem_Util; use Sem_Util;
|
||||||
with Sinfo; use Sinfo;
|
with Sinfo; use Sinfo;
|
||||||
with Snames; use Snames;
|
with Snames; use Snames;
|
||||||
with Stand; use Stand;
|
with Stand; use Stand;
|
||||||
with Stringt; use Stringt;
|
|
||||||
with Targparm; use Targparm;
|
with Targparm; use Targparm;
|
||||||
with Tbuild; use Tbuild;
|
with Tbuild; use Tbuild;
|
||||||
with Uintp; use Uintp;
|
with Uintp; use Uintp;
|
||||||
|
|
@ -1682,395 +1681,6 @@ package body Exp_Ch9 is
|
||||||
return Ecount;
|
return Ecount;
|
||||||
end Build_Entry_Count_Expression;
|
end Build_Entry_Count_Expression;
|
||||||
|
|
||||||
-----------------------
|
|
||||||
-- Build_Entry_Names --
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
procedure Build_Entry_Names
|
|
||||||
(Obj_Ref : Node_Id;
|
|
||||||
Obj_Typ : Entity_Id;
|
|
||||||
Stmts : List_Id)
|
|
||||||
is
|
|
||||||
Loc : constant Source_Ptr := Sloc (Obj_Ref);
|
|
||||||
Data : Entity_Id := Empty;
|
|
||||||
Index : Entity_Id := Empty;
|
|
||||||
Typ : Entity_Id := Obj_Typ;
|
|
||||||
|
|
||||||
procedure Build_Entry_Name (Comp_Id : Entity_Id);
|
|
||||||
-- Given an entry [family], create a static string which denotes the
|
|
||||||
-- name of Comp_Id and assign it to the underlying data structure which
|
|
||||||
-- contains the entry names of a concurrent object.
|
|
||||||
|
|
||||||
function Object_Reference return Node_Id;
|
|
||||||
-- Return a reference to field _object or _task_id depending on the
|
|
||||||
-- concurrent object being processed.
|
|
||||||
|
|
||||||
----------------------
|
|
||||||
-- Build_Entry_Name --
|
|
||||||
----------------------
|
|
||||||
|
|
||||||
procedure Build_Entry_Name (Comp_Id : Entity_Id) is
|
|
||||||
function Build_Range (Def : Node_Id) return Node_Id;
|
|
||||||
-- Given a discrete subtype definition of an entry family, generate a
|
|
||||||
-- range node which covers the range of Def's type.
|
|
||||||
|
|
||||||
procedure Create_Index_And_Data;
|
|
||||||
-- Generate the declarations of variables Index and Data. Subsequent
|
|
||||||
-- calls do nothing.
|
|
||||||
|
|
||||||
function Increment_Index return Node_Id;
|
|
||||||
-- Increment the index used in the assignment of string names to the
|
|
||||||
-- Data array.
|
|
||||||
|
|
||||||
function Name_Declaration (Def_Id : Entity_Id) return Node_Id;
|
|
||||||
-- Given the name of a temporary variable, create the following
|
|
||||||
-- declaration for it:
|
|
||||||
--
|
|
||||||
-- Def_Id : aliased constant String := <String_Name_From_Buffer>;
|
|
||||||
|
|
||||||
function Set_Entry_Name (Def_Id : Entity_Id) return Node_Id;
|
|
||||||
-- Given the name of a temporary variable, place it in the array of
|
|
||||||
-- string names. Generate:
|
|
||||||
--
|
|
||||||
-- Data (Index) := Def_Id'Unchecked_Access;
|
|
||||||
|
|
||||||
-----------------
|
|
||||||
-- Build_Range --
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
function Build_Range (Def : Node_Id) return Node_Id is
|
|
||||||
High : Node_Id := Type_High_Bound (Etype (Def));
|
|
||||||
Low : Node_Id := Type_Low_Bound (Etype (Def));
|
|
||||||
|
|
||||||
begin
|
|
||||||
-- If a bound references a discriminant, generate an identifier
|
|
||||||
-- with the same name. Resolution will map it to the formals of
|
|
||||||
-- the init proc.
|
|
||||||
|
|
||||||
if Is_Entity_Name (Low)
|
|
||||||
and then Ekind (Entity (Low)) = E_Discriminant
|
|
||||||
then
|
|
||||||
Low :=
|
|
||||||
Make_Selected_Component (Loc,
|
|
||||||
Prefix => New_Copy_Tree (Obj_Ref),
|
|
||||||
Selector_Name => Make_Identifier (Loc, Chars (Low)));
|
|
||||||
else
|
|
||||||
Low := New_Copy_Tree (Low);
|
|
||||||
end if;
|
|
||||||
|
|
||||||
if Is_Entity_Name (High)
|
|
||||||
and then Ekind (Entity (High)) = E_Discriminant
|
|
||||||
then
|
|
||||||
High :=
|
|
||||||
Make_Selected_Component (Loc,
|
|
||||||
Prefix => New_Copy_Tree (Obj_Ref),
|
|
||||||
Selector_Name => Make_Identifier (Loc, Chars (High)));
|
|
||||||
else
|
|
||||||
High := New_Copy_Tree (High);
|
|
||||||
end if;
|
|
||||||
|
|
||||||
return
|
|
||||||
Make_Range (Loc,
|
|
||||||
Low_Bound => Low,
|
|
||||||
High_Bound => High);
|
|
||||||
end Build_Range;
|
|
||||||
|
|
||||||
---------------------------
|
|
||||||
-- Create_Index_And_Data --
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
procedure Create_Index_And_Data is
|
|
||||||
begin
|
|
||||||
if No (Index) and then No (Data) then
|
|
||||||
declare
|
|
||||||
Count : RE_Id;
|
|
||||||
Data_Typ : RE_Id;
|
|
||||||
Size : Entity_Id;
|
|
||||||
|
|
||||||
begin
|
|
||||||
if Is_Protected_Type (Typ) then
|
|
||||||
Count := RO_PE_Number_Of_Entries;
|
|
||||||
Data_Typ := RE_Protected_Entry_Names_Array;
|
|
||||||
else
|
|
||||||
Count := RO_ST_Number_Of_Entries;
|
|
||||||
Data_Typ := RE_Task_Entry_Names_Array;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
-- Step 1: Generate the declaration of the index variable:
|
|
||||||
|
|
||||||
-- Index : Entry_Index := 1;
|
|
||||||
|
|
||||||
Index := Make_Temporary (Loc, 'I');
|
|
||||||
|
|
||||||
Append_To (Stmts,
|
|
||||||
Make_Object_Declaration (Loc,
|
|
||||||
Defining_Identifier => Index,
|
|
||||||
Object_Definition =>
|
|
||||||
New_Occurrence_Of (RTE (RE_Entry_Index), Loc),
|
|
||||||
Expression => Make_Integer_Literal (Loc, 1)));
|
|
||||||
|
|
||||||
-- Step 2: Generate the declaration of an array to house all
|
|
||||||
-- names:
|
|
||||||
|
|
||||||
-- Size : constant Entry_Index := <Count> (Obj_Ref);
|
|
||||||
-- Data : aliased <Data_Typ> := (1 .. Size => null);
|
|
||||||
|
|
||||||
Size := Make_Temporary (Loc, 'S');
|
|
||||||
|
|
||||||
Append_To (Stmts,
|
|
||||||
Make_Object_Declaration (Loc,
|
|
||||||
Defining_Identifier => Size,
|
|
||||||
Constant_Present => True,
|
|
||||||
Object_Definition =>
|
|
||||||
New_Occurrence_Of (RTE (RE_Entry_Index), Loc),
|
|
||||||
Expression =>
|
|
||||||
Make_Function_Call (Loc,
|
|
||||||
Name =>
|
|
||||||
New_Occurrence_Of (RTE (Count), Loc),
|
|
||||||
Parameter_Associations =>
|
|
||||||
New_List (Object_Reference))));
|
|
||||||
|
|
||||||
Data := Make_Temporary (Loc, 'A');
|
|
||||||
|
|
||||||
Append_To (Stmts,
|
|
||||||
Make_Object_Declaration (Loc,
|
|
||||||
Defining_Identifier => Data,
|
|
||||||
Aliased_Present => True,
|
|
||||||
Object_Definition =>
|
|
||||||
New_Occurrence_Of (RTE (Data_Typ), Loc),
|
|
||||||
Expression =>
|
|
||||||
Make_Aggregate (Loc,
|
|
||||||
Component_Associations => New_List (
|
|
||||||
Make_Component_Association (Loc,
|
|
||||||
Choices => New_List (
|
|
||||||
Make_Range (Loc,
|
|
||||||
Low_Bound =>
|
|
||||||
Make_Integer_Literal (Loc, 1),
|
|
||||||
High_Bound =>
|
|
||||||
New_Occurrence_Of (Size, Loc))),
|
|
||||||
Expression => Make_Null (Loc))))));
|
|
||||||
end;
|
|
||||||
end if;
|
|
||||||
end Create_Index_And_Data;
|
|
||||||
|
|
||||||
---------------------
|
|
||||||
-- Increment_Index --
|
|
||||||
---------------------
|
|
||||||
|
|
||||||
function Increment_Index return Node_Id is
|
|
||||||
begin
|
|
||||||
return
|
|
||||||
Make_Assignment_Statement (Loc,
|
|
||||||
Name => New_Occurrence_Of (Index, Loc),
|
|
||||||
Expression =>
|
|
||||||
Make_Op_Add (Loc,
|
|
||||||
Left_Opnd => New_Occurrence_Of (Index, Loc),
|
|
||||||
Right_Opnd => Make_Integer_Literal (Loc, 1)));
|
|
||||||
end Increment_Index;
|
|
||||||
|
|
||||||
----------------------
|
|
||||||
-- Name_Declaration --
|
|
||||||
----------------------
|
|
||||||
|
|
||||||
function Name_Declaration (Def_Id : Entity_Id) return Node_Id is
|
|
||||||
begin
|
|
||||||
return
|
|
||||||
Make_Object_Declaration (Loc,
|
|
||||||
Defining_Identifier => Def_Id,
|
|
||||||
Aliased_Present => True,
|
|
||||||
Constant_Present => True,
|
|
||||||
Object_Definition =>
|
|
||||||
New_Occurrence_Of (Standard_String, Loc),
|
|
||||||
Expression =>
|
|
||||||
Make_String_Literal (Loc, String_From_Name_Buffer));
|
|
||||||
end Name_Declaration;
|
|
||||||
|
|
||||||
--------------------
|
|
||||||
-- Set_Entry_Name --
|
|
||||||
--------------------
|
|
||||||
|
|
||||||
function Set_Entry_Name (Def_Id : Entity_Id) return Node_Id is
|
|
||||||
begin
|
|
||||||
return
|
|
||||||
Make_Assignment_Statement (Loc,
|
|
||||||
Name =>
|
|
||||||
Make_Indexed_Component (Loc,
|
|
||||||
Prefix => New_Occurrence_Of (Data, Loc),
|
|
||||||
Expressions => New_List (New_Occurrence_Of (Index, Loc))),
|
|
||||||
|
|
||||||
Expression =>
|
|
||||||
Make_Attribute_Reference (Loc,
|
|
||||||
Prefix => New_Occurrence_Of (Def_Id, Loc),
|
|
||||||
Attribute_Name => Name_Unchecked_Access));
|
|
||||||
end Set_Entry_Name;
|
|
||||||
|
|
||||||
-- Local variables
|
|
||||||
|
|
||||||
Temp_Id : Entity_Id;
|
|
||||||
Subt_Def : Node_Id;
|
|
||||||
|
|
||||||
-- Start of processing for Build_Entry_Name
|
|
||||||
|
|
||||||
begin
|
|
||||||
if Ekind (Comp_Id) = E_Entry_Family then
|
|
||||||
Subt_Def := Discrete_Subtype_Definition (Parent (Comp_Id));
|
|
||||||
|
|
||||||
Create_Index_And_Data;
|
|
||||||
|
|
||||||
-- Step 1: Create the string name of the entry family.
|
|
||||||
-- Generate:
|
|
||||||
-- Temp : aliased constant String := "name ()";
|
|
||||||
|
|
||||||
Temp_Id := Make_Temporary (Loc, 'S');
|
|
||||||
Get_Name_String (Chars (Comp_Id));
|
|
||||||
Add_Char_To_Name_Buffer (' ');
|
|
||||||
Add_Char_To_Name_Buffer ('(');
|
|
||||||
Add_Char_To_Name_Buffer (')');
|
|
||||||
|
|
||||||
Append_To (Stmts, Name_Declaration (Temp_Id));
|
|
||||||
|
|
||||||
-- Generate:
|
|
||||||
-- for Member in Family_Low .. Family_High loop
|
|
||||||
-- Set_Entry_Name (...);
|
|
||||||
-- Index := Index + 1;
|
|
||||||
-- end loop;
|
|
||||||
|
|
||||||
Append_To (Stmts,
|
|
||||||
Make_Loop_Statement (Loc,
|
|
||||||
Iteration_Scheme =>
|
|
||||||
Make_Iteration_Scheme (Loc,
|
|
||||||
Loop_Parameter_Specification =>
|
|
||||||
Make_Loop_Parameter_Specification (Loc,
|
|
||||||
Defining_Identifier =>
|
|
||||||
Make_Temporary (Loc, 'L'),
|
|
||||||
Discrete_Subtype_Definition =>
|
|
||||||
Build_Range (Subt_Def))),
|
|
||||||
|
|
||||||
Statements => New_List (
|
|
||||||
Set_Entry_Name (Temp_Id),
|
|
||||||
Increment_Index),
|
|
||||||
End_Label => Empty));
|
|
||||||
|
|
||||||
-- Entry
|
|
||||||
|
|
||||||
else
|
|
||||||
Create_Index_And_Data;
|
|
||||||
|
|
||||||
-- Step 1: Create the string name of the entry. Generate:
|
|
||||||
-- Temp : aliased constant String := "name";
|
|
||||||
|
|
||||||
Temp_Id := Make_Temporary (Loc, 'S');
|
|
||||||
Get_Name_String (Chars (Comp_Id));
|
|
||||||
|
|
||||||
Append_To (Stmts, Name_Declaration (Temp_Id));
|
|
||||||
|
|
||||||
-- Step 2: Associate the string name with the underlying data
|
|
||||||
-- structure.
|
|
||||||
|
|
||||||
Append_To (Stmts, Set_Entry_Name (Temp_Id));
|
|
||||||
Append_To (Stmts, Increment_Index);
|
|
||||||
end if;
|
|
||||||
end Build_Entry_Name;
|
|
||||||
|
|
||||||
----------------------
|
|
||||||
-- Object_Reference --
|
|
||||||
----------------------
|
|
||||||
|
|
||||||
function Object_Reference return Node_Id is
|
|
||||||
Conc_Typ : constant Entity_Id := Corresponding_Record_Type (Typ);
|
|
||||||
Field : Name_Id;
|
|
||||||
Ref : Node_Id;
|
|
||||||
|
|
||||||
begin
|
|
||||||
if Is_Protected_Type (Typ) then
|
|
||||||
Field := Name_uObject;
|
|
||||||
else
|
|
||||||
Field := Name_uTask_Id;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
Ref :=
|
|
||||||
Make_Selected_Component (Loc,
|
|
||||||
Prefix =>
|
|
||||||
Unchecked_Convert_To (Conc_Typ, New_Copy_Tree (Obj_Ref)),
|
|
||||||
Selector_Name => Make_Identifier (Loc, Field));
|
|
||||||
|
|
||||||
if Is_Protected_Type (Typ) then
|
|
||||||
Ref :=
|
|
||||||
Make_Attribute_Reference (Loc,
|
|
||||||
Prefix => Ref,
|
|
||||||
Attribute_Name => Name_Unchecked_Access);
|
|
||||||
end if;
|
|
||||||
|
|
||||||
return Ref;
|
|
||||||
end Object_Reference;
|
|
||||||
|
|
||||||
-- Local variables
|
|
||||||
|
|
||||||
Comp : Node_Id;
|
|
||||||
Proc : RE_Id;
|
|
||||||
|
|
||||||
-- Start of processing for Build_Entry_Names
|
|
||||||
|
|
||||||
begin
|
|
||||||
-- Retrieve the original concurrent type
|
|
||||||
|
|
||||||
if Is_Concurrent_Record_Type (Typ) then
|
|
||||||
Typ := Corresponding_Concurrent_Type (Typ);
|
|
||||||
end if;
|
|
||||||
|
|
||||||
pragma Assert (Is_Concurrent_Type (Typ));
|
|
||||||
|
|
||||||
-- Nothing to do if the type has no entries
|
|
||||||
|
|
||||||
if not Has_Entries (Typ) then
|
|
||||||
return;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
-- Avoid generating entry names for a protected type with only one entry
|
|
||||||
|
|
||||||
if Is_Protected_Type (Typ)
|
|
||||||
and then Find_Protection_Type (Base_Type (Typ)) /=
|
|
||||||
RTE (RE_Protection_Entries)
|
|
||||||
then
|
|
||||||
return;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
-- Step 1: Populate the array with statically generated strings denoting
|
|
||||||
-- entries and entry family names.
|
|
||||||
|
|
||||||
Comp := First_Entity (Typ);
|
|
||||||
while Present (Comp) loop
|
|
||||||
if Comes_From_Source (Comp)
|
|
||||||
and then Ekind_In (Comp, E_Entry, E_Entry_Family)
|
|
||||||
then
|
|
||||||
Build_Entry_Name (Comp);
|
|
||||||
end if;
|
|
||||||
|
|
||||||
Next_Entity (Comp);
|
|
||||||
end loop;
|
|
||||||
|
|
||||||
-- Step 2: Associate the array with the related concurrent object:
|
|
||||||
|
|
||||||
-- Set_Entry_Names (Obj_Ref, <Data>'Unchecked_Access);
|
|
||||||
|
|
||||||
if Present (Data) then
|
|
||||||
if Is_Protected_Type (Typ) then
|
|
||||||
Proc := RO_PE_Set_Entry_Names;
|
|
||||||
else
|
|
||||||
Proc := RO_ST_Set_Entry_Names;
|
|
||||||
end if;
|
|
||||||
|
|
||||||
Append_To (Stmts,
|
|
||||||
Make_Procedure_Call_Statement (Loc,
|
|
||||||
Name => New_Occurrence_Of (RTE (Proc), Loc),
|
|
||||||
Parameter_Associations => New_List (
|
|
||||||
Object_Reference,
|
|
||||||
Make_Attribute_Reference (Loc,
|
|
||||||
Prefix => New_Occurrence_Of (Data, Loc),
|
|
||||||
Attribute_Name => Name_Unchecked_Access))));
|
|
||||||
end if;
|
|
||||||
end Build_Entry_Names;
|
|
||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
-- Build_Parameter_Block --
|
-- Build_Parameter_Block --
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
-- --
|
-- --
|
||||||
-- S p e c --
|
-- S p e c --
|
||||||
-- --
|
-- --
|
||||||
-- Copyright (C) 1992-2015, Free Software Foundation, Inc. --
|
-- Copyright (C) 1992-2016, Free Software Foundation, Inc. --
|
||||||
-- --
|
-- --
|
||||||
-- GNAT is free software; you can redistribute it and/or modify it under --
|
-- GNAT is free software; you can redistribute it and/or modify it under --
|
||||||
-- terms of the GNU General Public License as published by the Free Soft- --
|
-- terms of the GNU General Public License as published by the Free Soft- --
|
||||||
|
|
@ -55,16 +55,6 @@ package Exp_Ch9 is
|
||||||
-- interface, ensure that the designated type has a _master and generate
|
-- interface, ensure that the designated type has a _master and generate
|
||||||
-- a renaming of the said master to service the access type.
|
-- a renaming of the said master to service the access type.
|
||||||
|
|
||||||
procedure Build_Entry_Names
|
|
||||||
(Obj_Ref : Node_Id;
|
|
||||||
Obj_Typ : Entity_Id;
|
|
||||||
Stmts : List_Id);
|
|
||||||
-- Given a concurrent object, create static string names for all entries
|
|
||||||
-- and entry families. Associate each name with the Protection_Entries or
|
|
||||||
-- ATCB field of the object. Obj_Ref is a reference to the concurrent
|
|
||||||
-- object. Obj_Typ is the type of the object. Stmts is the list where all
|
|
||||||
-- generated code is attached.
|
|
||||||
|
|
||||||
procedure Build_Master_Entity (Obj_Or_Typ : Entity_Id);
|
procedure Build_Master_Entity (Obj_Or_Typ : Entity_Id);
|
||||||
-- Given the name of an object or a type which is either a task, contains
|
-- Given the name of an object or a type which is either a task, contains
|
||||||
-- tasks or designates tasks, create a _master in the appropriate scope
|
-- tasks or designates tasks, create a _master in the appropriate scope
|
||||||
|
|
|
||||||
|
|
@ -1547,9 +1547,7 @@ package Rtsfind is
|
||||||
RE_Unspecified_Task_Info, -- System.Task_Info
|
RE_Unspecified_Task_Info, -- System.Task_Info
|
||||||
|
|
||||||
RE_Task_Procedure_Access, -- System.Tasking
|
RE_Task_Procedure_Access, -- System.Tasking
|
||||||
RE_Task_Entry_Names_Array, -- System.Tasking
|
|
||||||
RO_ST_Number_Of_Entries, -- System.Tasking
|
RO_ST_Number_Of_Entries, -- System.Tasking
|
||||||
RO_ST_Set_Entry_Names, -- System.Tasking
|
|
||||||
|
|
||||||
RO_ST_Task_Id, -- System.Tasking
|
RO_ST_Task_Id, -- System.Tasking
|
||||||
RO_ST_Null_Task, -- System.Tasking
|
RO_ST_Null_Task, -- System.Tasking
|
||||||
|
|
@ -1683,7 +1681,6 @@ package Rtsfind is
|
||||||
RE_Dispatching_Domain, -- Multiprocessors.Dispatching_Domains
|
RE_Dispatching_Domain, -- Multiprocessors.Dispatching_Domains
|
||||||
|
|
||||||
RE_Protected_Entry_Body_Array, -- Tasking.Protected_Objects.Entries
|
RE_Protected_Entry_Body_Array, -- Tasking.Protected_Objects.Entries
|
||||||
RE_Protected_Entry_Names_Array, -- Tasking.Protected_Objects.Entries
|
|
||||||
RE_Protected_Entry_Queue_Max_Array, -- Tasking.Protected_Objects.Entries
|
RE_Protected_Entry_Queue_Max_Array, -- Tasking.Protected_Objects.Entries
|
||||||
RE_Protection_Entries, -- Tasking.Protected_Objects.Entries
|
RE_Protection_Entries, -- Tasking.Protected_Objects.Entries
|
||||||
RE_Protection_Entries_Access, -- Tasking.Protected_Objects.Entries
|
RE_Protection_Entries_Access, -- Tasking.Protected_Objects.Entries
|
||||||
|
|
@ -1693,7 +1690,6 @@ package Rtsfind is
|
||||||
RO_PE_Get_Ceiling, -- Tasking.Protected_Objects.Entries
|
RO_PE_Get_Ceiling, -- Tasking.Protected_Objects.Entries
|
||||||
RO_PE_Number_Of_Entries, -- Tasking.Protected_Objects.Entries
|
RO_PE_Number_Of_Entries, -- Tasking.Protected_Objects.Entries
|
||||||
RO_PE_Set_Ceiling, -- Tasking.Protected_Objects.Entries
|
RO_PE_Set_Ceiling, -- Tasking.Protected_Objects.Entries
|
||||||
RO_PE_Set_Entry_Names, -- Tasking.Protected_Objects.Entries
|
|
||||||
|
|
||||||
RE_Communication_Block, -- Protected_Objects.Operations
|
RE_Communication_Block, -- Protected_Objects.Operations
|
||||||
RE_Protected_Entry_Call, -- Protected_Objects.Operations
|
RE_Protected_Entry_Call, -- Protected_Objects.Operations
|
||||||
|
|
@ -2787,9 +2783,7 @@ package Rtsfind is
|
||||||
RE_Unspecified_Task_Info => System_Task_Info,
|
RE_Unspecified_Task_Info => System_Task_Info,
|
||||||
|
|
||||||
RE_Task_Procedure_Access => System_Tasking,
|
RE_Task_Procedure_Access => System_Tasking,
|
||||||
RE_Task_Entry_Names_Array => System_Tasking,
|
|
||||||
RO_ST_Number_Of_Entries => System_Tasking,
|
RO_ST_Number_Of_Entries => System_Tasking,
|
||||||
RO_ST_Set_Entry_Names => System_Tasking,
|
|
||||||
|
|
||||||
RO_ST_Task_Id => System_Tasking,
|
RO_ST_Task_Id => System_Tasking,
|
||||||
RO_ST_Null_Task => System_Tasking,
|
RO_ST_Null_Task => System_Tasking,
|
||||||
|
|
@ -2926,8 +2920,6 @@ package Rtsfind is
|
||||||
|
|
||||||
RE_Protected_Entry_Body_Array =>
|
RE_Protected_Entry_Body_Array =>
|
||||||
System_Tasking_Protected_Objects_Entries,
|
System_Tasking_Protected_Objects_Entries,
|
||||||
RE_Protected_Entry_Names_Array =>
|
|
||||||
System_Tasking_Protected_Objects_Entries,
|
|
||||||
RE_Protected_Entry_Queue_Max_Array =>
|
RE_Protected_Entry_Queue_Max_Array =>
|
||||||
System_Tasking_Protected_Objects_Entries,
|
System_Tasking_Protected_Objects_Entries,
|
||||||
RE_Protection_Entries =>
|
RE_Protection_Entries =>
|
||||||
|
|
@ -2946,8 +2938,6 @@ package Rtsfind is
|
||||||
System_Tasking_Protected_Objects_Entries,
|
System_Tasking_Protected_Objects_Entries,
|
||||||
RO_PE_Set_Ceiling =>
|
RO_PE_Set_Ceiling =>
|
||||||
System_Tasking_Protected_Objects_Entries,
|
System_Tasking_Protected_Objects_Entries,
|
||||||
RO_PE_Set_Entry_Names =>
|
|
||||||
System_Tasking_Protected_Objects_Entries,
|
|
||||||
|
|
||||||
RE_Communication_Block =>
|
RE_Communication_Block =>
|
||||||
System_Tasking_Protected_Objects_Operations,
|
System_Tasking_Protected_Objects_Operations,
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
-- --
|
-- --
|
||||||
-- B o d y --
|
-- B o d y --
|
||||||
-- --
|
-- --
|
||||||
-- Copyright (C) 1992-2014, Free Software Foundation, Inc. --
|
-- Copyright (C) 1992-2016, Free Software Foundation, Inc. --
|
||||||
-- --
|
-- --
|
||||||
-- GNARL is free software; you can redistribute it and/or modify it under --
|
-- GNARL is free software; you can redistribute it and/or modify it under --
|
||||||
-- terms of the GNU General Public License as published by the Free Soft- --
|
-- terms of the GNU General Public License as published by the Free Soft- --
|
||||||
|
|
@ -272,17 +272,4 @@ package body System.Tasking is
|
||||||
|
|
||||||
T.Entry_Calls (1).Self := T;
|
T.Entry_Calls (1).Self := T;
|
||||||
end Initialize;
|
end Initialize;
|
||||||
|
|
||||||
---------------------
|
|
||||||
-- Set_Entry_Names --
|
|
||||||
---------------------
|
|
||||||
|
|
||||||
procedure Set_Entry_Names
|
|
||||||
(Self_Id : Task_Id;
|
|
||||||
Names : Task_Entry_Names_Access)
|
|
||||||
is
|
|
||||||
begin
|
|
||||||
Self_Id.Entry_Names := Names;
|
|
||||||
end Set_Entry_Names;
|
|
||||||
|
|
||||||
end System.Tasking;
|
end System.Tasking;
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
-- --
|
-- --
|
||||||
-- S p e c --
|
-- S p e c --
|
||||||
-- --
|
-- --
|
||||||
-- Copyright (C) 1992-2015, Free Software Foundation, Inc. --
|
-- Copyright (C) 1992-2016, Free Software Foundation, Inc. --
|
||||||
-- --
|
-- --
|
||||||
-- GNARL is free software; you can redistribute it and/or modify it under --
|
-- GNARL is free software; you can redistribute it and/or modify it under --
|
||||||
-- terms of the GNU General Public License as published by the Free Soft- --
|
-- terms of the GNU General Public License as published by the Free Soft- --
|
||||||
|
|
@ -254,11 +254,6 @@ package System.Tasking is
|
||||||
|
|
||||||
type String_Access is access all String;
|
type String_Access is access all String;
|
||||||
|
|
||||||
type Task_Entry_Names_Array is
|
|
||||||
array (Entry_Index range <>) of String_Access;
|
|
||||||
|
|
||||||
type Task_Entry_Names_Access is access all Task_Entry_Names_Array;
|
|
||||||
|
|
||||||
----------------------------------
|
----------------------------------
|
||||||
-- Entry_Call_Record definition --
|
-- Entry_Call_Record definition --
|
||||||
----------------------------------
|
----------------------------------
|
||||||
|
|
@ -965,14 +960,6 @@ package System.Tasking is
|
||||||
-- associated with protected objects or task entries, and are protected
|
-- associated with protected objects or task entries, and are protected
|
||||||
-- by the protected object lock or Acceptor.L, respectively.
|
-- by the protected object lock or Acceptor.L, respectively.
|
||||||
|
|
||||||
Entry_Names : Task_Entry_Names_Access := null;
|
|
||||||
-- An array of string names which denotes entry [family member] names.
|
|
||||||
-- The structure is indexed by task entry index and contains Entry_Num
|
|
||||||
-- components.
|
|
||||||
--
|
|
||||||
-- Protection: The array is populated during task initialization, before
|
|
||||||
-- the task has been activated. No protection is required in this case.
|
|
||||||
|
|
||||||
New_Base_Priority : System.Any_Priority;
|
New_Base_Priority : System.Any_Priority;
|
||||||
-- New value for Base_Priority (for dynamic priorities package)
|
-- New value for Base_Priority (for dynamic priorities package)
|
||||||
--
|
--
|
||||||
|
|
@ -1202,10 +1189,4 @@ private
|
||||||
|
|
||||||
function Number_Of_Entries (Self_Id : Task_Id) return Entry_Index;
|
function Number_Of_Entries (Self_Id : Task_Id) return Entry_Index;
|
||||||
-- Given a task, return the number of entries it contains
|
-- Given a task, return the number of entries it contains
|
||||||
|
|
||||||
procedure Set_Entry_Names
|
|
||||||
(Self_Id : Task_Id;
|
|
||||||
Names : Task_Entry_Names_Access);
|
|
||||||
-- Associate an array of strings denotinge entry [family] names with a task
|
|
||||||
|
|
||||||
end System.Tasking;
|
end System.Tasking;
|
||||||
|
|
|
||||||
|
|
@ -378,18 +378,6 @@ package body System.Tasking.Protected_Objects.Entries is
|
||||||
Object.New_Ceiling := Prio;
|
Object.New_Ceiling := Prio;
|
||||||
end Set_Ceiling;
|
end Set_Ceiling;
|
||||||
|
|
||||||
---------------------
|
|
||||||
-- Set_Entry_Names --
|
|
||||||
---------------------
|
|
||||||
|
|
||||||
procedure Set_Entry_Names
|
|
||||||
(Object : Protection_Entries_Access;
|
|
||||||
Names : Protected_Entry_Names_Access)
|
|
||||||
is
|
|
||||||
begin
|
|
||||||
Object.Entry_Names := Names;
|
|
||||||
end Set_Entry_Names;
|
|
||||||
|
|
||||||
--------------------
|
--------------------
|
||||||
-- Unlock_Entries --
|
-- Unlock_Entries --
|
||||||
--------------------
|
--------------------
|
||||||
|
|
|
||||||
|
|
@ -57,8 +57,8 @@ package System.Tasking.Protected_Objects.Entries is
|
||||||
(O : System.Address;
|
(O : System.Address;
|
||||||
E : Protected_Entry_Index)
|
E : Protected_Entry_Index)
|
||||||
return Protected_Entry_Index;
|
return Protected_Entry_Index;
|
||||||
-- Convert a queue index to an entry index (an entries family has one entry
|
-- Convert a queue index to an entry index (an entry family has one entry
|
||||||
-- index for several queue index).
|
-- index for several queue indexes).
|
||||||
|
|
||||||
type Protected_Entry_Body_Array is
|
type Protected_Entry_Body_Array is
|
||||||
array (Positive_Protected_Entry_Index range <>) of Entry_Body;
|
array (Positive_Protected_Entry_Index range <>) of Entry_Body;
|
||||||
|
|
@ -76,15 +76,6 @@ package System.Tasking.Protected_Objects.Entries is
|
||||||
type Protected_Entry_Queue_Max_Access is
|
type Protected_Entry_Queue_Max_Access is
|
||||||
access constant Protected_Entry_Queue_Max_Array;
|
access constant Protected_Entry_Queue_Max_Array;
|
||||||
|
|
||||||
-- The following declarations define an array that contains the string
|
|
||||||
-- names of entries and entry family members, together with an associated
|
|
||||||
-- access type.
|
|
||||||
|
|
||||||
type Protected_Entry_Names_Array is
|
|
||||||
array (Entry_Index range <>) of String_Access;
|
|
||||||
|
|
||||||
type Protected_Entry_Names_Access is access all Protected_Entry_Names_Array;
|
|
||||||
|
|
||||||
-- The following type contains the GNARL state of a protected object.
|
-- The following type contains the GNARL state of a protected object.
|
||||||
-- The application-defined portion of the state (i.e. private objects)
|
-- The application-defined portion of the state (i.e. private objects)
|
||||||
-- is maintained by the compiler-generated code. Note that there is a
|
-- is maintained by the compiler-generated code. Note that there is a
|
||||||
|
|
@ -156,11 +147,6 @@ package System.Tasking.Protected_Objects.Entries is
|
||||||
-- Access to an array of naturals representing the max value for each
|
-- Access to an array of naturals representing the max value for each
|
||||||
-- entry's queue length. A value of 0 signifies no max.
|
-- entry's queue length. A value of 0 signifies no max.
|
||||||
|
|
||||||
Entry_Names : Protected_Entry_Names_Access := null;
|
|
||||||
-- An array of string names which denotes entry [family member] names.
|
|
||||||
-- The structure is indexed by protected entry index and contains Num_
|
|
||||||
-- Entries components.
|
|
||||||
|
|
||||||
Entry_Queues : Protected_Entry_Queue_Array (1 .. Num_Entries);
|
Entry_Queues : Protected_Entry_Queue_Array (1 .. Num_Entries);
|
||||||
-- Action and barrier subprograms for the protected type.
|
-- Action and barrier subprograms for the protected type.
|
||||||
end record;
|
end record;
|
||||||
|
|
@ -233,12 +219,6 @@ package System.Tasking.Protected_Objects.Entries is
|
||||||
Prio : System.Any_Priority);
|
Prio : System.Any_Priority);
|
||||||
-- Sets the new ceiling priority of the protected object
|
-- Sets the new ceiling priority of the protected object
|
||||||
|
|
||||||
procedure Set_Entry_Names
|
|
||||||
(Object : Protection_Entries_Access;
|
|
||||||
Names : Protected_Entry_Names_Access);
|
|
||||||
-- Associate an array of string that denote entry [family] names with a
|
|
||||||
-- protected object.
|
|
||||||
|
|
||||||
procedure Unlock_Entries (Object : Protection_Entries_Access);
|
procedure Unlock_Entries (Object : Protection_Entries_Access);
|
||||||
-- Relinquish ownership of the lock for the object represented by the
|
-- Relinquish ownership of the lock for the object represented by the
|
||||||
-- Object parameter. If this ownership was for write access, or if it was
|
-- Object parameter. If this ownership was for write access, or if it was
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue