Crate panda_macros

Source

Macros§

define_closure_callbacks
osi_static

Attribute Macros§

after_block_exec
(Callback) Called after execution of every basic block. If exitCode > TB_EXIT_IDX1, then the block exited early.
after_block_translate
(Callback) Called after execution of every basic block. If exitCode > TB_EXIT_IDX1, then the block exited early.
after_cpu_exec_enter
(Callback) Called after cpu_exec calls cpu_exec_enter function.
after_insn_exec
(Callback) Called after execution of an instruction identified by the PANDA_CB_AFTER_INSN_TRANSLATE callback
after_insn_translate
(Callback) Called after the translation of each instruction.
after_loadvm
(Callback) Called right after a snapshot has been loaded (either with loadvm or replay initialization), but before any guest code runs.
after_machine_init
(Callback) Called right after the machine has been initialized, but before any guest code runs.
asid_changed
(Callback) Called when asid changes.
before_block_exec
(Callback) Called before execution of every basic block.
before_block_exec_invalidate_opt
(Callback) Called before execution of every basic block, with the option to invalidate the TB.
before_block_translate
(Callback) Called before translation of each basic block.
before_cpu_exec_exit
(Callback) Called before cpu_exec calls cpu_exec_exit function.
before_handle_exception
(Callback) Called just before we are about to handle an exception.
before_handle_interrupt
(Callback)
before_loadvm
(Callback) Called at start of replay, before loadvm is called. This allows us to hook devices’ loadvm handlers. Remember to unregister the existing handler for the device first. See the example in the sample plugin.
before_tcg_codegen
(Callback) Callback ID: PANDA_CB_BEFORE_TCG_CODEGEN
channel_recv
cpu_restore_state
(Callback) Called inside of cpu_restore_state(), when there is a CPU fault/exception.
during_machine_init
(Callback) Called in the middle of machine initialization
end_block_exec
(Callback) Callback ID: PANDA_CB_END_BLOCK_EXEC
guest_hypercall
(Callback) Called when a program inside the guest makes a hypercall to pass information from inside the guest to a plugin
hd_read
(Callback) Called when there is a hard drive read
hd_write
(Callback) Called when there is a hard drive write
hook
An attribute to declare a function for hooking using the PANDA ‘hooks’ plugin, enabling the ability to add callbacks for when a specifc instruction is hit, with control over the address space, kernel mode, and callback type to use.
init
(Required Callback) Called when the plugin is being uninitialized
insn_exec
(Callback) Called before execution of any instruction identified by the PANDA_CB_INSN_TRANSLATE callback.
insn_translate
(Callback) Called before the translation of each instruction.
main_loop_wait
(Callback) Called in IO thread in place where monitor cmds are processed
mmio_after_read
(Callback) Called after MMIO memory is read.
mmio_before_write
(Callback) Called after MMIO memory is written to.
monitor
(Callback) Called when someone uses the plugin_cmd monitor command.
on_mmap_updated
(Callback)
on_process_end
(Callback)
on_process_start
(Callback)
on_rec_auxv
(Callback) Runs when proc_start_linux recieves the AuxvValues for a given process.
on_thread_end
(Callback)
on_thread_start
(Callback)
phys_mem_after_read
(Callback) Called after memory is read.
phys_mem_after_write
(Callback) Called after memory is written.
phys_mem_before_read
(Callback) Called after memory is read.
phys_mem_before_write
(Callback) Called before memory is written.
pre_shutdown
(Callback) Called just before qemu shuts down
replay_after_dma
(Callback) In replay only, we are about to dma between qemu buffer and guest memory
replay_before_dma
(Callback) In replay only. We are about to dma between qemu buffer and guest memory.
replay_handle_packet
(Callback) In replay only, we have a packet (incoming / outgoing) in hand.
replay_hd_transfer
(Callback) In replay only. Some kind of data transfer involving hard drive.
replay_net_transfer
(Callback) In replay only, some kind of data transfer within the network card (currently, only the E1000 is supported).
replay_serial_read
(Callback) In replay only, called when a byte read from the serial RX FIFO
replay_serial_receive
(Callback) In replay only, called when a byte is received on the serial port.
replay_serial_send
(Callback) In replay only, called when a byte is sent on the serial port.
replay_serial_write
(Callback) In replay only, called when a byte written to the serial TX FIFO
start_block_exec
(Callback) Callback ID: PANDA_CB_START_BLOCK_EXEC
top_loop
(Callback) Called at the top of the loop that manages emulation.
unassigned_io_read
(Callback) Called when the guest attempts to read from an unmapped peripheral via MMIO
unassigned_io_write
(Callback) Called when the guest attempts to write to an unmapped peripheral via MMIO
uninit
(Callback) Called when the plugin is being uninitialized
virt_mem_after_read
(Callback) Called after memory is read.
virt_mem_after_write
(Callback) Called after memory is written.
virt_mem_before_read
(Callback) Called before memory is read.
virt_mem_before_write
(Callback) Called before memory is written.

Derive Macros§

GuestType
OsiType
PandaArgs