(&self, vm: &mut icicle_vm::Vm)
| 147 | } |
| 148 | |
| 149 | pub fn get_mmio_reads(&self, vm: &mut icicle_vm::Vm) -> Vec<(StreamKey, u64, u8)> { |
| 150 | let path_tracer = vm.cpu.get_hook_mut(self.0); |
| 151 | let mmio_handle = path_tracer.data_mut::<PathTracer>().unwrap().mmio_handler; |
| 152 | let handler = vm.cpu.mem.get_io_memory_mut(mmio_handle).as_any(); |
| 153 | |
| 154 | let mut mmio_reads = vec![]; |
| 155 | if let Some(handler) = handler.downcast_ref::<FuzzwareMmioHandler<MultiStream>>() { |
| 156 | if let Some(tracer) = handler |
| 157 | .source |
| 158 | .tracer |
| 159 | .as_ref() |
| 160 | .and_then(|x| x.as_any().downcast_ref::<MultiStreamTracer>()) |
| 161 | { |
| 162 | mmio_reads = tracer.reads.clone(); |
| 163 | } |
| 164 | } |
| 165 | |
| 166 | mmio_reads |
| 167 | } |
| 168 | |
| 169 | pub fn clear(&self, vm: &mut icicle_vm::Vm) { |
| 170 | let path_tracer = vm.cpu.get_hook_mut(self.0); |
no test coverage detected