home *** CD-ROM | disk | FTP | other *** search
- -- This is the Data General MV series computers function
- -- to get CPU time in seconds of type DURATION .
-
- with SYS_CALLS ; use SYS_CALLS ;
- function CPU_TIME_CLOCK return DURATION is
- type MEMORY_DESCRIPTOR is
- record
- UNSHARED_PAGES_IN_PROGRAM_FILE : INTEGER ;
- UNSHARED_PAGES_BEING_USED : INTEGER ;
- SHARED_PAGES_IN_PROGRAM_FILE : INTEGER ;
- FIRST_SHARED_MEMORY_PAGE : INTEGER ;
- STARTING_PAGE : INTEGER ;
- PROGRAMS_FIRST_SHARED_MEMORY_PAGE : INTEGER ;
- end record ;
- type MEMORY_DESCRIPTORS is array ( 1 .. 7 ) of MEMORY_DESCRIPTOR ;
- type PROCESS_STATISTICS is
- record
- FATHER_PID : SHORT_INTEGER ;
- SONS1 : SHORT_INTEGER ;
- SONS2 : SHORT_INTEGER ;
- SONS3 : SHORT_INTEGER ;
- SONS4 : SHORT_INTEGER ;
- SONS5 : SHORT_INTEGER ;
- SONS6 : SHORT_INTEGER ;
- SONS7 : SHORT_INTEGER ;
- SONS8 : SHORT_INTEGER ;
- SONS9 : SHORT_INTEGER ;
- SONS10 : SHORT_INTEGER ;
- SONS11 : SHORT_INTEGER ;
- SONS12 : SHORT_INTEGER ;
- SONS13 : SHORT_INTEGER ;
- SONS14 : SHORT_INTEGER ;
- SONS15 : SHORT_INTEGER ;
- SONS16 : SHORT_INTEGER ;
- TASKS_BLOCKED_ON_IREC : SHORT_INTEGER ;
- TASKS_BLOCKED_AWAITING_STACKS : SHORT_INTEGER ;
- PROCESS_STATUS_WORD : SHORT_INTEGER ;
- PRIORITY_QUEUE_FACTOR : SHORT_INTEGER ;
- FLAG_WORD1 : SHORT_INTEGER ;
- FLAG_WORD2 : SHORT_INTEGER ;
- FLAG_WORD3 : SHORT_INTEGER ;
- FLAG_WORD4 : SHORT_INTEGER ;
- RESERVED : SHORT_INTEGER ;
- PRIORITY : SHORT_INTEGER ;
- WORKING_SET_SIZE : SHORT_INTEGER ;
- PRIVILEGE_BITS : SHORT_INTEGER ;
- TIME_SLICE_EXPONENT : SHORT_INTEGER ;
- PROCESS_ID : SHORT_INTEGER ;
- ELAPSED_TIME : INTEGER ;
- CPU_TIME : INTEGER ;
- IO_USAGE : INTEGER ;
- PAGE_SECONDS : INTEGER ;
- REMAINING_SUBSLICES : SHORT_INTEGER ;
- MAX_LOGICAL_PAGES : SHORT_INTEGER ;
- MAX_WORKING_SET_SIZE : SHORT_INTEGER ;
- MIN_WORKING_SET_SIZE : SHORT_INTEGER ;
- PAGE_FAULT_COUNT : SHORT_INTEGER ;
- MEMORY : MEMORY_DESCRIPTORS ;
- BLOCKS_READ_OR_WRITTEN : INTEGER ;
- FAULTS_NOT_REQUIRING_DISK : INTEGER ;
- end record ;
- PROCESS_INFO : PROCESS_STATISTICS ;
- ACC0 : INTEGER := - 1 ;
- ACCUM1 : INTEGER := 0 ;
- ERROR_INFO : ERROR_CODE ;
- PT_PSTAT : INTEGER ;
- begin
- PT_PSTAT := INTEGER ( PROCESS_INFO'ADDRESS ) ;
-
- -- This is the call to obtain process statistics
-
- SYS ( PSTAT , ACC0 , ACCUM1 , PT_PSTAT , ERROR_INFO ) ;
- return DURATION ( FLOAT( PROCESS_INFO.CPU_TIME ) / 1000.0) ;
- end CPU_TIME_CLOCK ;
-