Reorganisation of the source tree
[ghc-hetmet.git] / ghc / rts / posix / GetTime.c
diff --git a/ghc/rts/posix/GetTime.c b/ghc/rts/posix/GetTime.c
deleted file mode 100644 (file)
index 3a0764c..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-/* -----------------------------------------------------------------------------
- *
- * (c) The GHC Team 2005
- *
- * Machine-dependent time measurement functions
- *
- * ---------------------------------------------------------------------------*/
-
-// Not POSIX, due to use of ru_majflt in getPageFaults()
-// #include "PosixSource.h"
-
-#include "Rts.h"
-#include "GetTime.h"
-
-#ifdef HAVE_TIME_H
-# include <time.h>
-#endif
-
-#ifdef HAVE_SYS_TIME_H
-# include <sys/time.h>
-#endif
-
-#if HAVE_SYS_RESOURCE_H
-# include <sys/resource.h>
-#endif
-
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#ifdef HAVE_SYS_TIMES_H
-# include <sys/times.h>
-#endif
-
-#if ! ((defined(HAVE_GETRUSAGE) && !irix_HOST_OS) || defined(HAVE_TIMES))
-#error No implementation for getProcessCPUTime() available.
-#endif
-
-#if defined(HAVE_GETTIMEOFDAY) && defined(HAVE_GETRUSAGE) && !irix_HOST_OS
-// we'll implement getProcessCPUTime() and getProcessElapsedTime()
-// separately, using getrusage() and gettimeofday() respectively
-
-Ticks getProcessCPUTime(void)
-{
-    struct rusage t;
-    getrusage(RUSAGE_SELF, &t);
-    return (t.ru_utime.tv_sec * TICKS_PER_SECOND + 
-           ((Ticks)t.ru_utime.tv_usec * TICKS_PER_SECOND)/1000000);
-}
-
-Ticks getProcessElapsedTime(void)
-{
-    struct timeval tv;
-    gettimeofday(&tv, (struct timezone *) NULL);
-    return (tv.tv_sec * TICKS_PER_SECOND +
-           ((Ticks)tv.tv_usec * TICKS_PER_SECOND)/1000000);
-}
-
-void getProcessTimes(Ticks *user, Ticks *elapsed)
-{
-    *user    = getProcessCPUTime();
-    *elapsed = getProcessElapsedTime();
-}
-
-#elif defined(HAVE_TIMES)
-
-// we'll use the old times() API.
-
-Ticks getProcessCPUTime(void)
-{
-    Ticks user, elapsed;
-    getProcessTimes(&user,&elapsed);
-    return user;
-}
-
-Ticks getProcessElapsedTime(void)
-{
-    Ticks user, elapsed;
-    getProcessTimes(&user,&elapsed);
-    return elapsed;
-}
-
-void getProcessTimes(Ticks *user, Ticks *elapsed)
-{
-    static nat ClockFreq = 0;
-
-    if (ClockFreq == 0) {
-#if defined(HAVE_SYSCONF)
-       long ticks;
-       ticks = sysconf(_SC_CLK_TCK);
-       if ( ticks == -1 ) {
-           errorBelch("sysconf\n");
-           stg_exit(EXIT_FAILURE);
-       }
-       ClockFreq = ticks;
-#elif defined(CLK_TCK)         /* defined by POSIX */
-       ClockFreq = CLK_TCK;
-#elif defined(HZ)
-       ClockFreq = HZ;
-#elif defined(CLOCKS_PER_SEC)
-       ClockFreq = CLOCKS_PER_SEC;
-#else
-       errorBelch("can't get clock resolution");
-       stg_exit(EXIT_FAILURE);
-#endif
-    }
-
-    struct tms t;
-    clock_t r = times(&t);
-    *user = (((Ticks)t.tms_utime * TICKS_PER_SECOND) / ClockFreq);
-    *elapsed = (((Ticks)r * TICKS_PER_SECOND) / ClockFreq);
-}
-
-#endif // HAVE_TIMES
-
-Ticks getThreadCPUTime(void)
-{
-#if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_THREAD_CPUTIME_ID)
-    // clock_gettime() gives us per-thread CPU time.  It isn't
-    // reliable on Linux, but it's the best we have.
-    struct timespec ts;
-    clock_gettime(CLOCK_THREAD_CPUTIME_ID, &ts);
-    return (ts.tv_sec * TICKS_PER_SECOND + 
-           ((Ticks)ts.tv_nsec * TICKS_PER_SECOND) / 1000000000);
-#else
-    return getProcessCPUTime();
-#endif
-}
-
-nat
-getPageFaults(void)
-{
-#if !defined(HAVE_GETRUSAGE) || irix_HOST_OS
-    return 0;
-#else
-    struct rusage t;
-    getrusage(RUSAGE_SELF, &t);
-    return(t.ru_majflt);
-#endif
-}
-