| ------------------------------------------------------------------------------ |
| -- -- |
| -- GNAT SYSTEM UTILITIES -- |
| -- -- |
| -- G N A T P S Y S -- |
| -- -- |
| -- B o d y -- |
| -- -- |
| -- $Revision: 1.3 $ -- |
| -- -- |
| -- Copyright (C) 1997 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- -- |
| -- ware Foundation; either version 2, or (at your option) any later ver- -- |
| -- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- |
| -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- |
| -- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -- |
| -- for more details. You should have received a copy of the GNU General -- |
| -- Public License distributed with GNAT; see file COPYING. If not, write -- |
| -- to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, -- |
| -- MA 02111-1307, USA. -- |
| -- -- |
| -- GNAT was originally developed by the GNAT team at New York University. -- |
| -- It is now maintained by Ada Core Technologies Inc (http://www.gnat.com). -- |
| -- -- |
| ------------------------------------------------------------------------------ |
| |
| -- Program to print out listing of System package with all constants |
| -- appearing explicitly. |
| |
| with Ada.Text_IO; |
| with System; use System; |
| with Gnatvsn; |
| |
| procedure GnatPsys is |
| pragma Ident (Gnatvsn.Gnat_Version_String); |
| |
| procedure P (Item : String) renames Ada.Text_IO.Put_Line; |
| |
| begin |
| P ("package System is"); |
| |
| P ("pragma Pure (System);"); |
| |
| P (""); |
| |
| P (" type Name is (SYSTEM_NAME_GNAT);"); |
| |
| P (" System_Name : constant Name := SYSTEM_NAME_GNAT;"); |
| |
| P (""); |
| |
| P (" -- System-Dependent Named Numbers"); |
| |
| P (""); |
| |
| P (" Min_Int : constant := -(2 **" & |
| Long_Long_Integer'Image (Long_Long_Integer'Size - 1) & ");"); |
| |
| P (" Max_Int : constant := 2 **" & |
| Long_Long_Integer'Image (Long_Long_Integer'Size - 1) & " - 1;"); |
| |
| P (""); |
| |
| P (" Max_Binary_Modulus : constant := 2 **" & |
| Long_Long_Integer'Image (Long_Long_Integer'Size) & ";"); |
| |
| P (" Max_Nonbinary_Modulus : constant :=" & |
| Integer'Image (Integer'Last) & ";"); |
| |
| P (""); |
| |
| P (" Max_Base_Digits : constant :=" & |
| Natural'Image (Long_Long_Float'Digits) & ";"); |
| |
| P (" Max_Digits : constant :=" & |
| Natural'Image (Long_Long_Float'Digits) & ";"); |
| |
| P (""); |
| |
| P (" Max_Mantissa : constant := 63;"); |
| |
| P (" Fine_Delta : constant := 2.0 ** (-Max_Mantissa);"); |
| |
| P (""); |
| |
| P (" Tick : constant :=" & |
| Duration'Image (Duration (Standard'Tick)) & ";"); |
| |
| P (""); |
| |
| P (" -- Storage-related Declarations"); |
| |
| P (""); |
| |
| P (" type Address is private;"); |
| |
| P (" Null_Address : constant Address;"); |
| |
| P (""); |
| |
| P (" Storage_Unit : constant :=" & |
| Natural'Image (Standard'Storage_Unit) & ";"); |
| |
| P (" Word_Size : constant :=" & |
| Natural'Image (Standard'Word_Size) & ";"); |
| |
| P (" Memory_Size : constant := 2 **" & |
| Natural'Image (Standard'Address_Size) & ";"); |
| |
| P (""); |
| P (" -- Address comparison"); |
| P (""); |
| P (" function ""<"" (Left, Right : Address) return Boolean;"); |
| P (" function ""<="" (Left, Right : Address) return Boolean;"); |
| P (" function "">"" (Left, Right : Address) return Boolean;"); |
| P (" function "">="" (Left, Right : Address) return Boolean;"); |
| P (" function ""="" (Left, Right : Address) return Boolean;"); |
| P (""); |
| P (" pragma Import (Intrinsic, ""<""); "); |
| P (" pragma Import (Intrinsic, ""<="");"); |
| P (" pragma Import (Intrinsic, "">""); "); |
| P (" pragma Import (Intrinsic, "">="");"); |
| P (" pragma Import (Intrinsic, ""=""); "); |
| P (""); |
| P (" -- Other System-Dependent Declarations"); |
| P (""); |
| P (" type Bit_Order is (High_Order_First, Low_Order_First);"); |
| P (" Default_Bit_Order : constant Bit_Order;"); |
| P (""); |
| P (" -- Priority-related Declarations (RM D.1)"); |
| P (""); |
| P (" subtype Any_Priority is Integer range 0 .." & |
| Natural'Image (Standard'Max_Interrupt_Priority) & ";"); |
| |
| P (""); |
| |
| P (" subtype Priority is Any_Priority range 0 .." & |
| Natural'Image (Standard'Max_Priority) & ";"); |
| |
| P (""); |
| |
| P (" subtype Interrupt_Priority is Any_Priority range" & |
| Natural'Image (Standard'Max_Priority + 1) & " .." & |
| Natural'Image (Standard'Max_Interrupt_Priority) & ";"); |
| |
| P (""); |
| |
| P (" Default_Priority : constant Priority :=" & |
| Natural'Image ((Priority'First + Priority'Last) / 2) & ";"); |
| |
| P (""); |
| |
| P ("private"); |
| |
| P (""); |
| |
| P (" type Address is mod Memory_Size; "); |
| |
| P (" Null_Address : constant Address := 0; "); |
| |
| P (" "); |
| |
| P (" Default_Bit_Order : constant Bit_Order := " & |
| Bit_Order'Image (Bit_Order'Val (Standard'Default_Bit_Order)) & ";"); |
| |
| P (""); |
| |
| P ("end System;"); |
| end GnatPsys; |