package System.Storage_Elements is pragma Preelaborate(System.Storage_Elements); type Storage_Offset is range implementation-defined; subtype Storage_Count is Storage_Offset range 0..Storage_Offset'Last; type Storage_Element is mod implementation-defined; 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; -AddressArithmetic: function "+"(Left : Address; Right : Storage_Offset) return Address; function "+"(Left : Storage_Offset; Right : Address) return Address; function "-"(Left : Address; Right : Storage_Offset) return Address; function "-"(Left, Right : Address) return Storage_Offset; function "mod"(Left : Address; Right : Storage_Offset) return Storage_Offset; -Conversionto/fromintegers: type Integer_Address is implementation-defined; function To_Address(Value : Integer_Address) return Address; function To_Integer(Value : Address) return Integer_Address; -Peek/Pokefunctionality: generic type Object(<>) is limited private; package Address_To_Access_Conversions is type Object_Pointer is access all Object; function To_Pointer(Value : Address) return Object_Pointer; function To_Address(Value : Object_Pointer) return Address; pragma Convention(Intrinsic, To_Pointer); pragma Convention(Intrinsic, To_Address); end Address_To_Access_Conversions; pragma Convention(Intrinsic, "+"); -andsoonforalllanguage-definedsubprograms -declaredinthispackage. end System.Storage_Elements;
"