raw
zfp_genesis             1 ------------------------------------------------------------------------------
zfp_genesis 2 ------------------------------------------------------------------------------
zfp_genesis 3 -- You do not have, nor can you ever acquire the right to use, copy or --
zfp_genesis 4 -- distribute this software ; Should you use this software for any purpose, --
zfp_genesis 5 -- or copy and distribute it to anyone or in any manner, you are breaking --
zfp_genesis 6 -- the laws of whatever soi-disant jurisdiction, and you promise to --
zfp_genesis 7 -- continue doing so for the indefinite future. In any case, please --
zfp_genesis 8 -- always : read and understand any software ; verify any PGP signatures --
zfp_genesis 9 -- that you use - for any purpose. --
zfp_genesis 10 -- --
zfp_genesis 11 -- See also http://trilema.com/2015/a-new-software-licensing-paradigm . --
zfp_genesis 12 ------------------------------------------------------------------------------
zfp_genesis 13 ------------------------------------------------------------------------------
zfp_genesis 14
zfp_genesis 15 package System is
zfp_genesis 16 pragma Pure;
zfp_genesis 17 -- Note that we take advantage of the implementation permission to make
zfp_genesis 18 -- this unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada
zfp_genesis 19 -- 2005, this is Pure in any case (AI-362).
zfp_genesis 20
zfp_genesis 21 pragma No_Elaboration_Code_All;
zfp_genesis 22 -- Allow the use of that restriction in units that WITH this unit
zfp_genesis 23
zfp_genesis 24 type Name is (SYSTEM_NAME_GNAT);
zfp_genesis 25 System_Name : constant Name := SYSTEM_NAME_GNAT;
zfp_genesis 26
zfp_genesis 27 -- System-Dependent Named Numbers
zfp_genesis 28
zfp_genesis 29 Min_Int : constant := Long_Long_Integer'First;
zfp_genesis 30 Max_Int : constant := Long_Long_Integer'Last;
zfp_genesis 31
zfp_genesis 32 Max_Binary_Modulus : constant := 2 ** Long_Long_Integer'Size;
zfp_genesis 33 Max_Nonbinary_Modulus : constant := 2 ** Integer'Size - 1;
zfp_genesis 34
zfp_genesis 35 Max_Base_Digits : constant := Long_Long_Float'Digits;
zfp_genesis 36 Max_Digits : constant := Long_Long_Float'Digits;
zfp_genesis 37
zfp_genesis 38 Max_Mantissa : constant := 63;
zfp_genesis 39 Fine_Delta : constant := 2.0 ** (-Max_Mantissa);
zfp_genesis 40
zfp_genesis 41 Tick : constant := 0.000_001;
zfp_genesis 42
zfp_genesis 43 -- Storage-related Declarations
zfp_genesis 44
zfp_genesis 45 type Address is private;
zfp_genesis 46 pragma Preelaborable_Initialization (Address);
zfp_genesis 47 Null_Address : constant Address;
zfp_genesis 48
zfp_genesis 49 Storage_Unit : constant := 8;
zfp_genesis 50 Word_Size : constant := Standard'Word_Size;
zfp_genesis 51 Memory_Size : constant := 2 ** Word_Size;
zfp_genesis 52
zfp_genesis 53 -- Address comparison
zfp_genesis 54
zfp_genesis 55 function "<" (Left, Right : Address) return Boolean;
zfp_genesis 56 function "<=" (Left, Right : Address) return Boolean;
zfp_genesis 57 function ">" (Left, Right : Address) return Boolean;
zfp_genesis 58 function ">=" (Left, Right : Address) return Boolean;
zfp_genesis 59 function "=" (Left, Right : Address) return Boolean;
zfp_genesis 60
zfp_genesis 61 pragma Import (Intrinsic, "<");
zfp_genesis 62 pragma Import (Intrinsic, "<=");
zfp_genesis 63 pragma Import (Intrinsic, ">");
zfp_genesis 64 pragma Import (Intrinsic, ">=");
zfp_genesis 65 pragma Import (Intrinsic, "=");
zfp_genesis 66
zfp_genesis 67 -- Other System-Dependent Declarations
zfp_genesis 68
zfp_genesis 69 type Bit_Order is (High_Order_First, Low_Order_First);
zfp_genesis 70 Default_Bit_Order : constant Bit_Order := Low_Order_First;
zfp_genesis 71 pragma Warnings (Off, Default_Bit_Order); -- kill constant condition warning
zfp_genesis 72
zfp_genesis 73 -- Priority-related Declarations (RM D.1)
zfp_genesis 74
zfp_genesis 75 -- 0 .. 98 corresponds to the system priority range 1 .. 99.
zfp_genesis 76 --
zfp_genesis 77 -- If the scheduling policy is SCHED_FIFO or SCHED_RR the runtime makes use
zfp_genesis 78 -- of the entire range provided by the system.
zfp_genesis 79 --
zfp_genesis 80 -- If the scheduling policy is SCHED_OTHER the only valid system priority
zfp_genesis 81 -- is 1 and other values are simply ignored.
zfp_genesis 82
zfp_genesis 83 Max_Priority : constant Positive := 97;
zfp_genesis 84 Max_Interrupt_Priority : constant Positive := 98;
zfp_genesis 85
zfp_genesis 86 subtype Any_Priority is Integer range 0 .. 98;
zfp_genesis 87 subtype Priority is Any_Priority range 0 .. 97;
zfp_genesis 88 subtype Interrupt_Priority is Any_Priority range 98 .. 98;
zfp_genesis 89
zfp_genesis 90 Default_Priority : constant Priority := 48;
zfp_genesis 91
zfp_genesis 92 private
zfp_genesis 93
zfp_genesis 94 type Address is mod Memory_Size;
zfp_genesis 95 Null_Address : constant Address := 0;
zfp_genesis 96
zfp_genesis 97 --------------------------------------
zfp_genesis 98 -- System Implementation Parameters --
zfp_genesis 99 --------------------------------------
zfp_genesis 100
zfp_genesis 101 -- These parameters provide information about the target that is used
zfp_genesis 102 -- by the compiler. They are in the private part of System, where they
zfp_genesis 103 -- can be accessed using the special circuitry in the Targparm unit
zfp_genesis 104 -- whose source should be consulted for more detailed descriptions
zfp_genesis 105 -- of the individual switch values.
zfp_genesis 106
zfp_genesis 107 Backend_Divide_Checks : constant Boolean := False;
zfp_genesis 108 Backend_Overflow_Checks : constant Boolean := True;
zfp_genesis 109 Command_Line_Args : constant Boolean := False;
zfp_genesis 110 Configurable_Run_Time : constant Boolean := True;
zfp_genesis 111 Denorm : constant Boolean := True;
zfp_genesis 112 Duration_32_Bits : constant Boolean := False;
zfp_genesis 113 Exit_Status_Supported : constant Boolean := True;
zfp_genesis 114 Fractional_Fixed_Ops : constant Boolean := False;
zfp_genesis 115 Frontend_Layout : constant Boolean := False;
zfp_genesis 116 Machine_Overflows : constant Boolean := False;
zfp_genesis 117 Machine_Rounds : constant Boolean := True;
zfp_genesis 118 Preallocated_Stacks : constant Boolean := False;
zfp_genesis 119 Signed_Zeros : constant Boolean := True;
zfp_genesis 120 Stack_Check_Default : constant Boolean := False;
zfp_genesis 121 Stack_Check_Probes : constant Boolean := True;
zfp_genesis 122 Stack_Check_Limits : constant Boolean := False;
zfp_genesis 123 Support_Aggregates : constant Boolean := True;
zfp_genesis 124 Support_Atomic_Primitives : constant Boolean := True;
zfp_genesis 125 Support_Composite_Assign : constant Boolean := True;
zfp_genesis 126 Support_Composite_Compare : constant Boolean := True;
zfp_genesis 127 Support_Long_Shifts : constant Boolean := True;
zfp_genesis 128 Always_Compatible_Rep : constant Boolean := False;
zfp_genesis 129 Suppress_Standard_Library : constant Boolean := True;
zfp_genesis 130 Use_Ada_Main_Program_Name : constant Boolean := False;
zfp_genesis 131 Frontend_Exceptions : constant Boolean := False;
zfp_genesis 132 ZCX_By_Default : constant Boolean := True;
zfp_genesis 133 Run_Time_Name : constant String := "FFA Run Time";
zfp_genesis 134
zfp_genesis 135 end System;