home *** CD-ROM | disk | FTP | other *** search
/ Programmer's ROM - The Computer Language Library / programmersrom.iso / ada / piwg / a000012.ada < prev    next >
Encoding:
Text File  |  1988-05-03  |  842 b   |  28 lines

  1.  
  2. -- This is a VAX Ada function to get CPU time in seconds of type DURATION
  3.  
  4. with SYSTEM ; use SYSTEM ;
  5. with CONDITION_HANDLING ; use CONDITION_HANDLING ;
  6. with STARLET ; use STARLET ;
  7.  
  8. function CPU_TIME_CLOCK return DURATION is
  9.  
  10.   CPUTIM : INTEGER ;
  11.   pragma VOLATILE ( CPUTIM ) ;
  12.   JPI_STATUS : COND_VALUE_TYPE ;
  13.   JPI_ITEM_LIST : constant ITEM_LIST_TYPE :=
  14.                   ( ( 4 , JPI_CPUTIM , CPUTIM'ADDRESS , ADDRESS_ZERO ) ,
  15.                     ( 0 , 0 , ADDRESS_ZERO , ADDRESS_ZERO ) ) ;
  16.  
  17.   CPU_TIME_AS_DURATION : DURATION ;
  18. begin
  19.  
  20. -- Call GETJPI to set CPUTIM to total accumulated CPU time 
  21. -- (in 10-millisecond tics)
  22.  
  23.   GETJPI ( STATUS => JPI_STATUS , ITMLST => JPI_ITEM_LIST ) ;
  24.   CPU_TIME_AS_DURATION := DURATION ( LONG_FLOAT ( CPUTIM ) / 100.0 ) ;
  25.   return CPU_TIME_AS_DURATION ;
  26.  
  27. end CPU_TIME_CLOCK ;
  28.