Ada Programming/Libraries/System.Storage_Elements

From Wikibooks, open books for an open world
Jump to navigation Jump to search

Ada. Time-tested, safe and secure.

This language feature is available from Ada 95 on.

System.Storage_Elements is a unit of the Predefined Language Environment since Ada 95.

Specification[edit | edit source]

--                     Standard Ada library specification
--   Copyright (c) 2003-2018 Maxim Reznik <>
--   Copyright (c) 2004-2016 AXE Consultants
--   Copyright (c) 2004, 2005, 2006 Ada-Europe
--   Copyright (c) 2000 The MITRE Corporation, Inc.
--   Copyright (c) 1992, 1993, 1994, 1995 Intermetrics, Inc.
--   SPDX-License-Identifier: BSD-3-Clause and LicenseRef-AdaReferenceManual
-- -------------------------------------------------------------------------

package System.Storage_Elements is
   pragma Pure (System.Storage_Elements);

   type Storage_Offset is
     range implementation_defined .. 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;

   --  Address Arithmetic:

   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;

   --  Conversion to/from integers:

   type Integer_Address is mod implementation_defined;
   function To_Address (Value : Integer_Address) return Address;
   function To_Integer (Value : Address) return Integer_Address;

   pragma Convention (Intrinsic, "+");
   pragma Convention (Intrinsic, "-");
   pragma Convention (Intrinsic, "mod");
   pragma Convention (Intrinsic, "To_Address");
   pragma Convention (Intrinsic, "To_Integer");
   --  and so on for all language-defined subprograms declared in this package.
end System.Storage_Elements;

See also[edit | edit source]

Wikibook[edit | edit source]

External examples[edit source]

Ada Reference Manual[edit | edit source]

Ada 95[edit | edit source]

Ada 2005[edit | edit source]

Ada 2012[edit | edit source]

Open-Source Implementations[edit | edit source]