11541Srgrimes------------------------------------------------------------------------------ 21541Srgrimes-- -- 31541Srgrimes-- GNAT RUN-TIME COMPONENTS -- 41541Srgrimes-- -- 51541Srgrimes-- S Y S T E M -- 61541Srgrimes-- -- 71541Srgrimes-- S p e c -- 81541Srgrimes-- (GNU/Linux-HPPA Version) -- 91541Srgrimes-- -- 101541Srgrimes-- Copyright (C) 1992-2014, Free Software Foundation, Inc. -- 111541Srgrimes-- -- 121541Srgrimes-- This specification is derived from the Ada Reference Manual for use with -- 131541Srgrimes-- GNAT. The copyright notice above, and the license provisions that follow -- 141541Srgrimes-- apply solely to the contents of the part following the private keyword. -- 151541Srgrimes-- -- 161541Srgrimes-- GNAT is free software; you can redistribute it and/or modify it under -- 171541Srgrimes-- terms of the GNU General Public License as published by the Free Soft- -- 181541Srgrimes-- ware Foundation; either version 3, or (at your option) any later ver- -- 191541Srgrimes-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- 201541Srgrimes-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- 211541Srgrimes-- or FITNESS FOR A PARTICULAR PURPOSE. -- 221541Srgrimes-- -- 231541Srgrimes-- As a special exception under Section 7 of GPL version 3, you are granted -- 241541Srgrimes-- additional permissions described in the GCC Runtime Library Exception, -- 251541Srgrimes-- version 3.1, as published by the Free Software Foundation. -- 261541Srgrimes-- -- 271541Srgrimes-- You should have received a copy of the GNU General Public License and -- 281541Srgrimes-- a copy of the GCC Runtime Library Exception along with this program; -- 291541Srgrimes-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- 301541Srgrimes-- <http://www.gnu.org/licenses/>. -- 311541Srgrimes-- -- 321541Srgrimes-- GNAT was originally developed by the GNAT team at New York University. -- 331541Srgrimes-- Extensive contributions were provided by Ada Core Technologies Inc. -- 3444078Sdfr-- -- 351541Srgrimes------------------------------------------------------------------------------ 361541Srgrimes 371541Srgrimespackage System is 381541Srgrimes pragma Pure; 391541Srgrimes -- Note that we take advantage of the implementation permission to make 401541Srgrimes -- this unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 411541Srgrimes -- 2005, this is Pure in any case (AI-362). 421541Srgrimes 4332350Seivind pragma No_Elaboration_Code_All; 4441793Sluigi -- Allow the use of that restriction in units that WITH this unit 4532350Seivind 461541Srgrimes type Name is (SYSTEM_NAME_GNAT); 4712693Sphk System_Name : constant Name := SYSTEM_NAME_GNAT; 4844078Sdfr 4912693Sphk -- System-Dependent Named Numbers 501541Srgrimes 5112693Sphk Min_Int : constant := Long_Long_Integer'First; 521541Srgrimes Max_Int : constant := Long_Long_Integer'Last; 5318892Sbde 541541Srgrimes Max_Binary_Modulus : constant := 2 ** Long_Long_Integer'Size; 551541Srgrimes Max_Nonbinary_Modulus : constant := 2 ** Integer'Size - 1; 561541Srgrimes 571541Srgrimes Max_Base_Digits : constant := Long_Long_Float'Digits; 581541Srgrimes Max_Digits : constant := Long_Long_Float'Digits; 598426Swollman 601541Srgrimes Max_Mantissa : constant := 63; 611541Srgrimes Fine_Delta : constant := 2.0 ** (-Max_Mantissa); 621541Srgrimes 631541Srgrimes Tick : constant := 0.000_001; 641541Srgrimes 651541Srgrimes -- Storage-related Declarations 661541Srgrimes 671541Srgrimes type Address is private; 6844078Sdfr pragma Preelaborable_Initialization (Address); 6912942Swollman Null_Address : constant Address; 701541Srgrimes 7112693Sphk Storage_Unit : constant := 8; 7212942Swollman Word_Size : constant := 32; 7312942Swollman Memory_Size : constant := 2 ** 32; 7412942Swollman 751541Srgrimes -- Address comparison 7612942Swollman 7712942Swollman function "<" (Left, Right : Address) return Boolean; 7812942Swollman function "<=" (Left, Right : Address) return Boolean; 7912942Swollman function ">" (Left, Right : Address) return Boolean; 8012942Swollman function ">=" (Left, Right : Address) return Boolean; 8112942Swollman function "=" (Left, Right : Address) return Boolean; 8212693Sphk 831541Srgrimes pragma Import (Intrinsic, "<"); 841541Srgrimes pragma Import (Intrinsic, "<="); 8511225Swollman pragma Import (Intrinsic, ">"); 8611225Swollman pragma Import (Intrinsic, ">="); 8711225Swollman pragma Import (Intrinsic, "="); 8811225Swollman 8911225Swollman -- Other System-Dependent Declarations 9011225Swollman 9111225Swollman type Bit_Order is (High_Order_First, Low_Order_First); 9212693Sphk Default_Bit_Order : constant Bit_Order := High_Order_First; 9311225Swollman pragma Warnings (Off, Default_Bit_Order); -- kill constant condition warning 9411225Swollman 951541Srgrimes -- Priority-related Declarations (RM D.1) 9612820Sphk 971541Srgrimes Max_Priority : constant Positive := 30; 9812693Sphk Max_Interrupt_Priority : constant Positive := 31; 9912942Swollman 10012942Swollman subtype Any_Priority is Integer range 0 .. 31; 1013282Swollman subtype Priority is Any_Priority range 0 .. 30; 10212942Swollman subtype Interrupt_Priority is Any_Priority range 31 .. 31; 10312942Swollman 10412942Swollman Default_Priority : constant Priority := 15; 10512942Swollman 10612942Swollmanprivate 10712942Swollman 10812693Sphk type Address is mod Memory_Size; 10912877Sbde Null_Address : constant Address := 0; 11036908Sjulian 11136908Sjulian -------------------------------------- 11212693Sphk -- System Implementation Parameters -- 11312693Sphk -------------------------------------- 11412693Sphk 11512693Sphk -- These parameters provide information about the target that is used 11612693Sphk -- by the compiler. They are in the private part of System, where they 11732350Seivind -- can be accessed using the special circuitry in the Targparm unit 11812693Sphk -- whose source should be consulted for more detailed descriptions 11932350Seivind -- of the individual switch values. 12012693Sphk 1211541Srgrimes Backend_Divide_Checks : constant Boolean := False; 1221541Srgrimes Backend_Overflow_Checks : constant Boolean := True; 1231541Srgrimes Command_Line_Args : constant Boolean := True; 1241541Srgrimes Configurable_Run_Time : constant Boolean := False; 1251541Srgrimes Denorm : constant Boolean := True; 1261541Srgrimes Duration_32_Bits : constant Boolean := False; 1271541Srgrimes Exit_Status_Supported : constant Boolean := True; 1281541Srgrimes Fractional_Fixed_Ops : constant Boolean := False; 1291541Srgrimes Frontend_Layout : constant Boolean := False; 13011225Swollman Machine_Overflows : constant Boolean := False; 13111225Swollman Machine_Rounds : constant Boolean := True; 1321541Srgrimes Preallocated_Stacks : constant Boolean := False; 1331541Srgrimes Signed_Zeros : constant Boolean := True; 13411225Swollman Stack_Check_Default : constant Boolean := False; 1351541Srgrimes Stack_Check_Probes : constant Boolean := True; 13611225Swollman Stack_Check_Limits : constant Boolean := False; 13734961Sphk Support_Aggregates : constant Boolean := True; 13811225Swollman Support_Composite_Assign : constant Boolean := True; 1391541Srgrimes Support_Composite_Compare : constant Boolean := True; 1401541Srgrimes Support_Long_Shifts : constant Boolean := True; 1411541Srgrimes Always_Compatible_Rep : constant Boolean := True; 1421541Srgrimes Suppress_Standard_Library : constant Boolean := False; 1431541Srgrimes Use_Ada_Main_Program_Name : constant Boolean := False; 1441541Srgrimes ZCX_By_Default : constant Boolean := True; 1451541Srgrimes 1465196Swollmanend System; 1471541Srgrimes