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 standard library. Private Function
fnexpandStackSize(phdrs: []elf.ElfN.Phdr) void {
@disableInstrumentation();
for (phdrs) |*phdr| {
switch (phdr.type) {
.GNU_STACK => {
if (phdr.memsz == 0) break;
assert(phdr.memsz % std.heap.page_size_min == 0);
// Silently fail if we are unable to get limits.constlimits = std.posix.getrlimit(.STACK) catchbreak;
// Clamp to limits.max .constwanted_stack_size = @min(phdr.memsz, limits.max);
if (wanted_stack_size > limits.cur) {
std.posix.setrlimit(.STACK, .{
.cur = wanted_stack_size,
.max = limits.max,
}) catch {
// Because we could not increase the stack size to the upper bound,// depending on what happens at runtime, a stack overflow may occur.// However it would cause a segmentation fault, thanks to stack probing,// so we do not have a memory safety issue here.// This is intentional silent failure.// This logic should be revisited when the following issues are addressed:// https://github.com/ziglang/zig/issues/157// https://github.com/ziglang/zig/issues/1006
};
}
break;
},
else => {},
}
}
}