diff options
Diffstat (limited to 'gcc/ada/ali.ads')
| -rw-r--r-- | gcc/ada/ali.ads | 57 |
1 files changed, 55 insertions, 2 deletions
diff --git a/gcc/ada/ali.ads b/gcc/ada/ali.ads index f00220f..7d702b7 100644 --- a/gcc/ada/ali.ads +++ b/gcc/ada/ali.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- 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- -- @@ -67,6 +67,9 @@ package ALI is type Interrupt_State_Id is range 6_000_000 .. 6_999_999; -- Id values used for Interrupt_State table entries + type Priority_Specific_Dispatching_Id is range 7_000_000 .. 7_999_999; + -- Id values used for Priority_Specific_Dispatching table entries + -------------------- -- ALI File Table -- -------------------- @@ -196,6 +199,14 @@ package ALI is -- the lower bound of the subtype). -- Not set if 'I' appears in Ignore_Lines + First_Specific_Dispatching : Priority_Specific_Dispatching_Id; + Last_Specific_Dispatching : Priority_Specific_Dispatching_Id'Base; + -- These point to the first and last entries in the priority specific + -- dispatching table for this unit. If there are no entries, then + -- Last_Specific_Dispatching = First_Specific_Dispatching - 1. That + -- is why the 'Base reference is there, it can be one less than the + -- lower bound of the subtype. Not set if 'S' appears in Ignore_Lines. + end record; No_Main_Priority : constant Int := -1; @@ -338,6 +349,14 @@ package ALI is Body_Needed_For_SAL : Boolean; -- Indicates that the source for the body of the unit (subprogram, -- package, or generic unit) must be included in a standalone library. + + Elaborate_Body_Desirable : Boolean; + -- Indicates that the front end elaboration circuitry decided that it + -- would be a good idea if this package had Elaborate_Body. The binder + -- will attempt, but does not promise, to place the elaboration call + -- for the body right after the call for the spec, or at least as close + -- together as possible. + end record; package Units is new Table.Table ( @@ -376,6 +395,40 @@ package ALI is Table_Increment => 200, Table_Name => "Interrupt_States"); + ----------------------------------------- + -- Priority Specific Dispatching Table -- + ----------------------------------------- + + -- An entry is made in this table for each S (priority specific + -- dispatching) line encountered in the input ALI file. The + -- First/Last_Specific_Dispatching_Id fields of the ALI file + -- entry show the range of entries defined within a particular + -- ALI file. + + type Specific_Dispatching_Record is record + Dispatching_Policy : Character; + -- First character (upper case) of the corresponding policy name + + First_Priority : Nat; + -- Lower bound of the priority range to which the specified dispatching + -- policy applies. + + Last_Priority : Nat; + -- Upper bound of the priority range to which the specified dispatching + -- policy applies. + + PSD_Pragma_Line : Nat; + -- Line number of Priority_Specific_Dispatching pragma + end record; + + package Specific_Dispatching is new Table.Table ( + Table_Component_Type => Specific_Dispatching_Record, + Table_Index_Type => Priority_Specific_Dispatching_Id'Base, + Table_Low_Bound => Priority_Specific_Dispatching_Id'First, + Table_Initial => 100, + Table_Increment => 200, + Table_Name => "Priority_Specific_Dispatching"); + -------------- -- Switches -- -------------- @@ -418,7 +471,7 @@ package ALI is -- Set to blank by Initialize_ALI. Set to the appropriate queuing policy -- character if an ali file contains a P line setting the queuing policy. - Cumulative_Restrictions : Restrictions_Info; + Cumulative_Restrictions : Restrictions_Info := No_Restrictions; -- This variable records the cumulative contributions of R lines in all -- ali files, showing whether a restriction pragma exists anywhere, and -- accumulating the aggregate knowledge of violations. |
