Helper for cloning a Queue since QueueState doesn't derive Clone
(queue: &Queue)
| 161 | |
| 162 | /// Helper for cloning a Queue since QueueState doesn't derive Clone |
| 163 | pub 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 | } |
no test coverage detected