]> git.proxmox.com Git - wasi-libc.git/blob - libc-bottom-half/cloudlibc/src/libc/sys/resource/getrusage.c
279f13da46cf8dd0bc898bee9d2a2b429e8cbcb7
[wasi-libc.git] / libc-bottom-half / cloudlibc / src / libc / sys / resource / getrusage.c
1 // Copyright (c) 2016 Nuxi, https://nuxi.nl/
2 //
3 // SPDX-License-Identifier: BSD-2-Clause
4
5 #include <common/time.h>
6
7 #include <sys/resource.h>
8
9 #include <wasi/core.h>
10 #include <errno.h>
11
12 int getrusage(int who, struct rusage *r_usage) {
13 switch (who) {
14 case RUSAGE_SELF: {
15 __wasi_timestamp_t usertime = 0;
16 (void)__wasi_clock_time_get(__WASI_CLOCK_PROCESS_CPUTIME_ID, 1000,
17 &usertime);
18 *r_usage = (struct rusage){
19 .ru_utime = timestamp_to_timeval(usertime),
20 };
21 return 0;
22 }
23 case RUSAGE_CHILDREN:
24 *r_usage = (struct rusage){};
25 return 0;
26 default:
27 errno = EINVAL;
28 return -1;
29 }
30 }