Zig 0.17.0-dev (Split by item)
This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig library itself.
Zig › std/ › process.zig › lockMemoryAll
lockMemoryAll
process.lockMemoryAll
pub fn lockMemoryAll (options : LockMemoryAllOptions ) LockMemoryError !void
File
Code
pub fn lockMemoryAll (options : LockMemoryAllOptions ) LockMemoryError !void {
if (@TypeOf (posix .system .mlockall ) == void ) return error .UnsupportedOperation ;
var flags : posix .MCL = .{
.CURRENT = options .current ,
.FUTURE = options .future ,
};
if (options .on_fault ) {
assert (options .current or options .future );
if (@hasField (posix .MCL , "ONFAULT" )) {
flags .ONFAULT = true ;
} else {
return error .UnsupportedOperation ;
}
}
switch (posix .errno (posix .system .mlockall (flags ))) {
.SUCCESS => return ,
.INVAL => |err | return std .Io .Threaded .errnoBug (err ),
.PERM => return error .PermissionDenied ,
.NOMEM => return error .LockedMemoryLimitExceeded ,
.AGAIN => return error .SystemResources ,
else => |err | return posix .unexpectedErrno (err ),
}
}