MCPcopy Create free account
hub / github.com/MultiFuzz/MultiFuzz / build_vtable

Method build_vtable

icicle-cortexm/src/unicorn_api.rs:62–88  ·  view source on GitHub ↗

Super unsafe: creates a self referencing struct.

(&mut self)

Source from the content-addressed store, hash-verified

60
61 // Super unsafe: creates a self referencing struct.
62 unsafe fn build_vtable(&mut self) {
63 let vtable = Box::new(fuzzware::uc_engine {
64 ctx: (self as *mut Context).cast(),
65 // Initialized as part of fuzzware::init
66 // @FIXME: currently this gets leaked.
67 fw: std::ptr::null_mut(),
68 emu_stop: Some(emu_stop),
69 reg_read: Some(reg_read),
70 reg_read_batch: Some(reg_read_batch),
71 reg_write: Some(reg_write),
72 reg_write_batch: Some(reg_write_batch),
73 reg_ptr: Some(reg_ptr),
74 mem_read: Some(mem_read),
75 mem_write: Some(mem_write),
76 set_timer_countdown: Some(set_timer_countdown),
77 get_timer_countdown: Some(get_timer_countdown),
78 block_hook_add: Some(block_hook_add),
79 backtrace: Some(backtrace),
80 push_stack: Some(push_stack),
81 pop_stack: Some(pop_stack),
82 notify_irq_enable_state: Some(notify_irq_enable_state),
83 timer_expired: Some(timer_expired),
84 get_next_irq_number: Some(get_next_irq_number),
85 get_next_timer_choice: Some(get_next_timer_choice),
86 });
87 self.vtable = Some(vtable);
88 }
89}
90
91pub(crate) const DEBUG: bool = false;

Callers 1

uc_ptrMethod · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected