Import Upstream version 20180207
[hcoop/debian/mlton.git] / runtime / basis / MLton / Rusage / rusage.c
CommitLineData
7f918cf1
CE
1#include "platform.h"
2
3extern struct GC_state gcState;
4
5static struct rusage MLton_Rusage_self;
6static struct rusage MLton_Rusage_children;
7static struct rusage MLton_Rusage_gc;
8
9C_Time_t MLton_Rusage_self_utime_sec (void) {
10 return MLton_Rusage_self.ru_utime.tv_sec;
11}
12
13C_SUSeconds_t MLton_Rusage_self_utime_usec (void) {
14 return MLton_Rusage_self.ru_utime.tv_usec;
15}
16
17C_Time_t MLton_Rusage_self_stime_sec (void) {
18 return MLton_Rusage_self.ru_stime.tv_sec;
19}
20
21C_SUSeconds_t MLton_Rusage_self_stime_usec (void) {
22 return MLton_Rusage_self.ru_stime.tv_usec;
23}
24
25C_Time_t MLton_Rusage_children_utime_sec (void) {
26 return MLton_Rusage_children.ru_utime.tv_sec;
27}
28
29C_SUSeconds_t MLton_Rusage_children_utime_usec (void) {
30 return MLton_Rusage_children.ru_utime.tv_usec;
31}
32
33C_Time_t MLton_Rusage_children_stime_sec (void) {
34 return MLton_Rusage_children.ru_stime.tv_sec;
35}
36
37C_SUSeconds_t MLton_Rusage_children_stime_usec (void) {
38 return MLton_Rusage_children.ru_stime.tv_usec;
39}
40
41C_Time_t MLton_Rusage_gc_utime_sec (void) {
42 return MLton_Rusage_gc.ru_utime.tv_sec;
43}
44
45C_SUSeconds_t MLton_Rusage_gc_utime_usec (void) {
46 return MLton_Rusage_gc.ru_utime.tv_usec;
47}
48
49C_Time_t MLton_Rusage_gc_stime_sec (void) {
50 return MLton_Rusage_gc.ru_stime.tv_sec;
51}
52
53C_SUSeconds_t MLton_Rusage_gc_stime_usec (void) {
54 return MLton_Rusage_gc.ru_stime.tv_usec;
55}
56
57void MLton_Rusage_getrusage (void) {
58 MLton_Rusage_gc = *(GC_getRusageGCAddr (&gcState));
59 getrusage (RUSAGE_SELF, &MLton_Rusage_self);
60 getrusage (RUSAGE_CHILDREN, &MLton_Rusage_children);
61}