+ ------------------
+ -- Is_Init_Proc --
+ ------------------
+
+ function Is_Init_Proc (E : Entity_Id) return Boolean is
+ C1 : Character;
+ C2 : Character;
+ begin
+ Get_Last_Two_Chars (Chars (E), C1, C2);
+ return C1 = TSS_Init_Proc (1) and then C2 = TSS_Init_Proc (2);
+ end Is_Init_Proc;
+
+ ------------
+ -- Is_TSS --
+ ------------
+
+ function Is_TSS (E : Entity_Id; Nam : TSS_Name_Type) return Boolean is
+ C1 : Character;
+ C2 : Character;
+ begin
+ Get_Last_Two_Chars (Chars (E), C1, C2);
+ return C1 = Nam (1) and then C2 = Nam (2);
+ end Is_TSS;
+
+ function Is_TSS (N : Name_Id; Nam : TSS_Name_Type) return Boolean is
+ C1 : Character;
+ C2 : Character;
+ begin
+ Get_Last_Two_Chars (N, C1, C2);
+ return C1 = Nam (1) and then C2 = Nam (2);
+ end Is_TSS;
+
+ -------------------------
+ -- Make_Init_Proc_Name --
+ -------------------------
+
+ function Make_Init_Proc_Name (Typ : Entity_Id) return Name_Id is
+ begin
+ return Make_TSS_Name (Typ, TSS_Init_Proc);
+ end Make_Init_Proc_Name;
+
+ -------------------
+ -- Make_TSS_Name --
+ -------------------
+
+ function Make_TSS_Name
+ (Typ : Entity_Id;
+ Nam : TSS_Name_Type) return Name_Id
+ is
+ begin
+ Get_Name_String (Chars (Typ));
+ Add_Char_To_Name_Buffer (Nam (1));
+ Add_Char_To_Name_Buffer (Nam (2));
+ return Name_Find;
+ end Make_TSS_Name;
+
+ -------------------------
+ -- Make_TSS_Name_Local --
+ -------------------------
+
+ function Make_TSS_Name_Local
+ (Typ : Entity_Id;
+ Nam : TSS_Name_Type) return Name_Id
+ is
+ begin
+ Get_Name_String (Chars (Typ));
+ Add_Char_To_Name_Buffer ('_');
+ Add_Nat_To_Name_Buffer (Increment_Serial_Number);
+ Add_Char_To_Name_Buffer (Nam (1));
+ Add_Char_To_Name_Buffer (Nam (2));
+ return Name_Find;
+ end Make_TSS_Name_Local;
+
+ --------------
+ -- Same_TSS --
+ --------------
+
+ function Same_TSS (E1, E2 : Entity_Id) return Boolean is
+ E1C1 : Character;
+ E1C2 : Character;
+ E2C1 : Character;
+ E2C2 : Character;
+
+ begin
+ Get_Last_Two_Chars (Chars (E1), E1C1, E1C2);
+ Get_Last_Two_Chars (Chars (E2), E2C1, E2C2);
+
+ return
+ E1C1 = E2C1
+ and then
+ E1C2 = E2C2
+ and then
+ E1C1 in 'A' .. 'Z'
+ and then
+ E1C2 in 'A' .. 'Z';
+ end Same_TSS;
+