authorgravatar for ashe@kivikakk.eeAsherah Connor <ashe@kivikakk.ee> 2021-03-10 16:26:41+11:00
committergravatar for ashe@kivikakk.eeAsherah Connor <ashe@kivikakk.ee> 2021-03-10 16:26:41+11:00
logc5eb15526dac23e231ae54c2461f0eb15b28303e
tree1bad7f29fe9fe34957778fb66cb235b0607666ff
parentf2b96782ecdc9e2f8740eb7d294203b2a585ea52

expose machine field in ELF header


1 files changed, 7 insertions(+), 0 deletions(-)

lib/std/elf.zig+7
......@@ -337,6 +337,7 @@ pub const ET = extern enum(u16) {
337337/// All integers are native endian.
338338pub const Header = struct {
339339 endian: builtin.Endian,
340 machine: EM,
340341 is_64: bool,
341342 entry: u64,
342343 phoff: u64,
......@@ -387,8 +388,14 @@ pub const Header = struct {
387388 else => return error.InvalidElfClass,
388389 };
389390
391 const machine = if (need_bswap) blk: {
392 const value = @enumToInt(hdr32.e_machine);
393 break :blk @intToEnum(EM, @byteSwap(@TypeOf(value), value));
394 } else hdr32.e_machine;
395
390396 return @as(Header, .{
391397 .endian = endian,
398 .machine = machine,
392399 .is_64 = is_64,
393400 .entry = int(is_64, need_bswap, hdr32.e_entry, hdr64.e_entry),
394401 .phoff = int(is_64, need_bswap, hdr32.e_phoff, hdr64.e_phoff),