File: DarwinUtils.c

package info (click to toggle)
ghc 9.0.2-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 177,780 kB
  • sloc: haskell: 494,441; ansic: 70,262; javascript: 9,423; sh: 8,537; python: 2,646; asm: 1,725; makefile: 1,333; xml: 196; cpp: 167; perl: 143; ruby: 84; lisp: 7
file content (22 lines) | stat: -rw-r--r-- 466 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "HsBase.h"

#if defined(darwin_HOST_OS) || defined(ios_HOST_OS)
#include <mach/mach_time.h>

static double scaling_factor = 0.0;

void initialize_timer()
{
    mach_timebase_info_data_t info;
    (void) mach_timebase_info(&info);
    scaling_factor = (double)info.numer / (double)info.denom;
    scaling_factor *= 1e-9;
}

void absolute_time(double *result)
{
    uint64_t time = mach_absolute_time();
    *result = (double)time * scaling_factor;
}

#endif