| author | |
| committer | |
| log | 2f6b045fb13b6a49e5185fa0f4006bef1dacd0d7 |
| tree | 2b4e3ba5b75276e3b1ee6ce2c9199efd5661856b |
| parent | 62bebda270d44a163a69393c9e189c2b1811f023 |
| signature | Commit is signed but in an unrecognized format. |
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 { | ... | @@ -3325,3 +3325,14 @@ pub fn memfd_create(name: []const u8, flags: u32) !fd_t { |
| 3325 | const name_t = try toMemFdPath(name); | 3325 | const name_t = try toMemFdPath(name); |
| 3326 | return memfd_createC(&name_t, flags); | 3326 | return memfd_createC(&name_t, flags); |
| 3327 | } | 3327 | } |
| 3328 | |||
| 3329 | pub 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; | ... | @@ -1453,3 +1453,26 @@ pub const MFD_HUGE_512MB = HUGETLB_FLAG_ENCODE_512MB; |
| 1453 | pub const MFD_HUGE_1GB = HUGETLB_FLAG_ENCODE_1GB; | 1453 | pub const MFD_HUGE_1GB = HUGETLB_FLAG_ENCODE_1GB; |
| 1454 | pub const MFD_HUGE_2GB = HUGETLB_FLAG_ENCODE_2GB; | 1454 | pub const MFD_HUGE_2GB = HUGETLB_FLAG_ENCODE_2GB; |
| 1455 | pub const MFD_HUGE_16GB = HUGETLB_FLAG_ENCODE_16GB; | 1455 | pub const MFD_HUGE_16GB = HUGETLB_FLAG_ENCODE_16GB; |
| 1456 | |||
| 1457 | pub const RUSAGE_SELF = 0; | ||
| 1458 | pub const RUSAGE_CHILDREN = -1; | ||
| 1459 | pub const RUSAGE_THREAD = 1; | ||
| 1460 | |||
| 1461 | pub 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 { | ... | @@ -1114,6 +1114,10 @@ pub fn memfd_create(name: [*:0]const u8, flags: u32) usize { |
| 1114 | return syscall2(SYS_memfd_create, @ptrToInt(name), flags); | 1114 | return syscall2(SYS_memfd_create, @ptrToInt(name), flags); |
| 1115 | } | 1115 | } |
| 1116 | 1116 | ||
| 1117 | pub fn getrusage(who: i32, usage: *rusage) usize { | ||
| 1118 | return syscall2(SYS_getrusage, @bitCast(usize, @as(isize, who)), @ptrToInt(usage)); | ||
| 1119 | } | ||
| 1120 | |||
| 1117 | test "" { | 1121 | test "" { |
| 1118 | if (builtin.os == .linux) { | 1122 | if (builtin.os == .linux) { |
| 1119 | _ = @import("linux/test.zig"); | 1123 | _ = @import("linux/test.zig"); |