mirror of
https://github.com/ziglang/zig.git
synced 2026-02-21 16:54:52 +00:00
elf: add helpers for extracting type and bind from symbol def
This commit is contained in:
parent
c3ce04b9e5
commit
b95cdf0aeb
@ -719,6 +719,13 @@ pub const Elf32_Sym = extern struct {
|
|||||||
st_info: u8,
|
st_info: u8,
|
||||||
st_other: u8,
|
st_other: u8,
|
||||||
st_shndx: Elf32_Section,
|
st_shndx: Elf32_Section,
|
||||||
|
|
||||||
|
pub inline fn st_type(self: @This()) u4 {
|
||||||
|
return @truncate(u4, self.st_info);
|
||||||
|
}
|
||||||
|
pub inline fn st_bind(self: @This()) u4 {
|
||||||
|
return @truncate(u4, self.st_info >> 4);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
pub const Elf64_Sym = extern struct {
|
pub const Elf64_Sym = extern struct {
|
||||||
st_name: Elf64_Word,
|
st_name: Elf64_Word,
|
||||||
@ -727,6 +734,13 @@ pub const Elf64_Sym = extern struct {
|
|||||||
st_shndx: Elf64_Section,
|
st_shndx: Elf64_Section,
|
||||||
st_value: Elf64_Addr,
|
st_value: Elf64_Addr,
|
||||||
st_size: Elf64_Xword,
|
st_size: Elf64_Xword,
|
||||||
|
|
||||||
|
pub inline fn st_type(self: @This()) u4 {
|
||||||
|
return @truncate(u4, self.st_info);
|
||||||
|
}
|
||||||
|
pub inline fn st_bind(self: @This()) u4 {
|
||||||
|
return @truncate(u4, self.st_info >> 4);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
pub const Elf32_Syminfo = extern struct {
|
pub const Elf32_Syminfo = extern struct {
|
||||||
si_boundto: Elf32_Half,
|
si_boundto: Elf32_Half,
|
||||||
@ -744,7 +758,7 @@ pub const Elf32_Rel = extern struct {
|
|||||||
return @truncate(u24, self.r_info >> 8);
|
return @truncate(u24, self.r_info >> 8);
|
||||||
}
|
}
|
||||||
pub inline fn r_type(self: @This()) u8 {
|
pub inline fn r_type(self: @This()) u8 {
|
||||||
return @truncate(u8, self.r_info & 0xff);
|
return @truncate(u8, self.r_info);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
pub const Elf64_Rel = extern struct {
|
pub const Elf64_Rel = extern struct {
|
||||||
@ -755,7 +769,7 @@ pub const Elf64_Rel = extern struct {
|
|||||||
return @truncate(u32, self.r_info >> 32);
|
return @truncate(u32, self.r_info >> 32);
|
||||||
}
|
}
|
||||||
pub inline fn r_type(self: @This()) u32 {
|
pub inline fn r_type(self: @This()) u32 {
|
||||||
return @truncate(u32, self.r_info & 0xffffffff);
|
return @truncate(u32, self.r_info);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
pub const Elf32_Rela = extern struct {
|
pub const Elf32_Rela = extern struct {
|
||||||
@ -767,7 +781,7 @@ pub const Elf32_Rela = extern struct {
|
|||||||
return @truncate(u24, self.r_info >> 8);
|
return @truncate(u24, self.r_info >> 8);
|
||||||
}
|
}
|
||||||
pub inline fn r_type(self: @This()) u8 {
|
pub inline fn r_type(self: @This()) u8 {
|
||||||
return @truncate(u8, self.r_info & 0xff);
|
return @truncate(u8, self.r_info);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
pub const Elf64_Rela = extern struct {
|
pub const Elf64_Rela = extern struct {
|
||||||
@ -779,7 +793,7 @@ pub const Elf64_Rela = extern struct {
|
|||||||
return @truncate(u32, self.r_info >> 32);
|
return @truncate(u32, self.r_info >> 32);
|
||||||
}
|
}
|
||||||
pub inline fn r_type(self: @This()) u32 {
|
pub inline fn r_type(self: @This()) u32 {
|
||||||
return @truncate(u32, self.r_info & 0xffffffff);
|
return @truncate(u32, self.r_info);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
pub const Elf32_Dyn = extern struct {
|
pub const Elf32_Dyn = extern struct {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user