home *** CD-ROM | disk | FTP | other *** search
/ Atari FTP / ATARI_FTP_0693.zip / ATARI_FTP_0693 / Mint / mntlib32.zoo / times.c < prev    next >
C/C++ Source or Header  |  1993-02-26  |  889b  |  47 lines

  1. #ifdef __TURBOC__
  2. #include <sys\times.h>
  3. #else
  4. #include <sys/times.h>
  5. #endif
  6. #include <time.h>
  7. #include <mintbind.h>
  8. #include <errno.h>
  9.  
  10. extern int __mint;
  11. extern long _childtime;
  12.  
  13. /* macro to convert milliseconds into CLK_TCKs */
  14. #define CVRT(x) ((x)/((1000L/CLK_TCK)))
  15.  
  16. long
  17. times(buffer)
  18. struct tms *buffer;
  19. {
  20.     long usage[8], r, real_time;
  21.  
  22.     real_time = _clock();
  23.  
  24.     if (__mint) {
  25.         r = Prusage(usage);
  26.         if (r >= 0 && buffer) {
  27.             buffer->tms_cutime = CVRT(usage[3]);
  28.             buffer->tms_cstime = CVRT(usage[2]);
  29.             buffer->tms_utime = CVRT(usage[1]);
  30.             buffer->tms_stime = CVRT(usage[0]);
  31.             return real_time;
  32.         }
  33.         if (!buffer)
  34.             r = -EFAULT;
  35.         errno = (int) -r;
  36.         return -1;
  37.     }
  38.  
  39.     if (buffer) {
  40.         buffer->tms_cstime = (time_t) 0;
  41.         buffer->tms_cutime = (time_t) _childtime;
  42.         buffer->tms_stime = (time_t) 0;
  43.         buffer->tms_utime = (time_t) real_time - _childtime;
  44.     }
  45.     return real_time;
  46. }
  47.