pragma Warnings (Off);
package System.Storage_Elements is
pragma Pure (Storage_Elements);
type Storage_Offset is range
-(2 ** (Standard."-" (Standard'Address_Size, 1))) ..
+(2 ** (Standard."-" (Standard'Address_Size, 1))) - 1;
subtype Storage_Count is Storage_Offset range 0 .. Storage_Offset'Last;
type Storage_Element is mod 2 ** Storage_Unit;
for Storage_Element'Size use Storage_Unit;
type Storage_Array is
array (Storage_Offset range <>) of aliased Storage_Element;
for Storage_Array'Component_Size use Storage_Unit;
function "+" (Left : Address; Right : Storage_Offset) return Address;
pragma Convention (Intrinsic, "+");
pragma Inline ("+");
pragma Inline_Always ("+");
function "+" (Left : Storage_Offset; Right : Address) return Address;
pragma Convention (Intrinsic, "+");
pragma Inline ("+");
pragma Inline_Always ("+");
function "-" (Left : Address; Right : Storage_Offset) return Address;
pragma Convention (Intrinsic, "-");
pragma Inline ("-");
pragma Inline_Always ("-");
function "-" (Left, Right : Address) return Storage_Offset;
pragma Convention (Intrinsic, "-");
pragma Inline ("-");
pragma Inline_Always ("-");
function "mod"
(Left : Address;
Right : Storage_Offset)
return Storage_Offset;
pragma Convention (Intrinsic, "mod");
pragma Inline ("mod");
pragma Inline_Always ("mod");
type Integer_Address is mod Memory_Size;
function To_Address (Value : Integer_Address) return Address;
pragma Convention (Intrinsic, To_Address);
pragma Inline (To_Address);
pragma Inline_Always (To_Address);
function To_Integer (Value : Address) return Integer_Address;
pragma Convention (Intrinsic, To_Integer);
pragma Inline (To_Integer);
pragma Inline_Always (To_Integer);
end System.Storage_Elements;