pub(super) struct Vdso {
load_addr: *const Elf_Ehdr,
load_end: *const c_void,
pv_offset: usize,
symtab: *const Elf_Sym,
symstrings: *const u8,
gnu_hash: *const u32,
bucket: *const u32,
chain: *const u32,
nbucket: u32,
versym: *const u16,
verdef: *const Elf_Verdef,
}
Fields§
§load_addr: *const Elf_Ehdr
§load_end: *const c_void
§pv_offset: usize
§symtab: *const Elf_Sym
§symstrings: *const u8
§gnu_hash: *const u32
§bucket: *const u32
§chain: *const u32
§nbucket: u32
§versym: *const u16
§verdef: *const Elf_Verdef
Implementations§
Source§impl Vdso
impl Vdso
Sourcepub(super) fn new() -> Option<Self>
pub(super) fn new() -> Option<Self>
Parse the vDSO.
Returns None
if the vDSO can’t be located or if it doesn’t conform to
our expectations.
Sourceunsafe fn check_sym(
&self,
sym: &Elf_Sym,
i: u32,
name: &CStr,
version: &CStr,
ver_hash: u32,
) -> bool
unsafe fn check_sym( &self, sym: &Elf_Sym, i: u32, name: &CStr, version: &CStr, ver_hash: u32, ) -> bool
Check to see if the symbol is the one we’re looking for.
§Safety
The raw pointers inside self
must be valid.
Sourcepub(super) fn sym(&self, version: &CStr, name: &CStr) -> *mut c_void
pub(super) fn sym(&self, version: &CStr, name: &CStr) -> *mut c_void
Look up a symbol in the vDSO.
Auto Trait Implementations§
impl Freeze for Vdso
impl RefUnwindSafe for Vdso
impl !Send for Vdso
impl !Sync for Vdso
impl Unpin for Vdso
impl UnwindSafe for Vdso
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more