3 extern struct GC_state gcState
;
5 static struct rusage MLton_Rusage_self
;
6 static struct rusage MLton_Rusage_children
;
7 static struct rusage MLton_Rusage_gc
;
9 C_Time_t
MLton_Rusage_self_utime_sec (void) {
10 return MLton_Rusage_self
.ru_utime
.tv_sec
;
13 C_SUSeconds_t
MLton_Rusage_self_utime_usec (void) {
14 return MLton_Rusage_self
.ru_utime
.tv_usec
;
17 C_Time_t
MLton_Rusage_self_stime_sec (void) {
18 return MLton_Rusage_self
.ru_stime
.tv_sec
;
21 C_SUSeconds_t
MLton_Rusage_self_stime_usec (void) {
22 return MLton_Rusage_self
.ru_stime
.tv_usec
;
25 C_Time_t
MLton_Rusage_children_utime_sec (void) {
26 return MLton_Rusage_children
.ru_utime
.tv_sec
;
29 C_SUSeconds_t
MLton_Rusage_children_utime_usec (void) {
30 return MLton_Rusage_children
.ru_utime
.tv_usec
;
33 C_Time_t
MLton_Rusage_children_stime_sec (void) {
34 return MLton_Rusage_children
.ru_stime
.tv_sec
;
37 C_SUSeconds_t
MLton_Rusage_children_stime_usec (void) {
38 return MLton_Rusage_children
.ru_stime
.tv_usec
;
41 C_Time_t
MLton_Rusage_gc_utime_sec (void) {
42 return MLton_Rusage_gc
.ru_utime
.tv_sec
;
45 C_SUSeconds_t
MLton_Rusage_gc_utime_usec (void) {
46 return MLton_Rusage_gc
.ru_utime
.tv_usec
;
49 C_Time_t
MLton_Rusage_gc_stime_sec (void) {
50 return MLton_Rusage_gc
.ru_stime
.tv_sec
;
53 C_SUSeconds_t
MLton_Rusage_gc_stime_usec (void) {
54 return MLton_Rusage_gc
.ru_stime
.tv_usec
;
57 void 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
);