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

Function setup_virt_queue

fuzz/fuzz_targets/vsock.rs:142–158  ·  view source on GitHub ↗
(bytes: &[u8; QUEUE_DATA_SIZE])

Source from the content-addressed store, hash-verified

140}
141
142fn setup_virt_queue(bytes: &[u8; QUEUE_DATA_SIZE]) -> Queue {
143 let mut q = Queue::new(QUEUE_SIZE).unwrap();
144 q.set_next_avail(bytes[0] as u16); // 'u8' is enough given the 'QUEUE_SIZE' is small
145 q.set_next_used(bytes[1] as u16);
146 q.set_event_idx(bytes[2] % 2 != 0);
147 q.set_size(bytes[3] as u16 % QUEUE_SIZE);
148
149 q.try_set_desc_table_address(GuestAddress(DESC_TABLE_ADDR))
150 .unwrap();
151 q.try_set_avail_ring_address(GuestAddress(AVAIL_RING_ADDR))
152 .unwrap();
153 q.try_set_used_ring_address(GuestAddress(USED_RING_ADDR))
154 .unwrap();
155 q.set_ready(true);
156
157 q
158}

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