Struct memflow::os::process::cglue_process::ProcessVtbl
source · #[repr(C)]pub struct ProcessVtbl<'cglue_a, CGlueC: 'cglue_a + CGlueObjBase> { /* private fields */ }
Expand description
CGlue vtable for trait Process.
This virtual function table contains ABI-safe interface for the given trait.
Implementations§
source§impl<'cglue_a, CGlueC: CGlueObjBase> ProcessVtbl<'cglue_a, CGlueC>
impl<'cglue_a, CGlueC: CGlueObjBase> ProcessVtbl<'cglue_a, CGlueC>
sourcepub fn state(&self) -> unsafe extern "C" fn(cont: &mut CGlueC) -> ProcessState
pub fn state(&self) -> unsafe extern "C" fn(cont: &mut CGlueC) -> ProcessState
Getter for state.
Note that this function is wrapped into unsafe, because if already were is an opaque one, it would allow to invoke undefined behaviour.
sourcepub fn set_dtb(
&self
) -> unsafe extern "C" fn(cont: &mut CGlueC, dtb1: Address, dtb2: Address) -> i32
pub fn set_dtb( &self ) -> unsafe extern "C" fn(cont: &mut CGlueC, dtb1: Address, dtb2: Address) -> i32
Getter for set_dtb.
Note that this function is wrapped into unsafe, because if already were is an opaque one, it would allow to invoke undefined behaviour.
sourcepub fn module_address_list_callback(
&self
) -> unsafe extern "C" fn(cont: &mut CGlueC, target_arch: Option<&ArchitectureIdent>, callback: ModuleAddressCallback<'_>) -> i32
pub fn module_address_list_callback( &self ) -> unsafe extern "C" fn(cont: &mut CGlueC, target_arch: Option<&ArchitectureIdent>, callback: ModuleAddressCallback<'_>) -> i32
Getter for module_address_list_callback.
Note that this function is wrapped into unsafe, because if already were is an opaque one, it would allow to invoke undefined behaviour.
sourcepub fn module_list_callback(
&self
) -> unsafe extern "C" fn(cont: &mut CGlueC, target_arch: Option<&ArchitectureIdent>, callback: ModuleInfoCallback<'_>) -> i32
pub fn module_list_callback( &self ) -> unsafe extern "C" fn(cont: &mut CGlueC, target_arch: Option<&ArchitectureIdent>, callback: ModuleInfoCallback<'_>) -> i32
Getter for module_list_callback.
Note that this function is wrapped into unsafe, because if already were is an opaque one, it would allow to invoke undefined behaviour.
sourcepub fn module_by_address(
&self
) -> unsafe extern "C" fn(cont: &mut CGlueC, address: Address, architecture: ArchitectureIdent, ok_out: &mut MaybeUninit<ModuleInfo>) -> i32
pub fn module_by_address( &self ) -> unsafe extern "C" fn(cont: &mut CGlueC, address: Address, architecture: ArchitectureIdent, ok_out: &mut MaybeUninit<ModuleInfo>) -> i32
Getter for module_by_address.
Note that this function is wrapped into unsafe, because if already were is an opaque one, it would allow to invoke undefined behaviour.
sourcepub fn module_by_name_arch(
&self
) -> unsafe extern "C" fn(cont: &mut CGlueC, name: CSliceRef<'_, u8>, architecture: Option<&ArchitectureIdent>, ok_out: &mut MaybeUninit<ModuleInfo>) -> i32
pub fn module_by_name_arch( &self ) -> unsafe extern "C" fn(cont: &mut CGlueC, name: CSliceRef<'_, u8>, architecture: Option<&ArchitectureIdent>, ok_out: &mut MaybeUninit<ModuleInfo>) -> i32
Getter for module_by_name_arch.
Note that this function is wrapped into unsafe, because if already were is an opaque one, it would allow to invoke undefined behaviour.
sourcepub fn module_by_name(
&self
) -> unsafe extern "C" fn(cont: &mut CGlueC, name: CSliceRef<'_, u8>, ok_out: &mut MaybeUninit<ModuleInfo>) -> i32
pub fn module_by_name( &self ) -> unsafe extern "C" fn(cont: &mut CGlueC, name: CSliceRef<'_, u8>, ok_out: &mut MaybeUninit<ModuleInfo>) -> i32
Getter for module_by_name.
Note that this function is wrapped into unsafe, because if already were is an opaque one, it would allow to invoke undefined behaviour.
sourcepub fn primary_module_address(
&self
) -> unsafe extern "C" fn(cont: &mut CGlueC, ok_out: &mut MaybeUninit<Address>) -> i32
pub fn primary_module_address( &self ) -> unsafe extern "C" fn(cont: &mut CGlueC, ok_out: &mut MaybeUninit<Address>) -> i32
Getter for primary_module_address.
Note that this function is wrapped into unsafe, because if already were is an opaque one, it would allow to invoke undefined behaviour.
sourcepub fn primary_module(
&self
) -> unsafe extern "C" fn(cont: &mut CGlueC, ok_out: &mut MaybeUninit<ModuleInfo>) -> i32
pub fn primary_module( &self ) -> unsafe extern "C" fn(cont: &mut CGlueC, ok_out: &mut MaybeUninit<ModuleInfo>) -> i32
Getter for primary_module.
Note that this function is wrapped into unsafe, because if already were is an opaque one, it would allow to invoke undefined behaviour.
sourcepub fn module_import_list_callback(
&self
) -> unsafe extern "C" fn(cont: &mut CGlueC, info: &ModuleInfo, callback: ImportCallback<'_>) -> i32
pub fn module_import_list_callback( &self ) -> unsafe extern "C" fn(cont: &mut CGlueC, info: &ModuleInfo, callback: ImportCallback<'_>) -> i32
Getter for module_import_list_callback.
Note that this function is wrapped into unsafe, because if already were is an opaque one, it would allow to invoke undefined behaviour.
sourcepub fn module_export_list_callback(
&self
) -> unsafe extern "C" fn(cont: &mut CGlueC, info: &ModuleInfo, callback: ExportCallback<'_>) -> i32
pub fn module_export_list_callback( &self ) -> unsafe extern "C" fn(cont: &mut CGlueC, info: &ModuleInfo, callback: ExportCallback<'_>) -> i32
Getter for module_export_list_callback.
Note that this function is wrapped into unsafe, because if already were is an opaque one, it would allow to invoke undefined behaviour.
sourcepub fn module_section_list_callback(
&self
) -> unsafe extern "C" fn(cont: &mut CGlueC, info: &ModuleInfo, callback: SectionCallback<'_>) -> i32
pub fn module_section_list_callback( &self ) -> unsafe extern "C" fn(cont: &mut CGlueC, info: &ModuleInfo, callback: SectionCallback<'_>) -> i32
Getter for module_section_list_callback.
Note that this function is wrapped into unsafe, because if already were is an opaque one, it would allow to invoke undefined behaviour.
sourcepub fn module_import_by_name(
&self
) -> unsafe extern "C" fn(cont: &mut CGlueC, info: &ModuleInfo, name: CSliceRef<'_, u8>, ok_out: &mut MaybeUninit<ImportInfo>) -> i32
pub fn module_import_by_name( &self ) -> unsafe extern "C" fn(cont: &mut CGlueC, info: &ModuleInfo, name: CSliceRef<'_, u8>, ok_out: &mut MaybeUninit<ImportInfo>) -> i32
Getter for module_import_by_name.
Note that this function is wrapped into unsafe, because if already were is an opaque one, it would allow to invoke undefined behaviour.
sourcepub fn module_export_by_name(
&self
) -> unsafe extern "C" fn(cont: &mut CGlueC, info: &ModuleInfo, name: CSliceRef<'_, u8>, ok_out: &mut MaybeUninit<ExportInfo>) -> i32
pub fn module_export_by_name( &self ) -> unsafe extern "C" fn(cont: &mut CGlueC, info: &ModuleInfo, name: CSliceRef<'_, u8>, ok_out: &mut MaybeUninit<ExportInfo>) -> i32
Getter for module_export_by_name.
Note that this function is wrapped into unsafe, because if already were is an opaque one, it would allow to invoke undefined behaviour.
sourcepub fn module_section_by_name(
&self
) -> unsafe extern "C" fn(cont: &mut CGlueC, info: &ModuleInfo, name: CSliceRef<'_, u8>, ok_out: &mut MaybeUninit<SectionInfo>) -> i32
pub fn module_section_by_name( &self ) -> unsafe extern "C" fn(cont: &mut CGlueC, info: &ModuleInfo, name: CSliceRef<'_, u8>, ok_out: &mut MaybeUninit<SectionInfo>) -> i32
Getter for module_section_by_name.
Note that this function is wrapped into unsafe, because if already were is an opaque one, it would allow to invoke undefined behaviour.
sourcepub fn info(&self) -> unsafe extern "C" fn(cont: &CGlueC) -> &ProcessInfo
pub fn info(&self) -> unsafe extern "C" fn(cont: &CGlueC) -> &ProcessInfo
Getter for info.
Note that this function is wrapped into unsafe, because if already were is an opaque one, it would allow to invoke undefined behaviour.
sourcepub fn mapped_mem_range(
&self
) -> unsafe extern "C" fn(cont: &mut CGlueC, gap_size: imem, start: Address, end: Address, out: MemoryRangeCallback<'_>)
pub fn mapped_mem_range( &self ) -> unsafe extern "C" fn(cont: &mut CGlueC, gap_size: imem, start: Address, end: Address, out: MemoryRangeCallback<'_>)
Getter for mapped_mem_range.
Note that this function is wrapped into unsafe, because if already were is an opaque one, it would allow to invoke undefined behaviour.
sourcepub fn mapped_mem(
&self
) -> unsafe extern "C" fn(cont: &mut CGlueC, gap_size: imem, out: MemoryRangeCallback<'_>)
pub fn mapped_mem( &self ) -> unsafe extern "C" fn(cont: &mut CGlueC, gap_size: imem, out: MemoryRangeCallback<'_>)
Getter for mapped_mem.
Note that this function is wrapped into unsafe, because if already were is an opaque one, it would allow to invoke undefined behaviour.
Trait Implementations§
source§impl<'cglue_a, CGlueC: Opaquable + CGlueObjBase + 'cglue_a> CGlueBaseVtbl for ProcessVtbl<'cglue_a, CGlueC>where
CGlueC::OpaqueTarget: Opaquable + CGlueObjBase + GenericTypeBounds,
CGlueC::ObjType: Process,
ProcessVtbl<'cglue_a, CGlueC::OpaqueTarget>: StableAbi,
impl<'cglue_a, CGlueC: Opaquable + CGlueObjBase + 'cglue_a> CGlueBaseVtbl for ProcessVtbl<'cglue_a, CGlueC>where
CGlueC::OpaqueTarget: Opaquable + CGlueObjBase + GenericTypeBounds,
CGlueC::ObjType: Process,
ProcessVtbl<'cglue_a, CGlueC::OpaqueTarget>: StableAbi,
type OpaqueVtbl = ProcessVtbl<'cglue_a, <CGlueC as Opaquable>::OpaqueTarget>
type Context = <CGlueC as CGlueObjBase>::Context
type RetTmp = PhantomData<ProcessRetTmpPhantom<<CGlueC as CGlueObjBase>::Context>>
source§fn as_opaque(&self) -> &Self::OpaqueVtbl
fn as_opaque(&self) -> &Self::OpaqueVtbl
source§impl<'cglue_a, CGlueC: CGlueObjBase> CGlueVtblCont for ProcessVtbl<'cglue_a, CGlueC>
impl<'cglue_a, CGlueC: CGlueObjBase> CGlueVtblCont for ProcessVtbl<'cglue_a, CGlueC>
source§impl<'cglue_a, CGlueC, CGlueCtx: ContextBounds> Default for &'cglue_a ProcessVtbl<'cglue_a, CGlueC>where
CGlueC::ObjType: Process,
CGlueC: Opaquable + CGlueObjMut<ProcessRetTmp<CGlueCtx>, Context = CGlueCtx> + 'cglue_a,
CGlueC::OpaqueTarget: GenericTypeBounds,
ProcessVtbl<'cglue_a, CGlueC>: CGlueBaseVtbl,
impl<'cglue_a, CGlueC, CGlueCtx: ContextBounds> Default for &'cglue_a ProcessVtbl<'cglue_a, CGlueC>where
CGlueC::ObjType: Process,
CGlueC: Opaquable + CGlueObjMut<ProcessRetTmp<CGlueCtx>, Context = CGlueCtx> + 'cglue_a,
CGlueC::OpaqueTarget: GenericTypeBounds,
ProcessVtbl<'cglue_a, CGlueC>: CGlueBaseVtbl,
Default vtable reference creation.
source§impl<'cglue_a, CGlueC> GetStaticEquivalent_ for ProcessVtbl<'cglue_a, CGlueC>where
CGlueC: __StableAbi + 'cglue_a + CGlueObjBase,
impl<'cglue_a, CGlueC> GetStaticEquivalent_ for ProcessVtbl<'cglue_a, CGlueC>where
CGlueC: __StableAbi + 'cglue_a + CGlueObjBase,
type StaticEquivalent = _static_ProcessVtbl<'static, <CGlueC as GetStaticEquivalent_>::StaticEquivalent>
source§impl<'cglue_a, CGlueInst, CGlueCtx: ContextBounds> GetVtbl<ProcessVtbl<'cglue_a, IntoProcessInstanceContainer<CGlueInst, CGlueCtx>>> for IntoProcessInstance<'cglue_a, CGlueInst, CGlueCtx>where
IntoProcessInstanceContainer<CGlueInst, CGlueCtx>: CGlueObjBase,
impl<'cglue_a, CGlueInst, CGlueCtx: ContextBounds> GetVtbl<ProcessVtbl<'cglue_a, IntoProcessInstanceContainer<CGlueInst, CGlueCtx>>> for IntoProcessInstance<'cglue_a, CGlueInst, CGlueCtx>where
IntoProcessInstanceContainer<CGlueInst, CGlueCtx>: CGlueObjBase,
fn get_vtbl( &self ) -> &ProcessVtbl<'cglue_a, IntoProcessInstanceContainer<CGlueInst, CGlueCtx>>
source§impl<'cglue_a, CGlueInst, CGlueCtx: ContextBounds> GetVtbl<ProcessVtbl<'cglue_a, IntoProcessInstanceContainer<CGlueInst, CGlueCtx>>> for IntoProcessInstanceFinalWithVirtualTranslate<'cglue_a, CGlueInst, CGlueCtx>where
IntoProcessInstanceContainer<CGlueInst, CGlueCtx>: CGlueObjBase,
impl<'cglue_a, CGlueInst, CGlueCtx: ContextBounds> GetVtbl<ProcessVtbl<'cglue_a, IntoProcessInstanceContainer<CGlueInst, CGlueCtx>>> for IntoProcessInstanceFinalWithVirtualTranslate<'cglue_a, CGlueInst, CGlueCtx>where
IntoProcessInstanceContainer<CGlueInst, CGlueCtx>: CGlueObjBase,
fn get_vtbl( &self ) -> &ProcessVtbl<'cglue_a, IntoProcessInstanceContainer<CGlueInst, CGlueCtx>>
source§impl<'cglue_a, CGlueInst, CGlueCtx: ContextBounds> GetVtbl<ProcessVtbl<'cglue_a, IntoProcessInstanceContainer<CGlueInst, CGlueCtx>>> for IntoProcessInstanceWithVirtualTranslate<'cglue_a, CGlueInst, CGlueCtx>where
IntoProcessInstanceContainer<CGlueInst, CGlueCtx>: CGlueObjBase,
impl<'cglue_a, CGlueInst, CGlueCtx: ContextBounds> GetVtbl<ProcessVtbl<'cglue_a, IntoProcessInstanceContainer<CGlueInst, CGlueCtx>>> for IntoProcessInstanceWithVirtualTranslate<'cglue_a, CGlueInst, CGlueCtx>where
IntoProcessInstanceContainer<CGlueInst, CGlueCtx>: CGlueObjBase,
fn get_vtbl( &self ) -> &ProcessVtbl<'cglue_a, IntoProcessInstanceContainer<CGlueInst, CGlueCtx>>
source§impl<'cglue_a, CGlueInst, CGlueCtx: ContextBounds> GetVtbl<ProcessVtbl<'cglue_a, ProcessInstanceContainer<CGlueInst, CGlueCtx>>> for ProcessInstance<'cglue_a, CGlueInst, CGlueCtx>where
ProcessInstanceContainer<CGlueInst, CGlueCtx>: CGlueObjBase,
impl<'cglue_a, CGlueInst, CGlueCtx: ContextBounds> GetVtbl<ProcessVtbl<'cglue_a, ProcessInstanceContainer<CGlueInst, CGlueCtx>>> for ProcessInstance<'cglue_a, CGlueInst, CGlueCtx>where
ProcessInstanceContainer<CGlueInst, CGlueCtx>: CGlueObjBase,
fn get_vtbl( &self ) -> &ProcessVtbl<'cglue_a, ProcessInstanceContainer<CGlueInst, CGlueCtx>>
source§impl<'cglue_a, CGlueInst, CGlueCtx: ContextBounds> GetVtbl<ProcessVtbl<'cglue_a, ProcessInstanceContainer<CGlueInst, CGlueCtx>>> for ProcessInstanceFinalWithVirtualTranslate<'cglue_a, CGlueInst, CGlueCtx>where
ProcessInstanceContainer<CGlueInst, CGlueCtx>: CGlueObjBase,
impl<'cglue_a, CGlueInst, CGlueCtx: ContextBounds> GetVtbl<ProcessVtbl<'cglue_a, ProcessInstanceContainer<CGlueInst, CGlueCtx>>> for ProcessInstanceFinalWithVirtualTranslate<'cglue_a, CGlueInst, CGlueCtx>where
ProcessInstanceContainer<CGlueInst, CGlueCtx>: CGlueObjBase,
fn get_vtbl( &self ) -> &ProcessVtbl<'cglue_a, ProcessInstanceContainer<CGlueInst, CGlueCtx>>
source§impl<'cglue_a, CGlueInst, CGlueCtx: ContextBounds> GetVtbl<ProcessVtbl<'cglue_a, ProcessInstanceContainer<CGlueInst, CGlueCtx>>> for ProcessInstanceWithVirtualTranslate<'cglue_a, CGlueInst, CGlueCtx>where
ProcessInstanceContainer<CGlueInst, CGlueCtx>: CGlueObjBase,
impl<'cglue_a, CGlueInst, CGlueCtx: ContextBounds> GetVtbl<ProcessVtbl<'cglue_a, ProcessInstanceContainer<CGlueInst, CGlueCtx>>> for ProcessInstanceWithVirtualTranslate<'cglue_a, CGlueInst, CGlueCtx>where
ProcessInstanceContainer<CGlueInst, CGlueCtx>: CGlueObjBase,
fn get_vtbl( &self ) -> &ProcessVtbl<'cglue_a, ProcessInstanceContainer<CGlueInst, CGlueCtx>>
source§impl<'cglue_a, CGlueC> StableAbi for ProcessVtbl<'cglue_a, CGlueC>where
CGlueC: __StableAbi + 'cglue_a + CGlueObjBase,
impl<'cglue_a, CGlueC> StableAbi for ProcessVtbl<'cglue_a, CGlueC>where
CGlueC: __StableAbi + 'cglue_a + CGlueObjBase,
§type IsNonZeroType = False
type IsNonZeroType = False
source§const LAYOUT: &'static TypeLayout = _
const LAYOUT: &'static TypeLayout = _
source§const ABI_CONSTS: AbiConsts = _
const ABI_CONSTS: AbiConsts = _
const
-equivalents of the associated types.impl<'cglue_a, CGlueC, CGlueCtx: ContextBounds> CGlueVtbl<CGlueC> for ProcessVtbl<'cglue_a, CGlueC>where
CGlueC::OpaqueTarget: Opaquable + CGlueObjBase + GenericTypeBounds,
CGlueC: Opaquable + CGlueObjMut<ProcessRetTmp<CGlueCtx>, Context = CGlueCtx> + 'cglue_a,
CGlueC::ObjType: Process,
Auto Trait Implementations§
impl<'cglue_a, CGlueC> RefUnwindSafe for ProcessVtbl<'cglue_a, CGlueC>where
CGlueC: RefUnwindSafe,
impl<'cglue_a, CGlueC> Send for ProcessVtbl<'cglue_a, CGlueC>where
CGlueC: Sync,
impl<'cglue_a, CGlueC> Sync for ProcessVtbl<'cglue_a, CGlueC>where
CGlueC: Sync,
impl<'cglue_a, CGlueC> Unpin for ProcessVtbl<'cglue_a, CGlueC>
impl<'cglue_a, CGlueC> UnwindSafe for ProcessVtbl<'cglue_a, CGlueC>where
CGlueC: RefUnwindSafe,
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
source§impl<T> GetWithMetadata for T
impl<T> GetWithMetadata for T
§type ForSelf = WithMetadata_<T, T>
type ForSelf = WithMetadata_<T, T>
WithMetadata_<Self, Self>
§impl<S> ROExtAcc for S
impl<S> ROExtAcc for S
§fn f_get<F>(&self, offset: FieldOffset<S, F, Aligned>) -> &F
fn f_get<F>(&self, offset: FieldOffset<S, F, Aligned>) -> &F
offset
. Read more§fn f_get_mut<F>(&mut self, offset: FieldOffset<S, F, Aligned>) -> &mut F
fn f_get_mut<F>(&mut self, offset: FieldOffset<S, F, Aligned>) -> &mut F
offset
. Read more§fn f_get_ptr<F, A>(&self, offset: FieldOffset<S, F, A>) -> *const F
fn f_get_ptr<F, A>(&self, offset: FieldOffset<S, F, A>) -> *const F
offset
. Read more§fn f_get_mut_ptr<F, A>(&mut self, offset: FieldOffset<S, F, A>) -> *mut F
fn f_get_mut_ptr<F, A>(&mut self, offset: FieldOffset<S, F, A>) -> *mut F
offset
. Read more§impl<S> ROExtOps<Aligned> for S
impl<S> ROExtOps<Aligned> for S
§fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Aligned>, value: F) -> F
fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Aligned>, value: F) -> F
offset
) with value
,
returning the previous value of the field. Read more§fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Aligned>) -> Fwhere
F: Copy,
fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Aligned>) -> Fwhere
F: Copy,
§impl<S> ROExtOps<Unaligned> for S
impl<S> ROExtOps<Unaligned> for S
§fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Unaligned>, value: F) -> F
fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Unaligned>, value: F) -> F
offset
) with value
,
returning the previous value of the field. Read more§fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Unaligned>) -> Fwhere
F: Copy,
fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Unaligned>) -> Fwhere
F: Copy,
§impl<T> SelfOps for Twhere
T: ?Sized,
impl<T> SelfOps for Twhere
T: ?Sized,
§fn piped<F, U>(self, f: F) -> U
fn piped<F, U>(self, f: F) -> U
§fn piped_ref<'a, F, U>(&'a self, f: F) -> U
fn piped_ref<'a, F, U>(&'a self, f: F) -> U
piped
except that the function takes &Self
Useful for functions that take &Self
instead of Self
. Read more§fn piped_mut<'a, F, U>(&'a mut self, f: F) -> Uwhere
F: FnOnce(&'a mut Self) -> U,
fn piped_mut<'a, F, U>(&'a mut self, f: F) -> Uwhere
F: FnOnce(&'a mut Self) -> U,
piped
, except that the function takes &mut Self
.
Useful for functions that take &mut Self
instead of Self
.§fn mutated<F>(self, f: F) -> Self
fn mutated<F>(self, f: F) -> Self
§fn observe<F>(self, f: F) -> Self
fn observe<F>(self, f: F) -> Self
§fn as_ref_<T>(&self) -> &T
fn as_ref_<T>(&self) -> &T
AsRef
,
using the turbofish .as_ref_::<_>()
syntax. Read more