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 standard library.
std › process › getBaseAddress Public Function getBaseAddress Doc Source Public Function std.process.getBaseAddress
pub fn getBaseAddress () usize File process.zig: 233
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250 pub fn getBaseAddress () usize {
switch (native_os ) {
.linux => {
const phdrs = std .posix .getSelfPhdrs ();
var base : usize = 0 ;
for (phdrs ) |phdr | switch (phdr .type ) {
.LOAD => return base + phdr .vaddr ,
.PHDR => base = @intFromPtr (phdrs .ptr ) - phdr .vaddr ,
else => {},
} else unreachable ;
},
.driverkit , .ios , .maccatalyst , .macos , .tvos , .visionos , .watchos => {
return @intFromPtr (&std .c ._mh_execute_header );
},
.windows => return @intFromPtr (windows .peb ().ImageBaseAddress ),
else => @compileError ("Unsupported OS" ),
}
}