home *** CD-ROM | disk | FTP | other *** search
/ Solo Programadores 22 / SOLO_22.iso / packages / win32ada / data.z / WIN32-LARGEINT.ADB < prev    next >
Encoding:
Text File  |  1995-12-14  |  2.6 KB  |  91 lines

  1. -- $Source: /home/harp/1/proto/monoBANK/winnt/win32-largeint.adb,v $ 
  2. -- $Revision: 1.6 $ $Date: 95/11/29 11:01:30 $ $Author: mg $ 
  3. -------------------------------------------------------------------------------
  4. --
  5. -- THIS FILE AND ANY ASSOCIATED DOCUMENTATION IS FURNISHED "AS IS" WITHOUT 
  6. -- WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 
  7. -- TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR 
  8. -- PURPOSE.  The user assumes the entire risk as to the accuracy and the 
  9. -- use of this file.
  10. --
  11. -- Copyright (c) Intermetrics, Inc. 1995
  12. -- Royalty-free, unlimited, worldwide, non-exclusive use, modification, 
  13. -- reproduction and further distribution of this file is permitted.
  14. --
  15. -------------------------------------------------------------------------------
  16.  
  17.  
  18. with Interfaces;
  19.  
  20. package body Win32.Largeint is
  21.      
  22.     use type Interfaces.Integer_64;
  23.  
  24.     function ">"(X, Y: Win32.Winnt.LARGE_INTEGER) return Boolean is
  25.     begin
  26.         return X.QuadPart > Y.QuadPart;
  27.     end;
  28.  
  29.     function ">="(X, Y: Win32.Winnt.LARGE_INTEGER) return Boolean is
  30.     begin
  31.         return X.QuadPart >= Y.QuadPart;
  32.     end;
  33.  
  34.     function "="(X, Y: Win32.Winnt.LARGE_INTEGER) return Boolean is
  35.     begin
  36.         return X.QuadPart = Y.QuadPart;
  37.     end;
  38.  
  39.     function "<"(X, Y: Win32.Winnt.LARGE_INTEGER) return Boolean is
  40.     begin
  41.         return X.QuadPart < Y.QuadPart;
  42.     end;
  43.  
  44.     function "<="(X, Y: Win32.Winnt.LARGE_INTEGER) return Boolean is
  45.     begin
  46.         return X.QuadPart <= Y.QuadPart;
  47.     end;
  48.  
  49.     function GreaterThanZero (X: Win32.Winnt.LARGE_INTEGER) return Boolean is
  50.     begin
  51.         return X.QuadPart > 0;
  52.     end;
  53.  
  54.     function GreaterThanOrEqualToZero (X: Win32.Winnt.LARGE_INTEGER) 
  55.         return Boolean is
  56.     begin
  57.         return X.QuadPart >= 0;
  58.     end;
  59.  
  60.     function EqualToZero (X: Win32.Winnt.LARGE_INTEGER) return Boolean is
  61.     begin
  62.         return X.QuadPart = 0;
  63.     end;
  64.  
  65.     function LessThanZero (X: Win32.Winnt.LARGE_INTEGER) return Boolean is
  66.     begin
  67.         return X.QuadPart < 0;
  68.     end;
  69.  
  70.     function LessThanOrEqualToZero (X: Win32.Winnt.LARGE_INTEGER) 
  71.         return Boolean is
  72.     begin
  73.         return X.QuadPart <= 0;
  74.     end;
  75.  
  76.     function LargeIntegerAnd 
  77.     (Source: in  Win32.Winnt.LARGE_INTEGER;
  78.          Mask  : in  Win32.Winnt.LARGE_INTEGER)
  79.         return Win32.Winnt.LARGE_INTEGER is
  80.  
  81.         Result: Win32.Winnt.LARGE_INTEGER;
  82.         use type Interfaces.Unsigned_64;
  83.     begin
  84.         Result.QuadPart := Win32.LONGLONG(
  85.             Interfaces.Unsigned_64(Source.QuadPart) and
  86.             Interfaces.Unsigned_64(Mask.QuadPart));
  87.     return Result;
  88.     end LargeIntegerAnd;
  89.  
  90. end Win32.Largeint;
  91.