struct ProgramHeaderIterator [src]
Fields
elf_header: Header
file_reader: *std.fs.File.Reader
index: usize = 0
Members
- next (Function)
Source
pub const ProgramHeaderIterator = struct {
elf_header: Header,
file_reader: *std.fs.File.Reader,
index: usize = 0,
pub fn next(it: *ProgramHeaderIterator) !?Elf64_Phdr {
if (it.index >= it.elf_header.phnum) return null;
defer it.index += 1;
const size: u64 = if (it.elf_header.is_64) @sizeOf(Elf64_Phdr) else @sizeOf(Elf32_Phdr);
const offset = it.elf_header.phoff + size * it.index;
try it.file_reader.seekTo(offset);
return takePhdr(&it.file_reader.interface, it.elf_header);
}
}