home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / gnat-2.06-src.tgz / tar.out / fsf / gnat / ada / rtsfind.ads < prev    next >
Text File  |  1996-09-28  |  43KB  |  1,013 lines

  1. ------------------------------------------------------------------------------
  2. --                                                                          --
  3. --                         GNA COMPILER COMPONENTS                          --
  4. --                                                                          --
  5. --                              R T S F I N D                               --
  6. --                                                                          --
  7. --                                 S p e c                                  --
  8. --                                                                          --
  9. --                            $Revision: 1.92 $                             --
  10. --                                                                          --
  11. --        Copyright (c) 1992,1993,1994,1995 NYU, All Rights Reserved        --
  12. --                                                                          --
  13. -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  14. -- terms of the  GNU General Public License as published  by the Free Soft- --
  15. -- ware  Foundation;  either version 2,  or (at your option) any later ver- --
  16. -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
  17. -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
  18. -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
  19. -- for  more details.  You should have  received  a copy of the GNU General --
  20. -- Public License  distributed with GNAT;  see file COPYING.  If not, write --
  21. -- to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. --
  22. --                                                                          --
  23. ------------------------------------------------------------------------------
  24.  
  25. with Types; use Types;
  26.  
  27. package Rtsfind is
  28.  
  29. --  This package contains the routine that is used to obtain runtime library
  30. --  entities, loading in the required runtime library packages on demand. It
  31. --  is also used for such purposes as finding System.Address when System has
  32. --  not been explicitly With'ed.
  33.  
  34.    ------------------------
  35.    -- Runtime Unit Table --
  36.    ------------------------
  37.  
  38.    --  The following type includes an enumeration entry for each runtime
  39.    --  unit. The enumeration literal represents the fully qualified
  40.    --  name of the unit, as follows:
  41.  
  42.    --    Names of the form Ada_xxx are first level children of Ada, whose
  43.    --    name is Ada.xxx. For example, the name Ada_Tags refers to package
  44.    --    Ada.Tags.
  45.  
  46.    --    Names of the form Ada_Calendar_xxx are second level children
  47.    --    of Ada.Calendar.  This is part of a tempoary implementation of
  48.    --    delays; eventually, pacakges implementing delays will be found
  49.    --    relative to the package that declares the time type.
  50.  
  51.    --    Names of the form Interfaces_xxx are first level children of
  52.    --    Interfaces, whose name is Interfaces.xxx. For example, the name
  53.    --    Interfaces_CPP refers to package Interfaces.CPP
  54.  
  55.    --    Names of the form System_xxx are first level children of System, whose
  56.    --    name is System.xxx. For example, the name System_Str_Concat refers to
  57.    --    package System.Str_Concat.
  58.  
  59.    --    Names of the form System_Tasking_xxx are second level children of the
  60.    --    package System.Tasking. For example, System_Tasking_Abortion refers to
  61.    --    refers to the package System.Tasking.Abortion.
  62.  
  63.    --    Other names stand for themselves (e.g. System for package System)
  64.  
  65.    --  This list can contain both subprogram and package unit names. For
  66.    --  packages, the accessible entities in the package are separately
  67.    --  listed in the package entity table. The units must be either library
  68.    --  level package declarations, or library level subprogram declarations.
  69.    --  Generic units, library level instantiations and subprogram bodies
  70.    --  acting as specs may not be referenced (all these cases could be added
  71.    --  at the expense of additional complexity in the body of Rtsfind, but
  72.    --  it doesn't seem worth while, since the implementation controls the
  73.    --  set of units that are referenced, and this restrictions is easily met.
  74.  
  75.    --  IMPORTANT NOTE: the specs of packages and procedures with'ed using
  76.    --  this mechanism may not contain use clauses. This is because these
  77.    --  subprograms are compiled in the current visibility environment, and
  78.    --  it would be too much trouble to establish a clean environment for the
  79.    --  compilation. The presence of extraneous visible stuff has no effect
  80.    --  on the compilation except in the presence of use clauses (which might
  81.    --  result in unexpected ambiguities).
  82.  
  83.    type RTU_Id is (
  84.       --  Runtime packages, for list of accessible entities in each
  85.       --  package see declarations in the runtime entity table below.
  86.  
  87.       --  Children of Ada
  88.  
  89.       Ada_Calendar,
  90.       Ada_Exceptions,
  91.       Ada_Finalization,
  92.       Ada_Real_Time,
  93.       Ada_Streams,
  94.       Ada_Tags,
  95.  
  96.       --  Children of Ada.Calendar
  97.  
  98.       Ada_Calendar_Delays,
  99.  
  100.       --  Children of Ada.Real_Time
  101.  
  102.       Ada_Real_Time_Delays,
  103.  
  104.       --  Children of Ada.Text_IO (for Text_IO_Kludge)
  105.  
  106.       Ada_Text_IO_Decimal_IO,
  107.       Ada_Text_IO_Enumeration_IO,
  108.       Ada_Text_IO_Fixed_IO,
  109.       Ada_Text_IO_Float_IO,
  110.       Ada_Text_IO_Integer_IO,
  111.       Ada_Text_IO_Modular_IO,
  112.  
  113.       --  Children of Ada.Text_IO (for Text_IO_Kludge)
  114.  
  115.       Ada_Wide_Text_IO_Decimal_IO,
  116.       Ada_Wide_Text_IO_Enumeration_IO,
  117.       Ada_Wide_Text_IO_Fixed_IO,
  118.       Ada_Wide_Text_IO_Float_IO,
  119.       Ada_Wide_Text_IO_Integer_IO,
  120.       Ada_Wide_Text_IO_Modular_IO,
  121.  
  122.       --  Interfaces
  123.  
  124.       Interfaces,
  125.  
  126.       --  Children of Interfaces
  127.  
  128.       Interfaces_CPP,
  129.       Interfaces_Packed_Decimal,
  130.  
  131.       --  Package System
  132.  
  133.       System,
  134.  
  135.       --  Children of System
  136.  
  137.       System_Arith_64,
  138.       System_Assertions,
  139.       System_Compiler_Exceptions,
  140.       System_Delay_Operations,
  141.       System_Exn_Flt,
  142.       System_Exn_Int,
  143.       System_Exn_LFlt,
  144.       System_Exn_LInt,
  145.       System_Exn_LLF,
  146.       System_Exn_LLI,
  147.       System_Exn_SFlt,
  148.       System_Exn_SInt,
  149.       System_Exn_SSI,
  150.       System_Exp_Flt,
  151.       System_Exp_Int,
  152.       System_Exp_LFlt,
  153.       System_Exp_LInt,
  154.       System_Exp_LLF,
  155.       System_Exp_LLI,
  156.       System_Exp_LLU,
  157.       System_Exp_Mod,
  158.       System_Exp_SFlt,
  159.       System_Exp_SInt,
  160.       System_Exp_SSI,
  161.       System_Exp_Uns,
  162.       System_Fat_Flt,
  163.       System_Fat_LFlt,
  164.       System_Fat_LLF,
  165.       System_Fat_SFlt,
  166.       System_Finalization_Implementation,
  167.       System_Fore,
  168.       System_Img_Bool,
  169.       System_Img_Char,
  170.       System_Img_Dec,
  171.       System_Img_Int,
  172.       System_Img_LLD,
  173.       System_Img_LLI,
  174.       System_Img_LLU,
  175.       System_Img_Real,
  176.       System_Img_Uns,
  177.       System_Img_WChar,
  178.       System_Pool_Global,
  179.       System_Pool_Empty,
  180.       System_Pool_Local,
  181.       System_Pool_Size,
  182.       System_RPC,
  183.       System_Secondary_Stack,
  184.       System_Storage_Elements,
  185.       System_Storage_Pools,
  186.       System_String_Ops,
  187.       System_Signals,
  188.       System_Task_Timer,
  189.       System_Tasking,
  190.       System_Tasking_Library,
  191.       System_Tasking_Soft_Links,
  192.       System_Unsigned_Types,
  193.       System_Val_Bool,
  194.       System_Val_Char,
  195.       System_Val_Dec,
  196.       System_Val_Enum,
  197.       System_Val_Int,
  198.       System_Val_LLD,
  199.       System_Val_LLI,
  200.       System_Val_LLU,
  201.       System_Val_Real,
  202.       System_Val_Uns,
  203.       System_Val_WChar,
  204.       System_Version_Control,
  205.       System_WCh_StW,
  206.       System_WCh_WtS,
  207.       System_Wid_Bool,
  208.       System_Wid_Char,
  209.       System_Wid_Enum,
  210.       System_Wid_LLI,
  211.       System_Wid_LLU,
  212.       System_Wid_WChar,
  213.       System_WWd_Char,
  214.       System_WWd_Enum,
  215.       System_WWd_Wchar,
  216.  
  217.       --  Children of System.Tasking
  218.  
  219.       System_Tasking_Abortion,
  220.       System_Tasking_Protected_Objects,
  221.       System_Tasking_Rendezvous,
  222.       System_Tasking_Stages);
  223.  
  224.    subtype Ada_Child is RTU_Id
  225.      range Ada_Calendar .. Ada_Wide_Text_IO_Modular_IO;
  226.    --  Range of values for children or grand-children of Ada
  227.  
  228.    subtype Ada_Calendar_Child is Ada_Child
  229.      range Ada_Calendar_Delays .. Ada_Calendar_Delays;
  230.    --  Range of values for children of Ada.Calendar
  231.  
  232.    subtype Ada_Real_Time_Child is Ada_Child
  233.      range Ada_Real_Time_Delays .. Ada_Real_Time_Delays;
  234.    --  Range of values for children of Ada.Real_Time
  235.  
  236.    subtype Ada_Text_IO_Child is Ada_Child
  237.      range Ada_Text_IO_Decimal_IO .. Ada_Text_IO_Modular_IO;
  238.    --  Range of values for children of Ada.Text_IO
  239.  
  240.    subtype Ada_Wide_Text_IO_Child is Ada_Child
  241.      range Ada_Wide_Text_IO_Decimal_IO .. Ada_Wide_Text_IO_Modular_IO;
  242.    --  Range of values for children of Ada.Text_IO
  243.  
  244.    subtype Interfaces_Child is RTU_Id
  245.      range Interfaces_CPP .. Interfaces_Packed_Decimal;
  246.    --  Range of values for children of Interfaces
  247.  
  248.    subtype System_Child is RTU_Id
  249.      range System_Arith_64 .. System_Tasking_Stages;
  250.    --  Range of values for children or grandchildren of System
  251.  
  252.    subtype System_Tasking_Child is System_Child
  253.      range System_Tasking_Abortion .. System_Tasking_Stages;
  254.    --  All entries greater than or equal to this are children of Tasking
  255.  
  256.    --------------------------
  257.    -- Runtime Entity Table --
  258.    --------------------------
  259.  
  260.    --  This is the enumeration type used to define the argument passed to
  261.    --  the RTE function. The name must exactly match the name of the entity
  262.    --  involved, and in the case of a package entity, this name must uniquely
  263.    --  imply the package containing the entity.
  264.  
  265.    --  As far as possible, we avoid duplicate names in runtime packages, so
  266.    --  that the name RE_nnn uniquely identifies the entity nnn.In some cases,
  267.    --  it is impossible to avoid such duplication because the names come from
  268.    --  RM defined packages. In such cases, the name is ot the form RO_XX_nnn
  269.    --  where XX is two letters used to differentiate the multiple occurrences
  270.    --  of the name xx, and nnn is the entity name.
  271.  
  272.    --  Note that not all entities in the units contained in the runtime unit
  273.    --  table are included in the following table, only those that actually
  274.    --  have to be referenced from generated code.
  275.  
  276.    type RE_Id is (
  277.  
  278.      RE_Exception_Occurrence,            -- Ada.Exceptions
  279.  
  280.      RE_List_Controller,                 -- Ada.Finalization
  281.  
  282.      RE_Root_Stream_Type,                -- Ada.Streams
  283.      RE_Stream_Element,                  -- Ada.Streams
  284.      RE_Stream_Element_Offset,           -- Ada.Streams
  285.      RE_Stream_Element_Array,            -- Ada.Streams
  286.  
  287.      RE_Expanded_Name,                   -- Ada.Tags
  288.      RE_External_Tag,                    -- Ada.Tags
  289.      RE_Internal_Tag,                    -- Ada.Tags
  290.      RE_Tag,                             -- Ada.Tags
  291.      RE_Tag_Error,                       -- Ada.Tags
  292.      RE_Set_Prim_Op_Address,             -- Ada.Tags
  293.      RE_Get_Prim_Op_Address,             -- Ada.Tags
  294.      RE_Set_Inheritance_Depth,           -- Ada.Tags
  295.      RE_Get_Inheritance_Depth,           -- Ada.Tags
  296.      RE_Set_Ancestor_Tags,               -- Ada.Tags
  297.      RE_Get_Ancestor_Tags,               -- Ada.Tags
  298.      RE_DT_Size,                         -- Ada.Tags
  299.      RE_Inherit_DT,                      -- Ada.Tags
  300.      RE_CW_Membership,                   -- Ada.Tags
  301.      RE_Address_Array,                   -- Ada.Tags
  302.  
  303.      RO_CA_Time,                         -- Ada.Calendar
  304.      RO_CA_Delay_Object,                 -- Ada.Calendar.Delays
  305.      RO_CA_Delay_Until_Object,           -- Ada.Calendar.Delays
  306.      RO_CA_Delay_For,                    -- Ada.Calendar.Delays
  307.      RO_CA_Delay_Until,                  -- Ada.Calendar.Delays
  308.  
  309.      RO_RT_Time,                         -- Ada.Real_Time
  310.      RO_RT_Delay_Until_Object,           -- Ada.Real_Time.Delays
  311.      RO_RT_Delay_Until,                  -- Ada.Real_Time.Delays
  312.  
  313.      RE_Integer_64,                      -- Interfaces
  314.  
  315.      RE_Vtable_Ptr,                      -- Interfaces.CPP
  316.      RE_Set_Vfunction_Address,           -- Interfaces.CPP
  317.      RE_Get_Vfunction_Address,           -- Interfaces.CPP
  318.      RE_Set_Idepth,                      -- Interfaces.CPP
  319.      RE_Get_Idepth,                      -- Interfaces.CPP
  320.      RE_Set_Ancestor_Vptrs,              -- Interfaces.CPP
  321.      RE_Get_Ancestor_Vptrs,              -- Interfaces.CPP
  322.      RE_Displaced_This,                  -- Interfaces.CPP
  323.      RE_Vtable_Size,                     -- Interfaces.CPP
  324.      RE_Inherit_Vtable,                  -- Interfaces.CPP
  325.      RE_CPP_Membership,                  -- Interfaces.CPP
  326.  
  327.      RE_Packed_Size,                     -- Interfaces.Packed_Decimal
  328.      RE_Packed_To_Int32,                 -- Interfaces.Packed_Decimal
  329.      RE_Packed_To_Int64,                 -- Interfaces.Packed_Decimal
  330.      RE_Int32_To_Packed,                 -- Interfaces.Packed_Decimal
  331.      RE_Int64_To_Packed,                 -- Interfaces.Packed_Decimal
  332.  
  333.      RE_Address,                         -- System
  334.      RE_Any_Priority,                    -- System
  335.      RE_Bit_Order,                       -- System
  336.      RE_Default_Priority,                -- System
  337.      RE_High_Order_First,                -- System
  338.      RE_Interrupt_Priority,              -- System
  339.      RE_Low_Order_First,                 -- System
  340.      RE_Null_Address,                    -- System
  341.      RE_Priority,                        -- System
  342.  
  343.      RE_Add_With_Ovflo_Check,            -- System.Arith_64
  344.      RE_Divide_With_Ovflo_Check,         -- System.Arith_64
  345.      RE_Double_Divide,                   -- System.Arith_64
  346.      RE_Multiply_With_Ovflo_Check,       -- System.Arith_64
  347.      RE_Scaled_Divide,                   -- System.Arith_64
  348.      RE_Subtract_With_Ovflo_Check,       -- System.Arith_64
  349.  
  350.      RE_Raise_Assert_Failure,            -- System.Assertions
  351.  
  352.      RE_Current_Exception,               -- System.Compiler_Exceptions
  353.      RE_Constraint_Error_ID,             -- System.Compiler_Exceptions
  354.      RE_Numeric_Error_ID,                -- System.Compiler_Exceptions
  355.      RE_Program_Error_ID,                -- System.Compiler_Exceptions
  356.      RE_Storage_Error_ID,                -- System.Compiler_Exceptions
  357.      RE_Tasking_Error_ID,                -- System.Compiler_Exceptions
  358.  
  359.      RE_Exn_Float,                       -- System.Exn_Flt
  360.  
  361.      RE_Exn_Integer,                     -- System.Exn_Int
  362.  
  363.      RE_Exn_Long_Float,                  -- System.Exn_LFlt
  364.  
  365.      RE_Exn_Long_Integer,                -- System.Exn_LInt
  366.  
  367.      RE_Exn_Long_Long_Float,             -- System.Exn_LLF
  368.  
  369.      RE_Exn_Long_Long_Integer,           -- System.Exn_LLI
  370.  
  371.      RE_Exn_Short_Float,                 -- System.Exn_SFlt
  372.  
  373.      RE_Exn_Short_Integer,               -- System.Exn_SInt
  374.  
  375.      RE_Exn_Short_Short_Integer,         -- System.Exn_SSI
  376.  
  377.      RE_Exp_Float,                       -- System.Exp_Flt
  378.  
  379.      RE_Exp_Integer,                     -- System.Exp_Int
  380.  
  381.      RE_Exp_Long_Float,                  -- System.Exp_LFlt
  382.  
  383.      RE_Exp_Long_Integer,                -- System.Exp_LInt
  384.  
  385.      RE_Exp_Long_Long_Float,             -- System.Exp_LLF
  386.  
  387.      RE_Exp_Long_Long_Integer,           -- System.Exp_LLI
  388.  
  389.      RE_Exp_Long_Long_Unsigned,          -- System.Exp_LLU
  390.  
  391.      RE_Exp_Modular,                     -- System.Exp_Mod
  392.  
  393.      RE_Exp_Short_Float,                 -- System.Exp_SFlt
  394.  
  395.      RE_Exp_Short_Integer,               -- System.Exp_SInt
  396.  
  397.      RE_Exp_Short_Short_Integer,         -- System.Exp_SSI
  398.  
  399.      RE_Exp_Unsigned,                    -- System.Exp_Uns
  400.  
  401.      RE_Fat_Float,                       -- System.Fat_Flt
  402.  
  403.      RE_Fat_Long_Float,                  -- System.Fat_LFlt
  404.  
  405.      RE_Fat_Long_Long_Float,             -- System.Fat_LLF
  406.  
  407.      RE_Fat_Short_Float,                 -- System.Fat_SFlt
  408.  
  409.      RE_Attach_To_Final_List,            -- System.Finalization_Implementation
  410.      RE_Detach_From_Final_List,          -- System.Finalization_Implementation
  411.      RE_Root_Controlled,                 -- System.Finalization_Implementation
  412.      RE_Finalizable,                     -- System.Finalization_Implementation
  413.      RE_Finalizable_Ptr,                 -- System.Finalization_Implementation
  414.      RE_Finalize_List,                   -- System.Finalization_Implementation
  415.      RE_Finalize_One,                    -- System.Finalization_Implementation
  416.      RE_Global_Final_List,               -- System.Finalization_Implementation
  417.      RE_Record_Controller,               -- System.Finalization_Implementation
  418.      RE_Limited_Record_Controller,       -- System.Finalization_Implementation
  419.  
  420.      RE_Fore,                            -- System.Fore
  421.  
  422.      RE_Image_Boolean,                   -- System.Img_Bool
  423.  
  424.      RE_Image_Character,                 -- System.Img_Char
  425.  
  426.      RE_Image_Decimal,                   -- System.Img_Dec
  427.  
  428.      RE_Image_Integer,                   -- System.Img_Int
  429.  
  430.      RE_Image_Long_Long_Decimal,         -- System.Img_LLD
  431.  
  432.      RE_Image_Long_Long_Integer,         -- System.Img_LLI
  433.  
  434.      RE_Image_Long_Long_Unsigned,        -- System.Img_LLU
  435.  
  436.      RE_Image_Ordinary_Fixed_Point,      -- System.Img_Real
  437.      RE_Image_Floating_Point,            -- System.Img_Real
  438.  
  439.      RE_Image_Unsigned,                  -- System.Img_Uns
  440.  
  441.      RE_Image_Wide_Character,            -- System.Img_WChar
  442.  
  443.      RE_Empty_Pool_Object,               -- System.Pool_Empty
  444.  
  445.      RE_Global_Pool_Object,              -- System.Pool_Global
  446.  
  447.      RE_Unbounded_Reclaim_Pool,          -- System.Pool_Local
  448.  
  449.      RE_Stack_Bounded_Pool,              -- System.Pool_Size
  450.  
  451.      RE_Params_Stream_Type,              -- System.RPC
  452.      RE_Partition_ID,                    -- System.RPC
  453.  
  454.      RE_Mark_Id,                         -- System.Secondary_Stack
  455.      RE_SS_Allocate,                     -- System.Secondary_Stack
  456.      RE_SS_Init,                         -- System.Secondary_Stack
  457.      RE_SS_Mark,                         -- System.Secondary_Stack
  458.      RE_SS_Pool,                         -- System.Secondary_Stack
  459.      RE_SS_Release,                      -- System.Secondary_Stack
  460.  
  461.      RE_Integer_Address,                 -- System.Storage_Elements
  462.      RE_Storage_Offset,                  -- System.Storage_Elements
  463.      RE_Storage_Array,                   -- System.Storage_Elements
  464.  
  465.      RE_Root_Storage_Pool,               -- System.Storage_Pools
  466.  
  467.      RE_Str_Concat,                      -- System.String_Ops
  468.      RE_Str_Equal,                       -- System.String_Ops
  469.  
  470.      RE_Error_Information,               -- System.Tasking
  471.      RE_Task_Procedure_Access,           -- System.Tasking
  472.      RE_Interrupt_ID,                    -- System.Tasking
  473.      RE_Interrupt_Info,                  -- System.Tasking
  474.      RE_Machine_Exceptions,              -- System.Tasking
  475.      RE_Pre_Call_State,                  -- System.Tasking
  476.      RE_Task_Storage_Size,               -- System.Tasking
  477.  
  478.      RE_Task_ID,                         -- System.Tasking
  479.      RE_Task_Image,                      -- System.Tasking
  480.      RE_Task_String,                     -- System.Tasking
  481.  
  482.      RE_Null_Protected_Entry,            -- System.Tasking
  483.      RE_Max_Protected_Entry,             -- System.Tasking
  484.      RE_Protected_Entry_Index,           -- System.Tasking
  485.      RE_Call_Modes,                      -- System.Tasking
  486.      RE_Simple_Call,                     -- System.Tasking
  487.      RE_Conditional_Call,                -- System.Tasking
  488.      RE_Asynchronous_Call,               -- System.Tasking
  489.  
  490.      RE_Task_List,                       -- System.Tasking
  491.  
  492.      RE_Protected_Entry_Body_Array,      -- System.Tasking
  493.      RE_Protected_Entry_Body_Access,     -- System.Tasking
  494.      RE_Protection,                      -- System.Tasking
  495.      RE_Protection_Access,               -- System.Tasking
  496.      RE_Communication_Block,             -- System.Tasking
  497.      RE_Get_Cancelled,                   -- System.Tasking
  498.      RE_Barrier_Vector,                  -- System.Tasking
  499.  
  500.      RE_Accept_Alternative,              -- System.Tasking
  501.      RE_Accept_List,                     -- System.Tasking
  502.      RE_Accept_List_Access,              -- System.Tasking
  503.      RE_Max_Select,                      -- System.Tasking
  504.      RE_Max_Task_Entry,                  -- System.Tasking
  505.      RE_No_Rendezvous,                   -- System.Tasking
  506.      RE_Null_Task_Entry,                 -- System.Tasking
  507.      RE_Positive_Select_Index,           -- System.Tasking
  508.      RE_Select_Index,                    -- System.Tasking
  509.      RE_Select_Modes,                    -- System.Tasking
  510.      RE_Else_Mode,                       -- System.Tasking
  511.      RE_Simple_Mode,                     -- System.Tasking
  512.      RE_Terminate_Mode,                  -- System.Tasking
  513.      RE_Task_Entry_Index,                -- System.Tasking
  514.  
  515.      RE_Master_Id,                       -- System.Tasking
  516.      RE_Self,                            -- System.Tasking
  517.      RE_Size_Type,                       -- System.Tasking
  518.      RE_Unspecified_Priority,            -- System.Tasking
  519.      RE_Unspecified_Size,                -- System.Tasking
  520.  
  521.      RE_Activation_Chain,                -- System.Tasking
  522.  
  523.      RE_Abort_Defer,                     -- System.Tasking_Soft_Links
  524.      RE_Abort_Undefer,                   -- System.Tasking_Soft_Links
  525.  
  526.      RE_Long_Long_Unsigned,              -- System.Unsigned_Types
  527.      RE_Unsigned,                        -- System.Unsigned_Types
  528.      RE_Raw_Bits,                        -- System.Raw_Bits
  529.  
  530.      RE_Value_Boolean,                   -- System.Val_Bool
  531.  
  532.      RE_Value_Character,                 -- System.Val_Char
  533.  
  534.      RE_Value_Decimal,                   -- System.Val_Dec
  535.  
  536.      RE_Value_Enumeration,               -- System.Val_Enum
  537.  
  538.      RE_Value_Integer,                   -- System.Val_Int
  539.  
  540.      RE_Value_Long_Long_Decimal,         -- System.Val_LLD
  541.  
  542.      RE_Value_Long_Long_Integer,         -- System.Val_LLI
  543.  
  544.      RE_Value_Long_Long_Unsigned,        -- System.Val_LLU
  545.  
  546.      RE_Value_Real,                      -- System.Val_Real
  547.  
  548.      RE_Value_Unsigned,                  -- System.Val_Uns
  549.  
  550.      RE_Value_Wide_Character,            -- System.Val_WChar
  551.  
  552.      RE_Version_String,                  -- System.Version_Control
  553.      RE_Get_Version_String,              -- System.Version_Control
  554.  
  555.      RE_String_To_Wide_String,           -- System.WCh_StW
  556.  
  557.      RE_Wide_String_To_String,           -- System.WCh_WtS
  558.  
  559.      RE_Wide_Width_Character,            -- System.WWd_Char;
  560.  
  561.      RE_Wide_Width_Enumeration,          -- System.WWd_Enum;
  562.  
  563.      RE_Wide_Width_Wide_Character,       -- System.WWd_Wchar;
  564.  
  565.      RE_Width_Boolean,                   -- System.Wid_Bool
  566.  
  567.      RE_Width_Character,                 -- System.Wid_Char
  568.  
  569.      RE_Width_Enumeration,               -- System.Wid_Enum
  570.  
  571.      RE_Width_Long_Long_Integer,         -- System.Wid_LLI
  572.  
  573.      RE_Width_Long_Long_Unsigned,        -- System.Wid_LLU
  574.  
  575.      RE_Width_Wide_Character,            -- System.Wid_WChar
  576.  
  577.      RE_Delay_Block,                     -- System.Task_Timer
  578.  
  579.      RE_Abort_Tasks,                     -- System.Tasking.Abortion
  580.  
  581.      RE_Service_Record,                  -- System.Tasking_Library
  582.      RE_Service_Cancelled_Call,          -- System.Tasking_Library
  583.  
  584.      RE_Initialize_Protection,           -- System.Tasking.Protected_Objects
  585.      RE_Finalize_Protection,             -- System.Tasking.Protected_Objects
  586.      RE_Lock,                            -- System.Tasking.Protected_Objects
  587.      RE_Lock_Read_Only,                  -- System.Tasking.Protected_Objects
  588.      RE_Unlock,                          -- System.Tasking.Protected_Objects
  589.      RE_Protected_Entry_Call,            -- System.Tasking.Protected_Objects
  590.      RE_Service_Entries,                 -- System.Tasking.Protected_Objects
  591.      RE_Cancel_Protected_Entry_Call,     -- System.Tasking.Protected_Objects
  592.      RE_Enqueued,                        -- System.Tasking.Protected_Objects
  593.      RE_Cancelled,                       -- System.Tasking.Protected_Objects
  594.      RE_Complete_Entry_Body,             -- System.Tasking.Protected_Objects
  595.      RE_Exceptional_Complete_Entry_Body, -- System.Tasking.Protected_Objects
  596.      RE_Requeue_Protected_Entry,         -- System.Tasking.Protected_Objects
  597.      RE_Requeue_Task_To_Protected_Entry, -- System.Tasking.Protected_Objects
  598.      RE_Protected_Count,                 -- System.Tasking.Protected_Objects
  599.  
  600.      RE_Accept_Call,                     -- System.Tasking.Rendezvous
  601.      RE_Accept_Trivial,                  -- System.Tasking.Rendezvous
  602.      RE_Callable,                        -- System.Tasking.Rendezvous
  603.      RE_Call_Simple,                     -- System.Tasking.Rendezvous
  604.      RE_Requeue_Task_Entry,              -- System_Tasking_Rendezvous,
  605.      RE_Requeue_Protected_To_Task_Entry, -- System_Tasking_Rendezvous,
  606.      RE_Cancel_Task_Entry_Call,          -- System.Tasking.Rendezvous
  607.      RE_Complete_Rendezvous,             -- System.Tasking.Rendezvous
  608.      RE_Task_Count,                      -- System.Tasking.Rendezvous
  609.      RE_Exceptional_Complete_Rendezvous, -- System.Tasking.Rendezvous
  610.      RE_Selective_Wait,                  -- System.Tasking.Rendezvous
  611.      RE_Task_Entry_Call,                 -- System.Tasking.Rendezvous
  612.  
  613.      RE_Activate_Tasks,                  -- System.Tasking.Stages
  614.      RE_Complete_Activation,             -- System.Tasking.Stages
  615.      RE_Create_Task,                     -- System.Tasking.Stages
  616.      RE_Current_Master,                  -- System.Tasking.Stages
  617.      RE_Complete_Master,                 -- System.Tasking.Stages
  618.      RE_Complete_Task,                   -- System.Tasking.Stages
  619.      RE_Enter_Master,                    -- System.Tasking.Stages
  620.      RE_Expunge_Unactivated_Tasks,       -- System.Tasking.Stages
  621.      RE_Terminated,                      -- System.Tasking.Stages
  622.  
  623.      RE_Bind_Signal_To_Entry);           -- System.Signals
  624.  
  625.    --  The following declarations build a table that is indexed by the
  626.    --  RTE function to determine the unit containing the given entity.
  627.    --  This table is sorted in order of package names.
  628.  
  629.    RE_Unit_Table : array (RE_Id) of RTU_Id := (
  630.  
  631.      RE_Exception_Occurrence         => Ada_Exceptions,
  632.  
  633.      RE_List_Controller              => Ada_Finalization,
  634.  
  635.      RE_Root_Stream_Type             => Ada_Streams,
  636.      RE_Stream_Element               => Ada_Streams,
  637.      RE_Stream_Element_Offset        => Ada_Streams,
  638.      RE_Stream_Element_Array         => Ada_Streams,
  639.  
  640.      RE_Expanded_Name                => Ada_Tags,
  641.      RE_External_Tag                 => Ada_Tags,
  642.      RE_Internal_Tag                 => Ada_Tags,
  643.      RE_Tag                          => Ada_Tags,
  644.      RE_Tag_Error                    => Ada_Tags,
  645.      RE_Set_Prim_Op_Address          => Ada_Tags,
  646.      RE_Get_Prim_Op_Address          => Ada_Tags,
  647.      RE_Set_Inheritance_Depth        => Ada_Tags,
  648.      RE_Get_Inheritance_Depth        => Ada_Tags,
  649.      RE_Set_Ancestor_Tags            => Ada_Tags,
  650.      RE_Get_Ancestor_Tags            => Ada_Tags,
  651.      RE_DT_Size                      => Ada_Tags,
  652.      RE_Inherit_DT                   => Ada_Tags,
  653.      RE_CW_Membership                => Ada_Tags,
  654.      RE_Address_Array                => Ada_Tags,
  655.  
  656.      RO_CA_Time                      => Ada_Calendar,
  657.      RO_CA_Delay_Object              => Ada_Calendar_Delays,
  658.      RO_CA_Delay_Until_Object        => Ada_Calendar_Delays,
  659.      RO_CA_Delay_For                 => Ada_Calendar_Delays,
  660.      RO_CA_Delay_Until               => Ada_Calendar_Delays,
  661.  
  662.      RO_RT_Time                      => Ada_Real_Time,
  663.      RO_RT_Delay_Until_Object        => Ada_Real_Time_Delays,
  664.      RO_RT_Delay_Until               => Ada_Real_Time_Delays,
  665.  
  666.      RE_Integer_64                   => Interfaces,
  667.  
  668.      RE_Vtable_Ptr                   => Interfaces_CPP,
  669.      RE_Set_Vfunction_Address        => Interfaces_CPP,
  670.      RE_Get_Vfunction_Address        => Interfaces_CPP,
  671.      RE_Set_Idepth                   => Interfaces_CPP,
  672.      RE_Get_Idepth                   => Interfaces_CPP,
  673.      RE_Set_Ancestor_Vptrs           => Interfaces_CPP,
  674.      RE_Get_Ancestor_Vptrs           => Interfaces_CPP,
  675.      RE_Displaced_This               => Interfaces_CPP,
  676.      RE_Vtable_Size                  => Interfaces_CPP,
  677.      RE_Inherit_Vtable               => Interfaces_CPP,
  678.      RE_CPP_Membership               => Interfaces_CPP,
  679.  
  680.      RE_Packed_Size                  => Interfaces_Packed_Decimal,
  681.      RE_Packed_To_Int32              => Interfaces_Packed_Decimal,
  682.      RE_Packed_To_Int64              => Interfaces_Packed_Decimal,
  683.      RE_Int32_To_Packed              => Interfaces_Packed_Decimal,
  684.      RE_Int64_To_Packed              => Interfaces_Packed_Decimal,
  685.  
  686.      RE_Address                      => System,
  687.      RE_Bit_Order                    => System,
  688.      RE_Any_Priority                 => System,
  689.      RE_Default_Priority             => System,
  690.      RE_High_Order_First             => System,
  691.      RE_Interrupt_Priority           => System,
  692.      RE_Low_Order_First              => System,
  693.      RE_Null_Address                 => System,
  694.      RE_Priority                     => System,
  695.  
  696.      RE_Add_With_Ovflo_Check         => System_Arith_64,
  697.      RE_Divide_With_Ovflo_Check      => System_Arith_64,
  698.      RE_Double_Divide                => System_Arith_64,
  699.      RE_Multiply_With_Ovflo_Check    => System_Arith_64,
  700.      RE_Scaled_Divide                => System_Arith_64,
  701.      RE_Subtract_With_Ovflo_Check    => System_Arith_64,
  702.  
  703.      RE_Raise_Assert_Failure         => System_Assertions,
  704.  
  705.      RE_Current_Exception            => System_Compiler_Exceptions,
  706.      RE_Constraint_Error_ID          => System_Compiler_Exceptions,
  707.      RE_Numeric_Error_ID             => System_Compiler_Exceptions,
  708.      RE_Program_Error_ID             => System_Compiler_Exceptions,
  709.      RE_Storage_Error_ID             => System_Compiler_Exceptions,
  710.      RE_Tasking_Error_ID             => System_Compiler_Exceptions,
  711.  
  712.      RE_Exn_Float                    => System_Exn_Flt,
  713.  
  714.      RE_Exn_Integer                  => System_Exn_Int,
  715.  
  716.      RE_Exn_Long_Float               => System_Exn_LFlt,
  717.  
  718.      RE_Exn_Long_Integer             => System_Exn_LInt,
  719.  
  720.      RE_Exn_Long_Long_Float          => System_Exn_LLF,
  721.  
  722.      RE_Exn_Long_Long_Integer        => System_Exn_LLI,
  723.  
  724.      RE_Exn_Short_Float              => System_Exn_SFlt,
  725.  
  726.      RE_Exn_Short_Integer            => System_Exn_SInt,
  727.  
  728.      RE_Exn_Short_Short_Integer      => System_Exn_SSI,
  729.  
  730.      RE_Exp_Float                    => System_Exp_Flt,
  731.  
  732.      RE_Exp_Integer                  => System_Exp_Int,
  733.  
  734.      RE_Exp_Long_Float               => System_Exp_LFlt,
  735.  
  736.      RE_Exp_Long_Integer             => System_Exp_LInt,
  737.  
  738.      RE_Exp_Long_Long_Float          => System_Exp_LLF,
  739.  
  740.      RE_Exp_Long_Long_Integer        => System_Exp_LLI,
  741.  
  742.      RE_Exp_Long_Long_Unsigned       => System_Exp_LLU,
  743.  
  744.      RE_Exp_Modular                  => System_Exp_Mod,
  745.  
  746.      RE_Exp_Short_Float              => System_Exp_SFlt,
  747.  
  748.      RE_Exp_Short_Integer            => System_Exp_SInt,
  749.  
  750.      RE_Exp_Short_Short_Integer      => System_Exp_SSI,
  751.  
  752.      RE_Exp_Unsigned                 => System_Exp_Uns,
  753.  
  754.      RE_Fat_Float                    => System_Fat_Flt,
  755.  
  756.      RE_Fat_Long_Float               => System_Fat_LFlt,
  757.  
  758.      RE_Fat_Long_Long_Float          => System_Fat_LLF,
  759.  
  760.      RE_Fat_Short_Float              => System_Fat_SFlt,
  761.  
  762.      RE_Attach_To_Final_List         => System_Finalization_Implementation,
  763.      RE_Detach_From_Final_List       => System_Finalization_Implementation,
  764.      RE_Root_Controlled              => System_Finalization_Implementation,
  765.      RE_Finalizable                  => System_Finalization_Implementation,
  766.      RE_Finalizable_Ptr              => System_Finalization_Implementation,
  767.      RE_Finalize_List                => System_Finalization_Implementation,
  768.      RE_Finalize_One                 => System_Finalization_Implementation,
  769.      RE_Global_Final_List            => System_Finalization_Implementation,
  770.      RE_Record_Controller            => System_Finalization_Implementation,
  771.      RE_Limited_Record_Controller    => System_Finalization_Implementation,
  772.  
  773.      RE_Fore                         => System_Fore,
  774.  
  775.      RE_Image_Boolean                => System_Img_Bool,
  776.  
  777.      RE_Image_Character              => System_Img_Char,
  778.  
  779.      RE_Image_Decimal                => System_Img_Dec,
  780.  
  781.      RE_Image_Integer                => System_Img_Int,
  782.  
  783.      RE_Image_Long_Long_Decimal      => System_Img_LLD,
  784.  
  785.      RE_Image_Long_Long_Integer      => System_Img_LLI,
  786.  
  787.      RE_Image_Long_Long_Unsigned     => System_Img_LLU,
  788.  
  789.      RE_Image_Ordinary_Fixed_Point   => System_Img_Real,
  790.      RE_Image_Floating_Point         => System_Img_Real,
  791.  
  792.      RE_Image_Unsigned               => System_Img_Uns,
  793.  
  794.      RE_Image_Wide_Character         => System_Img_WChar,
  795.  
  796.      RE_Empty_Pool_Object            => System_Pool_Empty,
  797.  
  798.      RE_Global_Pool_Object           => System_Pool_Global,
  799.  
  800.      RE_Unbounded_Reclaim_Pool       => System_Pool_Local,
  801.  
  802.      RE_Stack_Bounded_Pool           => System_Pool_Size,
  803.  
  804.      RE_Params_Stream_Type           => System_RPC,
  805.      RE_Partition_ID                 => System_RPC,
  806.  
  807.      RE_Mark_Id                      => System_Secondary_Stack,
  808.      RE_SS_Allocate                  => System_Secondary_Stack,
  809.      RE_SS_Init                      => System_Secondary_Stack,
  810.      RE_SS_Mark                      => System_Secondary_Stack,
  811.      RE_SS_Pool                      => System_Secondary_Stack,
  812.      RE_SS_Release                   => System_Secondary_Stack,
  813.  
  814.      RE_Integer_Address              => System_Storage_Elements,
  815.      RE_Storage_Offset               => System_Storage_Elements,
  816.      RE_Storage_Array                => System_Storage_Elements,
  817.  
  818.      RE_Root_Storage_Pool            => System_Storage_Pools,
  819.  
  820.      RE_Str_Concat                   => System_String_Ops,
  821.      RE_Str_Equal                    => System_String_Ops,
  822.  
  823.      RE_Error_Information            => System_Tasking,
  824.      RE_Task_Procedure_Access        => System_Tasking,
  825.      RE_Interrupt_ID                 => System_Tasking,
  826.      RE_Interrupt_Info               => System_Tasking,
  827.      RE_Machine_Exceptions           => System_Tasking,
  828.      RE_Pre_Call_State               => System_Tasking,
  829.      RE_Task_Storage_Size            => System_Tasking,
  830.  
  831.      RE_Task_ID                      => System_Tasking,
  832.      RE_Task_Image                   => System_Tasking,
  833.      RE_Task_String                  => System_Tasking,
  834.  
  835.      RE_Null_Protected_Entry         => System_Tasking,
  836.      RE_Max_Protected_Entry          => System_Tasking,
  837.      RE_Protected_Entry_Index        => System_Tasking,
  838.      RE_Call_Modes                   => System_Tasking,
  839.      RE_Simple_Call                  => System_Tasking,
  840.      RE_Conditional_Call             => System_Tasking,
  841.      RE_Asynchronous_Call            => System_Tasking,
  842.  
  843.      RE_Task_List                    => System_Tasking,
  844.  
  845.      RE_Protected_Entry_Body_Array   => System_Tasking,
  846.      RE_Protected_Entry_Body_Access  => System_Tasking,
  847.      RE_Protection                   => System_Tasking,
  848.      RE_Protection_Access            => System_Tasking,
  849.      RE_Communication_Block          => System_Tasking,
  850.      RE_Get_Cancelled                => System_Tasking,
  851.      RE_Barrier_Vector               => System_Tasking,
  852.  
  853.      RE_Accept_Alternative           => System_Tasking,
  854.      RE_Accept_List                  => System_Tasking,
  855.      RE_Accept_List_Access           => System_Tasking,
  856.      RE_Max_Select                   => System_Tasking,
  857.      RE_Max_Task_Entry               => System_Tasking,
  858.      RE_No_Rendezvous                => System_Tasking,
  859.      RE_Null_Task_Entry              => System_Tasking,
  860.      RE_Positive_Select_Index        => System_Tasking,
  861.      RE_Select_Index                 => System_Tasking,
  862.      RE_Select_Modes                 => System_Tasking,
  863.      RE_Else_Mode                    => System_Tasking,
  864.      RE_Simple_Mode                  => System_Tasking,
  865.      RE_Terminate_Mode               => System_Tasking,
  866.      RE_Task_Entry_Index             => System_Tasking,
  867.  
  868.      RE_Master_Id                    => System_Tasking,
  869.      RE_Self                         => System_Tasking,
  870.      RE_Size_Type                    => System_Tasking,
  871.      RE_Unspecified_Priority         => System_Tasking,
  872.      RE_Unspecified_Size             => System_Tasking,
  873.  
  874.      RE_Activation_Chain             => System_Tasking,
  875.  
  876.      RE_Abort_Defer                  => System_Tasking_Soft_Links,
  877.      RE_Abort_Undefer                => System_Tasking_Soft_Links,
  878.  
  879.      RE_Long_Long_Unsigned           => System_Unsigned_Types,
  880.      RE_Unsigned                     => System_Unsigned_Types,
  881.      RE_Raw_Bits                     => System_Unsigned_Types,
  882.  
  883.      RE_Value_Boolean                => System_Val_Bool,
  884.  
  885.      RE_Value_Character              => System_Val_Char,
  886.  
  887.      RE_Value_Decimal                => System_Val_Dec,
  888.  
  889.      RE_Value_Enumeration            => System_Val_Enum,
  890.  
  891.      RE_Value_Integer                => System_Val_Int,
  892.  
  893.      RE_Value_Long_Long_Decimal      => System_Val_LLD,
  894.  
  895.      RE_Value_Long_Long_Integer      => System_Val_LLI,
  896.  
  897.      RE_Value_Long_Long_Unsigned     => System_Val_LLU,
  898.  
  899.      RE_Value_Real                   => System_Val_Real,
  900.  
  901.      RE_Value_Unsigned               => System_Val_Uns,
  902.  
  903.      RE_Value_Wide_Character         => System_Val_WChar,
  904.  
  905.      RE_Version_String               => System_Version_Control,
  906.      RE_Get_Version_String           => System_Version_Control,
  907.  
  908.      RE_String_To_Wide_String        => System_WCh_StW,
  909.  
  910.      RE_Wide_String_To_String        => System_WCh_WtS,
  911.  
  912.      RE_Wide_Width_Character         => System_WWd_Char,
  913.  
  914.      RE_Wide_Width_Enumeration       => System_WWd_Enum,
  915.  
  916.      RE_Wide_Width_Wide_Character    => System_WWd_Wchar,
  917.  
  918.      RE_Width_Boolean                => System_Wid_Bool,
  919.  
  920.      RE_Width_Character              => System_Wid_Char,
  921.  
  922.      RE_Width_Enumeration            => System_Wid_Enum,
  923.  
  924.      RE_Width_Long_Long_Integer      => System_Wid_LLI,
  925.  
  926.      RE_Width_Long_Long_Unsigned     => System_Wid_LLU,
  927.  
  928.      RE_Width_Wide_Character         => System_Wid_WChar,
  929.  
  930.      RE_Delay_Block                       => System_Task_Timer,
  931.  
  932.      RE_Abort_Tasks                       => System_Tasking_Abortion,
  933.  
  934.      RE_Service_Record                    => System_Tasking_Library,
  935.      RE_Service_Cancelled_Call            => System_Tasking_Library,
  936.  
  937.      RE_Initialize_Protection             => System_Tasking_Protected_Objects,
  938.      RE_Finalize_Protection               => System_Tasking_Protected_Objects,
  939.      RE_Lock                              => System_Tasking_Protected_Objects,
  940.      RE_Lock_Read_Only                    => System_Tasking_Protected_Objects,
  941.      RE_Unlock                            => System_Tasking_Protected_Objects,
  942.      RE_Protected_Entry_Call              => System_Tasking_Protected_Objects,
  943.      RE_Service_Entries                   => System_Tasking_Protected_Objects,
  944.      RE_Cancel_Protected_Entry_Call       => System_Tasking_Protected_Objects,
  945.      RE_Enqueued                          => System_Tasking_Protected_Objects,
  946.      RE_Cancelled                         => System_Tasking_Protected_Objects,
  947.      RE_Complete_Entry_Body               => System_Tasking_Protected_Objects,
  948.      RE_Exceptional_Complete_Entry_Body   => System_Tasking_Protected_Objects,
  949.      RE_Requeue_Protected_Entry           => System_Tasking_Protected_Objects,
  950.      RE_Requeue_Task_To_Protected_Entry   => System_Tasking_Protected_Objects,
  951.      RE_Protected_Count                   => System_Tasking_Protected_Objects,
  952.  
  953.      RE_Accept_Call                       => System_Tasking_Rendezvous,
  954.      RE_Accept_Trivial                    => System_Tasking_Rendezvous,
  955.      RE_Callable                          => System_Tasking_Rendezvous,
  956.      RE_Call_Simple                       => System_Tasking_Rendezvous,
  957.      RE_Cancel_Task_Entry_Call            => System_Tasking_Rendezvous,
  958.      RE_Requeue_Task_Entry                => System_Tasking_Rendezvous,
  959.      RE_Requeue_Protected_To_Task_Entry   => System_Tasking_Rendezvous,
  960.      RE_Complete_Rendezvous               => System_Tasking_Rendezvous,
  961.      RE_Task_Count                        => System_Tasking_Rendezvous,
  962.      RE_Exceptional_Complete_Rendezvous   => System_Tasking_Rendezvous,
  963.      RE_Selective_Wait                    => System_Tasking_Rendezvous,
  964.      RE_Task_Entry_Call                   => System_Tasking_Rendezvous,
  965.  
  966.      RE_Activate_Tasks                    => System_Tasking_Stages,
  967.      RE_Complete_Activation               => System_Tasking_Stages,
  968.      RE_Create_Task                       => System_Tasking_Stages,
  969.      RE_Current_Master                    => System_Tasking_Stages,
  970.      RE_Complete_Master                   => System_Tasking_Stages,
  971.      RE_Complete_Task                     => System_Tasking_Stages,
  972.      RE_Enter_Master                      => System_Tasking_Stages,
  973.      RE_Expunge_Unactivated_Tasks         => System_Tasking_Stages,
  974.      RE_Terminated                        => System_Tasking_Stages,
  975.  
  976.      RE_Bind_Signal_To_Entry              => System_Signals);
  977.  
  978.  
  979.    -----------------
  980.    -- Subprograms --
  981.    -----------------
  982.  
  983.    procedure Initialize;
  984.    --  Procedure to initialize data structures used by RTE. Called at the
  985.    --  start of processing a new main source file. Must be called after
  986.    --  Initialize_Snames (since names it enters into name table must come
  987.    --  after names entered by Snames).
  988.  
  989.    function RTE (E : RE_Id) return Entity_Id;
  990.    --  Given the entity defined in the above tables, as identified by the
  991.    --  corresponding value in the RE_Id enumeration type, returns the Id
  992.    --  of the corresponding entity, first loading in (parsing, analyzing and
  993.    --  expanding) its spec if the unit has not already been loaded. If the
  994.    --  unit cannot be found, or if it does not contain the specified entity,
  995.    --  then an appropriate error message is output ("Runtime Configuration
  996.    --  Error") and an Unrecoverable_Error exception is raised.
  997.  
  998.    procedure Text_IO_Kludge (Nam : Node_Id);
  999.    --  In Ada 83, and hence for compatibility in Ada 9X, package Text_IO has
  1000.    --  generic subpackages (e.g. Integer_IO). They really should be child
  1001.    --  packages, and in GNAT, they *are* child packages. To maintina the
  1002.    --  required compatibility, this routine is called for package renamings
  1003.    --  and generic instantiations, with the simple name of the referenced
  1004.    --  package. If Text_IO has been with'ed and if the simple name of Nam
  1005.    --  matches one of the subpackages of Text_IO, then this subpackage is
  1006.    --  with'ed automatically. The important result of this approach is that
  1007.    --  Text_IO does not drag in all the code for the subpackages unless they
  1008.    --  are used. Our test is a little crude, and could drag in stuff when it
  1009.    --  is not necessary, but that doesn't matter. Wide_Text_IO is handled in
  1010.    --  a similar manner.
  1011.  
  1012. end Rtsfind;
  1013.