1228690Sdes------------------------------------------------------------------------------ 2228690Sdes-- -- 3348980Sdes-- GNAT RUN-TIME COMPONENTS -- 4228690Sdes-- -- 5228690Sdes-- S Y S T E M -- 6228690Sdes-- -- 7228690Sdes-- S p e c -- 8228690Sdes-- (GNU-Linux/PPC64 Version) -- 9228690Sdes-- -- 10228690Sdes-- Copyright (C) 1992-2011, Free Software Foundation, Inc. -- 11228690Sdes-- -- 12228690Sdes-- This specification is derived from the Ada Reference Manual for use with -- 13228690Sdes-- GNAT. The copyright notice above, and the license provisions that follow -- 14228690Sdes-- apply solely to the contents of the part following the private keyword. -- 15228690Sdes-- -- 16228690Sdes-- GNAT is free software; you can redistribute it and/or modify it under -- 17228690Sdes-- terms of the GNU General Public License as published by the Free Soft- -- 18228690Sdes-- ware Foundation; either version 3, or (at your option) any later ver- -- 19228690Sdes-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- 20228690Sdes-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- 21228690Sdes-- or FITNESS FOR A PARTICULAR PURPOSE. -- 22228690Sdes-- -- 23228690Sdes-- As a special exception under Section 7 of GPL version 3, you are granted -- 24228690Sdes-- additional permissions described in the GCC Runtime Library Exception, -- 25228690Sdes-- version 3.1, as published by the Free Software Foundation. -- 26228690Sdes-- -- 27228690Sdes-- You should have received a copy of the GNU General Public License and -- 28228690Sdes-- a copy of the GCC Runtime Library Exception along with this program; -- 29228690Sdes-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- 30228690Sdes-- <http://www.gnu.org/licenses/>. -- 31228690Sdes-- -- 32228690Sdes-- GNAT was originally developed by the GNAT team at New York University. -- 33228690Sdes-- Extensive contributions were provided by Ada Core Technologies Inc. -- 34228690Sdes-- -- 35348980Sdes------------------------------------------------------------------------------ 36228690Sdes 37228690Sdespackage System is 38228690Sdes pragma Pure; 39228690Sdes -- Note that we take advantage of the implementation permission to make 40228690Sdes -- this unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 41228690Sdes -- 2005, this is Pure in any case (AI-362). 42228690Sdes 43228690Sdes pragma No_Elaboration_Code_All; 44228690Sdes -- Allow the use of that restriction in units that WITH this unit 45228690Sdes 46228690Sdes type Name is (SYSTEM_NAME_GNAT); 47348980Sdes System_Name : constant Name := SYSTEM_NAME_GNAT; 48348980Sdes 49348980Sdes -- System-Dependent Named Numbers 50348980Sdes 51348980Sdes Min_Int : constant := Long_Long_Integer'First; 52348980Sdes Max_Int : constant := Long_Long_Integer'Last; 53348980Sdes 54348980Sdes Max_Binary_Modulus : constant := 2 ** Long_Long_Integer'Size; 55348980Sdes Max_Nonbinary_Modulus : constant := 2 ** Integer'Size - 1; 56348980Sdes 57348980Sdes Max_Base_Digits : constant := Long_Long_Float'Digits; 58348980Sdes Max_Digits : constant := Long_Long_Float'Digits; 59348980Sdes 60348980Sdes Max_Mantissa : constant := 63; 61348980Sdes Fine_Delta : constant := 2.0 ** (-Max_Mantissa); 62348980Sdes 63348980Sdes Tick : constant := 0.000_001; 64348980Sdes 65348980Sdes -- Storage-related Declarations 66348980Sdes 67348980Sdes type Address is private; 68348980Sdes pragma Preelaborable_Initialization (Address); 69348980Sdes Null_Address : constant Address; 70348980Sdes 71348980Sdes Storage_Unit : constant := 8; 72348980Sdes Word_Size : constant := 64; 73348980Sdes Memory_Size : constant := 2 ** 64; 74348980Sdes 75348980Sdes -- Address comparison 76348980Sdes 77348980Sdes function "<" (Left, Right : Address) return Boolean; 78348980Sdes function "<=" (Left, Right : Address) return Boolean; 79348980Sdes function ">" (Left, Right : Address) return Boolean; 80348980Sdes function ">=" (Left, Right : Address) return Boolean; 81228690Sdes function "=" (Left, Right : Address) return Boolean; 82228690Sdes 83348980Sdes pragma Import (Intrinsic, "<"); 84348980Sdes pragma Import (Intrinsic, "<="); 85348980Sdes pragma Import (Intrinsic, ">"); 86348980Sdes pragma Import (Intrinsic, ">="); 87348980Sdes pragma Import (Intrinsic, "="); 88348980Sdes 89348980Sdes -- Other System-Dependent Declarations 90348980Sdes 91348980Sdes type Bit_Order is (High_Order_First, Low_Order_First); 92348980Sdes Default_Bit_Order : constant Bit_Order := High_Order_First; 93348980Sdes pragma Warnings (Off, Default_Bit_Order); -- kill constant condition warning 94348980Sdes 95348980Sdes -- Priority-related Declarations (RM D.1) 96348980Sdes 97348980Sdes -- 0 .. 98 corresponds to the system priority range 1 .. 99. 98348980Sdes -- 99348980Sdes -- If the scheduling policy is SCHED_FIFO or SCHED_RR the runtime makes use 100348980Sdes -- of the entire range provided by the system. 101348980Sdes -- 102348980Sdes -- If the scheduling policy is SCHED_OTHER the only valid system priority 103348980Sdes -- is 1 and other values are simply ignored. 104348980Sdes 105348980Sdes Max_Priority : constant Positive := 97; 106348980Sdes Max_Interrupt_Priority : constant Positive := 98; 107348980Sdes 108348980Sdes subtype Any_Priority is Integer range 0 .. 98; 109348980Sdes subtype Priority is Any_Priority range 0 .. 97; 110348980Sdes subtype Interrupt_Priority is Any_Priority range 98 .. 98; 111348980Sdes 112348980Sdes Default_Priority : constant Priority := 48; 113348980Sdes 114348980Sdesprivate 115348980Sdes 116348980Sdes type Address is mod Memory_Size; 117348980Sdes Null_Address : constant Address := 0; 118348980Sdes 119348980Sdes -------------------------------------- 120228690Sdes -- System Implementation Parameters -- 121348980Sdes -------------------------------------- 122348980Sdes 123348980Sdes -- These parameters provide information about the target that is used 124348980Sdes -- by the compiler. They are in the private part of System, where they 125348980Sdes -- can be accessed using the special circuitry in the Targparm unit 126348980Sdes -- whose source should be consulted for more detailed descriptions 127348980Sdes -- of the individual switch values. 128348980Sdes 129348980Sdes Backend_Divide_Checks : constant Boolean := False; 130348980Sdes Backend_Overflow_Checks : constant Boolean := False; 131348980Sdes Command_Line_Args : constant Boolean := True; 132348980Sdes Configurable_Run_Time : constant Boolean := False; 133348980Sdes Denorm : constant Boolean := True; 134228690Sdes Duration_32_Bits : constant Boolean := False; 135228690Sdes Exit_Status_Supported : constant Boolean := True; 136228690Sdes Fractional_Fixed_Ops : constant Boolean := False; 137348980Sdes Frontend_Layout : constant Boolean := False; 138348980Sdes Machine_Overflows : constant Boolean := False; 139348980Sdes Machine_Rounds : constant Boolean := True; 140348980Sdes Preallocated_Stacks : constant Boolean := False; 141228690Sdes Signed_Zeros : constant Boolean := True; 142228690Sdes Stack_Check_Default : constant Boolean := False; 143228690Sdes Stack_Check_Probes : constant Boolean := True; 144348980Sdes Stack_Check_Limits : constant Boolean := False; 145348980Sdes Support_64_Bit_Divides : constant Boolean := True; 146348980Sdes Support_Aggregates : constant Boolean := True; 147348980Sdes Support_Composite_Assign : constant Boolean := True; 148348980Sdes Support_Composite_Compare : constant Boolean := True; 149228690Sdes Support_Long_Shifts : constant Boolean := True; 150228690Sdes Always_Compatible_Rep : constant Boolean := False; 151228690Sdes Suppress_Standard_Library : constant Boolean := False; 152348980Sdes Use_Ada_Main_Program_Name : constant Boolean := False; 153348980Sdes ZCX_By_Default : constant Boolean := True; 154348980Sdes 155348980Sdesend System; 156348980Sdes