authorgravatar for datamanrb@gmail.comdata-man <datamanrb@gmail.com> 2019-12-06 06:29:23+05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-01-05 16:52:36-05:00
log2f6b045fb13b6a49e5185fa0f4006bef1dacd0d7
tree2b4e3ba5b75276e3b1ee6ce2c9199efd5661856b
parent62bebda270d44a163a69393c9e189c2b1811f023
signaturelock-open Commit is signed but in an unrecognized format.

Add std.os.getrusage


3 files changed, 38 insertions(+), 0 deletions(-)

lib/std/os.zig+11
......@@ -3325,3 +3325,14 @@ pub fn memfd_create(name: []const u8, flags: u32) !fd_t {
33253325 const name_t = try toMemFdPath(name);
33263326 return memfd_createC(&name_t, flags);
33273327}
3328
3329pub fn getrusage(who: i32) rusage {
3330 var result: rusage = undefined;
3331 const rc = system.getrusage(who, &result);
3332 switch (errno(rc)) {
3333 0 => return result,
3334 EINVAL => unreachable,
3335 EFAULT => unreachable,
3336 else => unreachable,
3337 }
3338}
lib/std/os/bits/linux.zig+23
......@@ -1453,3 +1453,26 @@ pub const MFD_HUGE_512MB = HUGETLB_FLAG_ENCODE_512MB;
14531453pub const MFD_HUGE_1GB = HUGETLB_FLAG_ENCODE_1GB;
14541454pub const MFD_HUGE_2GB = HUGETLB_FLAG_ENCODE_2GB;
14551455pub const MFD_HUGE_16GB = HUGETLB_FLAG_ENCODE_16GB;
1456
1457pub const RUSAGE_SELF = 0;
1458pub const RUSAGE_CHILDREN = -1;
1459pub const RUSAGE_THREAD = 1;
1460
1461pub const rusage = extern struct {
1462 utime: timeval,
1463 stime: timeval,
1464 maxrss: isize,
1465 ix_rss: isize,
1466 idrss: isize,
1467 isrss: isize,
1468 minflt: isize,
1469 majflt: isize,
1470 nswap: isize,
1471 inblock: isize,
1472 oublock: isize,
1473 msgsnd: isize,
1474 msgrcv: isize,
1475 nsignals: isize,
1476 nvcsw: isize,
1477 nivcsw: isize,
1478};
lib/std/os/linux.zig+4
......@@ -1114,6 +1114,10 @@ pub fn memfd_create(name: [*:0]const u8, flags: u32) usize {
11141114 return syscall2(SYS_memfd_create, @ptrToInt(name), flags);
11151115}
11161116
1117pub fn getrusage(who: i32, usage: *rusage) usize {
1118 return syscall2(SYS_getrusage, @bitCast(usize, @as(isize, who)), @ptrToInt(usage));
1119}
1120
11171121test "" {
11181122 if (builtin.os == .linux) {
11191123 _ = @import("linux/test.zig");