---@meta local elf = require("elf") -- TODO keep in sync with mkelf:loadconfig() env. Class = elf.Class Endian = elf.Endian Osabi = elf.Osabi Type = elf.Type Machine = elf.Machine SegmentType = elf.SegmentType SegmentFlags = elf.SegmentFlags ELFVERSION = elf.VERSION ---ELF header --[[ There can be only one header per configuration file. class, data, type and machine are mandatory fields while the remaining fields are assigned defaults or computed after layout. ]] ---@param hdr Header function header(hdr) end ---ELF program header entries. --[[ The program headers are derived from these segment entries. type field is mandatory and rest of fields are assigned defaults or computed after layout.A segment describes either a range of sections or a raw mapping. Do not mix the two forms. ]] ---@param xs Segment[] function segments(xs) end ---@param xs Section[] function sections(xs) end