MCPcopy Create free account
hub / github.com/cloud-hypervisor/cloud-hypervisor / setup_virt_queue

Function setup_virt_queue

fuzz/fuzz_targets/mem.rs:177–193  ·  view source on GitHub ↗
(bytes: &[u8; QUEUE_DATA_SIZE])

Source from the content-addressed store, hash-verified

175}
176
177fn setup_virt_queue(bytes: &[u8; QUEUE_DATA_SIZE]) -> Queue {
178 let mut q = Queue::new(QUEUE_SIZE).unwrap();
179 q.set_next_avail(bytes[0] as u16); // 'u8' is enough given the 'QUEUE_SIZE' is small
180 q.set_next_used(bytes[1] as u16);
181 q.set_event_idx(bytes[2] % 2 != 0);
182 q.set_size(bytes[3] as u16 % QUEUE_SIZE);
183
184 q.try_set_desc_table_address(GuestAddress(DESC_TABLE_ADDR))
185 .unwrap();
186 q.try_set_avail_ring_address(GuestAddress(AVAIL_RING_ADDR))
187 .unwrap();
188 q.try_set_used_ring_address(GuestAddress(USED_RING_ADDR))
189 .unwrap();
190 q.set_ready(true);
191
192 q
193}

Callers

nothing calls this directly

Calls 3

newFunction · 0.85
set_sizeMethod · 0.80
set_event_idxMethod · 0.45

Tested by

no test coverage detected