Home
       clock.c - scc - simple c99 compiler
  HTML git clone git://git.simple-cc.org/scc
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
   DIR README
   DIR LICENSE
       ---
       clock.c (722B)
       ---
            1 #include <time.h>
            2 
            3 #include <sys.h>
            4 
            5 #include "time.h"
            6 
            7 #define TOCLOCK(r) (r.tv_sec * CLOCKS_PER_SEC +\
            8                     r.tv_usec / (1000000 / CLOCKS_PER_SEC))
            9 
           10 struct rusage {
           11         struct timeval ru_utime;
           12         struct timeval ru_stime;
           13         long int ru_maxrss;
           14         long int ru_ixrss;
           15         long int ru_idrss;
           16         long int ru_isrss;
           17         long int ru_minflt;
           18         long int ru_majflt;
           19         long int ru_nswap;
           20         long int ru_inblock;
           21         long int ru_oublock;
           22         long int ru_msgsnd;
           23         long int ru_msgrcv;
           24         long int ru_nsignals;
           25         long int ru_nvcsw;
           26         long int ru_nivcsw;
           27 };
           28 
           29 extern int _getrusage(int, struct rusage*);
           30 
           31 clock_t
           32 clock(void)
           33 {
           34         struct rusage ru;
           35 
           36         if (_getrusage(RUSAGE_SELF, &ru))
           37                 return -1;
           38 
           39         return TOCLOCK(ru.ru_utime) + TOCLOCK(ru.ru_stime);
           40 }