diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2019-12-31 17:57:20 -0500 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2019-12-31 17:57:20 -0500 |
| commit | 0c8ec369f051d616434cff309fe737c52fd98199 (patch) | |
| tree | 2a1cae5baadc8c45c4ab0f8c1d213e606976ea24 /lib/std/os.zig | |
| parent | 8186211404552a31eaf2a7bc182a46a7e40eacda (diff) | |
| download | zig-0c8ec369f051d616434cff309fe737c52fd98199.tar.gz zig-0c8ec369f051d616434cff309fe737c52fd98199.zip | |
std.os.memfd_create: add error.SystemOutdated
Diffstat (limited to 'lib/std/os.zig')
| -rw-r--r-- | lib/std/os.zig | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/std/os.zig b/lib/std/os.zig index b51dbe7d2a..878d1a57e7 100644 --- a/lib/std/os.zig +++ b/lib/std/os.zig @@ -3286,9 +3286,13 @@ pub const MemFdCreateError = error{ SystemFdQuotaExceeded, ProcessFdQuotaExceeded, OutOfMemory, + + /// memfd_create is available in Linux 3.17 and later. This error is returned + /// for older kernel versions. + SystemOutdated, } || UnexpectedError; -pub fn memfd_createC(name: [*:0]const u8, flags: u32) !fd_t { +pub fn memfd_createC(name: [*:0]const u8, flags: u32) MemFdCreateError!fd_t { // memfd_create is available only in glibc versions starting with 2.27. const use_c = std.c.versionCheck(.{ .major = 2, .minor = 27, .patch = 0 }).ok; const sys = if (use_c) std.c else linux; @@ -3301,6 +3305,7 @@ pub fn memfd_createC(name: [*:0]const u8, flags: u32) !fd_t { ENFILE => return error.SystemFdQuotaExceeded, EMFILE => return error.ProcessFdQuotaExceeded, ENOMEM => return error.OutOfMemory, + ENOSYS => return error.SystemOutdated, else => |err| return unexpectedErrno(err), } } |
