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

Function build_models

icicle-cortexm/src/mmio.rs:25–50  ·  view source on GitHub ↗
(models: &config::MmioModels)

Source from the content-addressed store, hash-verified

23}
24
25fn build_models(models: &config::MmioModels) -> (Vec<Model>, Vec<u32>) {
26 let bitextract = models.bitextract.values().map(|x| Model {
27 pc: x.pc,
28 addr: x.addr as u32,
29 kind: ModelKind::Bitextract { size: x.size, left_shift: x.left_shift, mask: x.mask },
30 });
31 let constant = models.constant.values().map(|x| Model {
32 pc: x.pc,
33 addr: x.addr as u32,
34 kind: ModelKind::Constant { val: x.val },
35 });
36 let mut passthrough_id = 0;
37 let passthrough = models.passthrough.values().map(|x| {
38 let id = passthrough_id;
39 passthrough_id += 1;
40 Model { pc: x.pc, addr: x.addr as u32, kind: ModelKind::Passthrough { id } }
41 });
42 let passthrough_data = models.passthrough.values().map(|x| x.init_val).collect();
43
44 let set = models.set.values().map(|x| Model {
45 pc: x.pc,
46 addr: x.addr as u32,
47 kind: ModelKind::Set { values: x.vals.clone() },
48 });
49 (bitextract.chain(constant).chain(passthrough).chain(set).collect(), passthrough_data)
50}
51
52/// A re-implemented fuzzware MMIO handler
53pub struct FuzzwareMmioHandler<I> {

Callers 1

newMethod · 0.85

Calls 1

cloneMethod · 0.80

Tested by

no test coverage detected