pub const ProgramHeaderBufferIterator = struct is_64: boolendian: Endianphnum: u16phoff: u64buf: []const u8index: usize = 0pub fn next(it: *ProgramHeaderBufferIterator) !?Elf64.Phdr822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841pub const ProgramHeaderBufferIterator = struct {
is_64: bool,
endian: Endian,
phnum: u16,
phoff: u64,
buf: []const u8,
index: usize = 0,
pub fn next(it: *ProgramHeaderBufferIterator) !?Elf64.Phdr {
if (it.index >= it.phnum) return null;
defer it.index += 1;
const size: usize = if (it.is_64) @sizeOf(Elf64.Phdr) else @sizeOf(Elf32.Phdr);
const offset = @as(usize, @intCast(it.phoff)) + size * it.index;
var reader = Io.Reader.fixed(it.buf[offset..]);
return try takeProgramHeader(&reader, it.is_64, it.endian);
}
}