tiny.tldr.loadExecutable
Defined in tiny.tldr.
Source
Source: lib/tldr/src/load.zig:54
zig
pub fn loadExecutable( allocator: std.mem.Allocator, inputs: []const model.Input, options: model.LinkOptions,) LoadError!LoadedImage { if (builtin.cpu.arch != .x86_64) return error.UnsupportedArchitecture; var probe_options = loadOptions(options); probe_options.image_base = 0; var probe = try linker.link(allocator, inputs, probe_options); defer probe.deinit(allocator); const probe_span = try imageSpan(probe.bytes); const memory_len = try probe_span.byteCount(); const mapping = try memory.reserveAddressSpace(memory_len); errdefer memory.unmap(mapping); var mapped_options = loadOptions(options); const mapping_address: u64 = @intCast(@intFromPtr(mapping.ptr)); if (mapping_address < probe_span.start) return error.InvalidRange; mapped_options.image_base = mapping_address - probe_span.start; var linked = try linker.link(allocator, inputs, mapped_options); defer linked.deinit(allocator); const mapped_span = try imageSpan(linked.bytes); if (mapped_span.start != mapping_address) return error.InvalidRange; if (try mapped_span.byteCount() > mapping.len) return error.InvalidRange; try memory.protect(mapping, .{ .read = true, .write = true }); @memset(mapping, 0); try copyLoadSegments(mapping, linked.bytes, mapped_span); try protectLoadSegments(mapping, linked.bytes, mapped_span); const entry_address = try entryAddress(linked.bytes, mapped_span); return .{ .memory = mapping, .entry_address = entry_address, };}Source: lib/tldr/src/root.zig:81
zig
pub const loadExecutable = loader.loadExecutable;Complete call list
8 direct calls.
tiny.sys.memory.protect[function] atlib/sys/src/memory.zig:531tiny.sys.memory.reserveAddressSpace[function] atlib/sys/src/memory.zig:290tiny.sys.memory.unmap[function] atlib/sys/src/memory.zig:514lib.tldr.src.load.copyLoadSegments[function] — private source atlib/tldr/src/load.zig:122in nearest public ownerlib.tldr.src.loadlib.tldr.src.load.entryAddress[function] — private source atlib/tldr/src/load.zig:151in nearest public ownerlib.tldr.src.loadlib.tldr.src.load.imageSpan[function] — private source atlib/tldr/src/load.zig:103in nearest public ownerlib.tldr.src.loadlib.tldr.src.load.loadOptions[function] — private source atlib/tldr/src/load.zig:95in nearest public ownerlib.tldr.src.loadlib.tldr.src.load.protectLoadSegments[function] — private source atlib/tldr/src/load.zig:134in nearest public ownerlib.tldr.src.load
Audit
| Definitions | 1 |
|---|---|
| Public names | 1 |
| Members | 0 |
| Version | 26.7.0 |
| Revision | daab053ee433 |