pub trait CallingConvention {
// Required methods
fn get_parameter_register(param_index: usize) -> Option<u16>;
fn max_register_parameters() -> usize;
fn skip_prologue<R: CodeReader>(
function_start: u64,
code_reader: &R,
) -> Result<u64, PlatformError>;
// Provided method
fn is_in_prologue<R: CodeReader>(
pc: u64,
function_start: u64,
code_reader: &R,
) -> bool { ... }
}Expand description
Platform-specific calling convention and prologue analysis
Required Methods§
Sourcefn get_parameter_register(param_index: usize) -> Option<u16>
fn get_parameter_register(param_index: usize) -> Option<u16>
Get the register number for a parameter at the given index
Sourcefn max_register_parameters() -> usize
fn max_register_parameters() -> usize
Maximum number of parameters passed in registers
Sourcefn skip_prologue<R: CodeReader>(
function_start: u64,
code_reader: &R,
) -> Result<u64, PlatformError>
fn skip_prologue<R: CodeReader>( function_start: u64, code_reader: &R, ) -> Result<u64, PlatformError>
Skip function prologue and return the address where the function body starts
Provided Methods§
Sourcefn is_in_prologue<R: CodeReader>(
pc: u64,
function_start: u64,
code_reader: &R,
) -> bool
fn is_in_prologue<R: CodeReader>( pc: u64, function_start: u64, code_reader: &R, ) -> bool
Check if we’re currently in the function prologue
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.