Attribute Macro panda_macros::guest_hypercall [−][src]
#[guest_hypercall]
Expand description
(Callback) Called when a program inside the guest makes a hypercall to pass information from inside the guest to a plugin
Callback ID: PANDA_CB_GUEST_HYPERCALL
Arguments:
CPUState *env: the current CPU state
Helper call location: target/i386/misc_helper.c
Return value:
true if the callback has processed the hypercall, false if the
hypercall has been ignored.
Notes:
On x86, this is called whenever CPUID is executed. On ARM, the
MCR instructions is used. Plugins should check for magic values
in the registers to determine if it really is a guest hypercall.
Parameters can be passed in other registers. If the plugin
processes the hypercall, it should return true so the execution
of the normal instruction is skipped.
Callback arguments: (&mut CPUState
, )
Example
use panda::prelude::*;
#[panda::guest_hypercall]
fn callback(_: &mut CPUState, ) -> bool {
// do stuff
}