--------------------------------
-- Ivan Levashew aka OCTAGRAM --
--              Barnaul, 2009 --
--------------------------------

with Interfaces; use Interfaces;

with Turbo_Private.Bits; use Turbo_Private.Bits;

package Turbo_Private.Common is
   pragma Preelaborate;

   ---------------------------------------------------
   -- Natural_ and Positive_ types for Interfaces.* --
   ---------------------------------------------------

   subtype Natural_8     is Integer_8    range 0 .. Integer_8'Last;
   subtype Natural_16    is Integer_16   range 0 .. Integer_16'Last;
   subtype Natural_32    is Integer_32   range 0 .. Integer_32'Last;
   subtype Natural_64    is Integer_64   range 0 .. Integer_64'Last;
   subtype Natural_Addr  is Integer_Addr range 0 .. Integer_Addr'Last;

   subtype Positive_8    is Integer_8    range 1 .. Integer_8'Last;
   subtype Positive_16   is Integer_16   range 1 .. Integer_16'Last;
   subtype Positive_32   is Integer_32   range 1 .. Integer_32'Last;
   subtype Positive_64   is Integer_64   range 1 .. Integer_64'Last;
   subtype Positive_Addr is Integer_Addr range 1 .. Integer_Addr'Last;

end Turbo_Private.Common;
