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

Function clone_queue

vm-virtio/src/lib.rs:163–179  ·  view source on GitHub ↗

Helper for cloning a Queue since QueueState doesn't derive Clone

(queue: &Queue)

Source from the content-addressed store, hash-verified

161
162/// Helper for cloning a Queue since QueueState doesn't derive Clone
163pub fn clone_queue(queue: &Queue) -> Queue {
164 let mut q = Queue::new(queue.max_size()).unwrap();
165
166 q.set_next_avail(queue.next_avail());
167 q.set_next_used(queue.next_used());
168 q.set_event_idx(queue.event_idx_enabled());
169 q.set_size(queue.size());
170 q.set_ready(queue.ready());
171 q.try_set_desc_table_address(GuestAddress(queue.desc_table()))
172 .unwrap();
173 q.try_set_avail_ring_address(GuestAddress(queue.avail_ring()))
174 .unwrap();
175 q.try_set_used_ring_address(GuestAddress(queue.used_ring()))
176 .unwrap();
177
178 q
179}

Callers 3

prepare_activatorMethod · 0.85
reconnect_innerMethod · 0.85
activateMethod · 0.85

Calls 5

newFunction · 0.85
set_sizeMethod · 0.80
readyMethod · 0.80
set_event_idxMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected