Lines Matching +full:add +full:- +full:user +full:- +full:device

3 // SPDX-License-Identifier: Apache-2.0 AND BSD-3-Clause
44 /// "eventq" lets the device report any fault or other asynchronous event to
50 /// Because virtio-iommu expects one MSI reserved region, we must provide it,
337 // mappings required from various devices such as VFIO or vhost-user ones,
343 // virtio-iommu (giving the link device_id <=> domain).
349 ) -> result::Result<usize, Error> { in parse()
371 let desc_size_left = (desc.len() as usize) - req_offset; in parse()
414 // Add endpoint associated with specific domain in parse()
434 // Add new domain with no mapping if the entry didn't exist yet in parse()
498 // mapping is done on a per-container level, not a per-domain level in parse()
501 let size = req.virt_end - req.virt_start + 1; in parse()
508 // Add new mapping associated with the domain in parse()
520 size: req.virt_end - req.virt_start + 1, in parse()
563 let size = req.virt_end - virt_start + 1; in parse()
652 ) -> result::Result<(), Error> { in detach_endpoint_from_domain()
697 fn request_queue(&mut self) -> Result<bool, Error> { in request_queue()
718 fn signal_used_queue(&self, queue_index: u16) -> result::Result<(), DeviceError> { in signal_used_queue()
731 ) -> result::Result<(), EpollHelperError> { in run()
745 ) -> result::Result<(), EpollHelperError> { in handle_event()
803 fn translate_gva(&self, id: u32, addr: u64) -> std::result::Result<u64, std::io::Error> { in translate_gva()
815 let new_addr = addr - key + value.gpa; in translate_gva()
830 fn translate_gpa(&self, id: u32, addr: u64) -> std::result::Result<u64, std::io::Error> { in translate_gpa()
842 let new_addr = addr - value.gpa + key; in translate_gpa()
865 pub fn new(id: u32, mapping: Arc<IommuMapping>) -> Self { in new()
871 fn translate_gva(&self, base: u64, _size: u64) -> std::result::Result<u64, std::io::Error> { in translate_gva()
874 fn translate_gpa(&self, base: u64, _size: u64) -> std::result::Result<u64, std::io::Error> { in translate_gpa()
909 ) -> io::Result<(Self, Arc<IommuMapping>)> { in new()
912 info!("Restoring virtio-iommu {}", id); in new()
951 end: (1u64 << address_width_bits) - 1, in new()
985 fn state(&self) -> IommuState { in state()
1044 fn device_type(&self) -> u32 { in device_type()
1048 fn queue_max_sizes(&self) -> &[u16] { in queue_max_sizes()
1052 fn features(&self) -> u64 { in features()
1067 (&self.config.bypass as *const _ as u64) - (&self.config as *const _ as u64); in write_config()
1070 "Attempt to write to read-only field: offset {:x} length {}", in write_config()
1087 ) -> ActivateResult { in activate()
1122 event!("virtio-device", "activated", "id", &self.id); in activate()
1126 fn reset(&mut self) -> Option<Arc<dyn VirtioInterrupt>> { in reset()
1128 event!("virtio-device", "reset", "id", &self.id); in reset()
1134 fn pause(&mut self) -> result::Result<(), MigratableError> { in pause()
1138 fn resume(&mut self) -> result::Result<(), MigratableError> { in resume()
1144 fn id(&self) -> String { in id()
1148 fn snapshot(&mut self) -> std::result::Result<Snapshot, MigratableError> { in snapshot()