/src/cloud-hypervisor/vmm/src/vm_config.rs
Line | Count | Source (jump to first uncovered line) |
1 | | // Copyright © 2022 Intel Corporation |
2 | | // |
3 | | // SPDX-License-Identifier: Apache-2.0 |
4 | | // |
5 | | use net_util::MacAddr; |
6 | | use serde::{Deserialize, Serialize}; |
7 | | use std::{net::Ipv4Addr, path::PathBuf}; |
8 | | use virtio_devices::RateLimiterConfig; |
9 | | |
10 | 228 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] Unexecuted instantiation: <<vmm::vm_config::CpuAffinity as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting <<vmm::vm_config::CpuAffinity as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting Line | Count | Source | 10 | 3 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::CpuAffinity as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<serde_json::de::MapAccess<serde_json::read::SliceRead>> Line | Count | Source | 10 | 130 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::CpuAffinity as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>> Line | Count | Source | 10 | 37 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::CpuAffinity as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde_json::de::MapKey<serde_json::read::SliceRead>> Line | Count | Source | 10 | 65 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<vmm::vm_config::CpuAffinity as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 10 | 124 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::CpuAffinity as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 10 | 61 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::CpuAffinity as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> Unexecuted instantiation: <<vmm::vm_config::CpuAffinity as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> |
11 | | pub struct CpuAffinity { |
12 | | pub vcpu: u8, |
13 | | pub host_cpus: Vec<usize>, |
14 | | } |
15 | | |
16 | 888 | #[derive(Clone, Debug, Default, PartialEq, Eq, Deserialize, Serialize)] <vmm::vm_config::CpuFeatures as core::default::Default>::default Line | Count | Source | 16 | 849 | #[derive(Clone, Debug, Default, PartialEq, Eq, Deserialize, Serialize)] |
<vmm::vm_config::CpuFeatures as core::default::Default>::default Line | Count | Source | 16 | 39 | #[derive(Clone, Debug, Default, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::CpuFeatures as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting Line | Count | Source | 16 | 1 | #[derive(Clone, Debug, Default, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::CpuFeatures as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting <vmm::vm_config::CpuFeatures as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 16 | 118 | #[derive(Clone, Debug, Default, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::CpuFeatures as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>> Line | Count | Source | 16 | 7 | #[derive(Clone, Debug, Default, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::CpuFeatures as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 16 | 96 | #[derive(Clone, Debug, Default, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::CpuFeatures as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<serde_json::de::MapAccess<serde_json::read::SliceRead>> Line | Count | Source | 16 | 213 | #[derive(Clone, Debug, Default, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::CpuFeatures as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde_json::de::MapKey<serde_json::read::SliceRead>> Line | Count | Source | 16 | 98 | #[derive(Clone, Debug, Default, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::CpuFeatures as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> Unexecuted instantiation: <<vmm::vm_config::CpuFeatures as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> |
17 | | pub struct CpuFeatures { |
18 | | #[cfg(target_arch = "x86_64")] |
19 | | #[serde(default)] |
20 | | pub amx: bool, |
21 | | } |
22 | | |
23 | 375 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] <<vmm::vm_config::CpuTopology as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting Line | Count | Source | 23 | 8 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::CpuTopology as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting <vmm::vm_config::CpuTopology as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 23 | 148 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::CpuTopology as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<serde_json::de::MapAccess<serde_json::read::SliceRead>> Line | Count | Source | 23 | 184 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::CpuTopology as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 23 | 161 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::CpuTopology as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>> Line | Count | Source | 23 | 30 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::CpuTopology as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde_json::de::MapKey<serde_json::read::SliceRead>> Line | Count | Source | 23 | 166 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::CpuTopology as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> Unexecuted instantiation: <<vmm::vm_config::CpuTopology as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> |
24 | | pub struct CpuTopology { |
25 | | pub threads_per_core: u8, |
26 | | pub cores_per_die: u8, |
27 | | pub dies_per_package: u8, |
28 | | pub packages: u8, |
29 | | } |
30 | | |
31 | | // When booting with PVH boot the maximum physical addressable size |
32 | | // is a 46 bit address space even when the host supports with 5-level |
33 | | // paging. |
34 | | pub const DEFAULT_MAX_PHYS_BITS: u8 = 46; |
35 | | |
36 | 792 | pub fn default_cpuconfig_max_phys_bits() -> u8 { |
37 | 792 | DEFAULT_MAX_PHYS_BITS |
38 | 792 | } |
39 | | |
40 | 3.41k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] <<vmm::vm_config::CpusConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting Line | Count | Source | 40 | 6 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::CpusConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting <<vmm::vm_config::CpusConfig as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde_json::de::MapKey<serde_json::read::SliceRead>> Line | Count | Source | 40 | 760 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<vmm::vm_config::CpusConfig as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 40 | 1.57k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::CpusConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 40 | 747 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::CpusConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>> Line | Count | Source | 40 | 1.22k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::CpusConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<serde_json::de::MapAccess<serde_json::read::SliceRead>> Line | Count | Source | 40 | 1.44k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::CpusConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> Unexecuted instantiation: <<vmm::vm_config::CpusConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> |
41 | | pub struct CpusConfig { |
42 | | pub boot_vcpus: u8, |
43 | | pub max_vcpus: u8, |
44 | | #[serde(default)] |
45 | | pub topology: Option<CpuTopology>, |
46 | | #[serde(default)] |
47 | | pub kvm_hyperv: bool, |
48 | | #[serde(default = "default_cpuconfig_max_phys_bits")] |
49 | | pub max_phys_bits: u8, |
50 | | #[serde(default)] |
51 | | pub affinity: Option<Vec<CpuAffinity>>, |
52 | | #[serde(default)] |
53 | | pub features: CpuFeatures, |
54 | | } |
55 | | |
56 | | pub const DEFAULT_VCPUS: u8 = 1; |
57 | | |
58 | | impl Default for CpusConfig { |
59 | 57 | fn default() -> Self { |
60 | 57 | CpusConfig { |
61 | 57 | boot_vcpus: DEFAULT_VCPUS, |
62 | 57 | max_vcpus: DEFAULT_VCPUS, |
63 | 57 | topology: None, |
64 | 57 | kvm_hyperv: false, |
65 | 57 | max_phys_bits: DEFAULT_MAX_PHYS_BITS, |
66 | 57 | affinity: None, |
67 | 57 | features: CpuFeatures::default(), |
68 | 57 | } |
69 | 57 | } |
70 | | } |
71 | | |
72 | | pub const DEFAULT_NUM_PCI_SEGMENTS: u16 = 1; |
73 | 1 | pub fn default_platformconfig_num_pci_segments() -> u16 { |
74 | 1 | DEFAULT_NUM_PCI_SEGMENTS |
75 | 1 | } |
76 | | |
77 | 355 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] Unexecuted instantiation: <<vmm::vm_config::PlatformConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting <<vmm::vm_config::PlatformConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting Line | Count | Source | 77 | 1 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::PlatformConfig as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde_json::de::MapKey<serde_json::read::SliceRead>> Line | Count | Source | 77 | 85 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::PlatformConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 77 | 80 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<vmm::vm_config::PlatformConfig as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 77 | 151 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::PlatformConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<serde_json::de::MapAccess<serde_json::read::SliceRead>> Line | Count | Source | 77 | 147 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::PlatformConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>> Line | Count | Source | 77 | 128 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::PlatformConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> Unexecuted instantiation: <<vmm::vm_config::PlatformConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> |
78 | | pub struct PlatformConfig { |
79 | | #[serde(default = "default_platformconfig_num_pci_segments")] |
80 | | pub num_pci_segments: u16, |
81 | | #[serde(default)] |
82 | | pub iommu_segments: Option<Vec<u16>>, |
83 | | #[serde(default)] |
84 | | pub serial_number: Option<String>, |
85 | | #[serde(default)] |
86 | | pub uuid: Option<String>, |
87 | | #[serde(default)] |
88 | | pub oem_strings: Option<Vec<String>>, |
89 | | #[cfg(feature = "tdx")] |
90 | | #[serde(default)] |
91 | | pub tdx: bool, |
92 | | #[cfg(feature = "sev_snp")] |
93 | | #[serde(default)] |
94 | | pub sev_snp: bool, |
95 | | } |
96 | | |
97 | | pub const DEFAULT_PCI_SEGMENT_APERTURE_WEIGHT: u32 = 1; |
98 | | |
99 | 73 | fn default_pci_segment_aperture_weight() -> u32 { |
100 | 73 | DEFAULT_PCI_SEGMENT_APERTURE_WEIGHT |
101 | 73 | } |
102 | | |
103 | 423 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] Unexecuted instantiation: <<vmm::vm_config::PciSegmentConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting <<vmm::vm_config::PciSegmentConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting Line | Count | Source | 103 | 3 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::PciSegmentConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<serde_json::de::MapAccess<serde_json::read::SliceRead>> Line | Count | Source | 103 | 227 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::PciSegmentConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 103 | 111 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::PciSegmentConfig as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde_json::de::MapKey<serde_json::read::SliceRead>> Line | Count | Source | 103 | 113 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<vmm::vm_config::PciSegmentConfig as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 103 | 187 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::PciSegmentConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>> Line | Count | Source | 103 | 85 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::PciSegmentConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> Unexecuted instantiation: <<vmm::vm_config::PciSegmentConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> |
104 | | pub struct PciSegmentConfig { |
105 | | #[serde(default)] |
106 | | pub pci_segment: u16, |
107 | | #[serde(default = "default_pci_segment_aperture_weight")] |
108 | | pub mmio32_aperture_weight: u32, |
109 | | #[serde(default = "default_pci_segment_aperture_weight")] |
110 | | pub mmio64_aperture_weight: u32, |
111 | | } |
112 | | |
113 | 118 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] Unexecuted instantiation: <<vmm::vm_config::MemoryZoneConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting <<vmm::vm_config::MemoryZoneConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting Line | Count | Source | 113 | 2 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::MemoryZoneConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>> Line | Count | Source | 113 | 4 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::MemoryZoneConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 113 | 29 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::MemoryZoneConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<serde_json::de::MapAccess<serde_json::read::SliceRead>> Line | Count | Source | 113 | 85 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<vmm::vm_config::MemoryZoneConfig as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 113 | 59 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::MemoryZoneConfig as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde_json::de::MapKey<serde_json::read::SliceRead>> Line | Count | Source | 113 | 32 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::MemoryZoneConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> Unexecuted instantiation: <<vmm::vm_config::MemoryZoneConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> |
114 | | pub struct MemoryZoneConfig { |
115 | | pub id: String, |
116 | | pub size: u64, |
117 | | #[serde(default)] |
118 | | pub file: Option<PathBuf>, |
119 | | #[serde(default)] |
120 | | pub shared: bool, |
121 | | #[serde(default)] |
122 | | pub hugepages: bool, |
123 | | #[serde(default)] |
124 | | pub hugepage_size: Option<u64>, |
125 | | #[serde(default)] |
126 | | pub host_numa_node: Option<u32>, |
127 | | #[serde(default)] |
128 | | pub hotplug_size: Option<u64>, |
129 | | #[serde(default)] |
130 | | pub hotplugged_size: Option<u64>, |
131 | | #[serde(default)] |
132 | | pub prefault: bool, |
133 | | } |
134 | | |
135 | 538 | #[derive(Clone, Copy, Debug, PartialEq, Eq, Deserialize, Serialize, Default)] Unexecuted instantiation: <<vmm::vm_config::HotplugMethod as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting <<vmm::vm_config::HotplugMethod as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting Line | Count | Source | 135 | 1 | #[derive(Clone, Copy, Debug, PartialEq, Eq, Deserialize, Serialize, Default)] |
<<vmm::vm_config::HotplugMethod as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 135 | 19 | #[derive(Clone, Copy, Debug, PartialEq, Eq, Deserialize, Serialize, Default)] |
<vmm::vm_config::HotplugMethod as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 135 | 45 | #[derive(Clone, Copy, Debug, PartialEq, Eq, Deserialize, Serialize, Default)] |
<<vmm::vm_config::HotplugMethod as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 135 | 2 | #[derive(Clone, Copy, Debug, PartialEq, Eq, Deserialize, Serialize, Default)] |
<<vmm::vm_config::HotplugMethod as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<serde_json::de::VariantAccess<serde_json::read::SliceRead>> Line | Count | Source | 135 | 36 | #[derive(Clone, Copy, Debug, PartialEq, Eq, Deserialize, Serialize, Default)] |
<<vmm::vm_config::HotplugMethod as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<serde_json::de::UnitVariantAccess<serde_json::read::SliceRead>> Line | Count | Source | 135 | 2 | #[derive(Clone, Copy, Debug, PartialEq, Eq, Deserialize, Serialize, Default)] |
Unexecuted instantiation: <<vmm::vm_config::HotplugMethod as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> Unexecuted instantiation: <<vmm::vm_config::HotplugMethod as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> |
136 | | pub enum HotplugMethod { |
137 | | #[default] |
138 | | Acpi, |
139 | | VirtioMem, |
140 | | } |
141 | | |
142 | 538 | fn default_memoryconfig_thp() -> bool { |
143 | 538 | true |
144 | 538 | } |
145 | | |
146 | 2.38k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] Unexecuted instantiation: <<vmm::vm_config::MemoryConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting <<vmm::vm_config::MemoryConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting Line | Count | Source | 146 | 4 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<vmm::vm_config::MemoryConfig as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 146 | 1.01k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::MemoryConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<serde_json::de::MapAccess<serde_json::read::SliceRead>> Line | Count | Source | 146 | 1.08k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::MemoryConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>> Line | Count | Source | 146 | 605 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::MemoryConfig as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde_json::de::MapKey<serde_json::read::SliceRead>> Line | Count | Source | 146 | 697 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::MemoryConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 146 | 692 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::MemoryConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> Unexecuted instantiation: <<vmm::vm_config::MemoryConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> |
147 | | pub struct MemoryConfig { |
148 | | pub size: u64, |
149 | | #[serde(default)] |
150 | | pub mergeable: bool, |
151 | | #[serde(default)] |
152 | | pub hotplug_method: HotplugMethod, |
153 | | #[serde(default)] |
154 | | pub hotplug_size: Option<u64>, |
155 | | #[serde(default)] |
156 | | pub hotplugged_size: Option<u64>, |
157 | | #[serde(default)] |
158 | | pub shared: bool, |
159 | | #[serde(default)] |
160 | | pub hugepages: bool, |
161 | | #[serde(default)] |
162 | | pub hugepage_size: Option<u64>, |
163 | | #[serde(default)] |
164 | | pub prefault: bool, |
165 | | #[serde(default)] |
166 | | pub zones: Option<Vec<MemoryZoneConfig>>, |
167 | | #[serde(default = "default_memoryconfig_thp")] |
168 | | pub thp: bool, |
169 | | } |
170 | | |
171 | | pub const DEFAULT_MEMORY_MB: u64 = 512; |
172 | | |
173 | | impl Default for MemoryConfig { |
174 | 58 | fn default() -> Self { |
175 | 58 | MemoryConfig { |
176 | 58 | size: DEFAULT_MEMORY_MB << 20, |
177 | 58 | mergeable: false, |
178 | 58 | hotplug_method: HotplugMethod::Acpi, |
179 | 58 | hotplug_size: None, |
180 | 58 | hotplugged_size: None, |
181 | 58 | shared: false, |
182 | 58 | hugepages: false, |
183 | 58 | hugepage_size: None, |
184 | 58 | prefault: false, |
185 | 58 | zones: None, |
186 | 58 | thp: true, |
187 | 58 | } |
188 | 58 | } |
189 | | } |
190 | | |
191 | 185 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize, Default)] <<vmm::vm_config::VhostMode as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting Line | Count | Source | 191 | 8 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize, Default)] |
Unexecuted instantiation: <<vmm::vm_config::VhostMode as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting <<vmm::vm_config::VhostMode as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<serde_json::de::UnitVariantAccess<serde_json::read::SliceRead>> Line | Count | Source | 191 | 13 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize, Default)] |
<<vmm::vm_config::VhostMode as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 191 | 70 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize, Default)] |
<vmm::vm_config::VhostMode as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 191 | 93 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize, Default)] |
<<vmm::vm_config::VhostMode as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<serde_json::de::VariantAccess<serde_json::read::SliceRead>> Line | Count | Source | 191 | 126 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize, Default)] |
<<vmm::vm_config::VhostMode as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 191 | 46 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize, Default)] |
Unexecuted instantiation: <<vmm::vm_config::VhostMode as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> Unexecuted instantiation: <<vmm::vm_config::VhostMode as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> |
192 | | pub enum VhostMode { |
193 | | #[default] |
194 | | Client, |
195 | | Server, |
196 | | } |
197 | | |
198 | 680 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] Unexecuted instantiation: <<vmm::vm_config::RateLimiterGroupConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting <<vmm::vm_config::RateLimiterGroupConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting Line | Count | Source | 198 | 6 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::RateLimiterGroupConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>> Line | Count | Source | 198 | 146 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::RateLimiterGroupConfig as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde_json::de::MapKey<serde_json::read::SliceRead>> Line | Count | Source | 198 | 175 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::RateLimiterGroupConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<serde_json::de::MapAccess<serde_json::read::SliceRead>> Line | Count | Source | 198 | 364 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<vmm::vm_config::RateLimiterGroupConfig as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 198 | 294 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::RateLimiterGroupConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 198 | 170 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::RateLimiterGroupConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> Unexecuted instantiation: <<vmm::vm_config::RateLimiterGroupConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> |
199 | | pub struct RateLimiterGroupConfig { |
200 | | #[serde(default)] |
201 | | pub id: String, |
202 | | #[serde(default)] |
203 | | pub rate_limiter_config: RateLimiterConfig, |
204 | | } |
205 | | |
206 | 757 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] <<vmm::vm_config::VirtQueueAffinity as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting Line | Count | Source | 206 | 3 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::VirtQueueAffinity as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting <<vmm::vm_config::VirtQueueAffinity as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde_json::de::MapKey<serde_json::read::SliceRead>> Line | Count | Source | 206 | 250 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::VirtQueueAffinity as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 206 | 238 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<vmm::vm_config::VirtQueueAffinity as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 206 | 292 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::VirtQueueAffinity as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<serde_json::de::MapAccess<serde_json::read::SliceRead>> Line | Count | Source | 206 | 324 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::VirtQueueAffinity as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>> Line | Count | Source | 206 | 195 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::VirtQueueAffinity as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> Unexecuted instantiation: <<vmm::vm_config::VirtQueueAffinity as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> |
207 | | pub struct VirtQueueAffinity { |
208 | | pub queue_index: u16, |
209 | | pub host_cpus: Vec<usize>, |
210 | | } |
211 | | |
212 | 5.98k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] <<vmm::vm_config::DiskConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting Line | Count | Source | 212 | 14 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::DiskConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting <<vmm::vm_config::DiskConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>> Line | Count | Source | 212 | 200 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::DiskConfig as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde_json::de::MapKey<serde_json::read::SliceRead>> Line | Count | Source | 212 | 2.48k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<vmm::vm_config::DiskConfig as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 212 | 1.47k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::DiskConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 212 | 2.42k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::DiskConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<serde_json::de::MapAccess<serde_json::read::SliceRead>> Line | Count | Source | 212 | 3.35k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::DiskConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> Unexecuted instantiation: <<vmm::vm_config::DiskConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> |
213 | | pub struct DiskConfig { |
214 | | pub path: Option<PathBuf>, |
215 | | #[serde(default)] |
216 | | pub readonly: bool, |
217 | | #[serde(default)] |
218 | | pub direct: bool, |
219 | | #[serde(default)] |
220 | | pub iommu: bool, |
221 | | #[serde(default = "default_diskconfig_num_queues")] |
222 | | pub num_queues: usize, |
223 | | #[serde(default = "default_diskconfig_queue_size")] |
224 | | pub queue_size: u16, |
225 | | #[serde(default)] |
226 | | pub vhost_user: bool, |
227 | | pub vhost_socket: Option<String>, |
228 | | #[serde(default)] |
229 | | pub rate_limit_group: Option<String>, |
230 | | #[serde(default)] |
231 | | pub rate_limiter_config: Option<RateLimiterConfig>, |
232 | | #[serde(default)] |
233 | | pub id: Option<String>, |
234 | | // For testing use only. Not exposed in API. |
235 | | #[serde(default)] |
236 | | pub disable_io_uring: bool, |
237 | | // For testing use only. Not exposed in API. |
238 | | #[serde(default)] |
239 | | pub disable_aio: bool, |
240 | | #[serde(default)] |
241 | | pub pci_segment: u16, |
242 | | #[serde(default)] |
243 | | pub serial: Option<String>, |
244 | | #[serde(default)] |
245 | | pub queue_affinity: Option<Vec<VirtQueueAffinity>>, |
246 | | } |
247 | | |
248 | | pub const DEFAULT_DISK_NUM_QUEUES: usize = 1; |
249 | | |
250 | 103 | pub fn default_diskconfig_num_queues() -> usize { |
251 | 103 | DEFAULT_DISK_NUM_QUEUES |
252 | 103 | } |
253 | | |
254 | | pub const DEFAULT_DISK_QUEUE_SIZE: u16 = 128; |
255 | | |
256 | 103 | pub fn default_diskconfig_queue_size() -> u16 { |
257 | 103 | DEFAULT_DISK_QUEUE_SIZE |
258 | 103 | } |
259 | | |
260 | 7.05k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] Unexecuted instantiation: <<vmm::vm_config::NetConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting <<vmm::vm_config::NetConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting Line | Count | Source | 260 | 73 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::NetConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 260 | 2.52k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::NetConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>> <vmm::vm_config::NetConfig as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 260 | 1.88k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<<vmm::vm_config::NetConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::__DeserializeWith as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Unexecuted instantiation: <<vmm::vm_config::NetConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>>::{closure#0} <<vmm::vm_config::NetConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<serde_json::de::MapAccess<serde_json::read::SliceRead>> Line | Count | Source | 260 | 3.98k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<<vmm::vm_config::NetConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::__DeserializeWith as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 260 | 357 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::NetConfig as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde_json::de::MapKey<serde_json::read::SliceRead>> Line | Count | Source | 260 | 2.56k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::NetConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> Unexecuted instantiation: <<vmm::vm_config::NetConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> Unexecuted instantiation: <vmm::vm_config::NetConfig as serde::ser::Serialize>::serialize::<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> Unexecuted instantiation: <<vmm::vm_config::NetConfig as serde::ser::Serialize>::serialize::__SerializeWith as serde::ser::Serialize>::serialize::<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>> |
261 | | pub struct NetConfig { |
262 | | #[serde(default = "default_netconfig_tap")] |
263 | | pub tap: Option<String>, |
264 | | #[serde(default = "default_netconfig_ip")] |
265 | | pub ip: Ipv4Addr, |
266 | | #[serde(default = "default_netconfig_mask")] |
267 | | pub mask: Ipv4Addr, |
268 | | #[serde(default = "default_netconfig_mac")] |
269 | | pub mac: MacAddr, |
270 | | #[serde(default)] |
271 | | pub host_mac: Option<MacAddr>, |
272 | | #[serde(default)] |
273 | | pub mtu: Option<u16>, |
274 | | #[serde(default)] |
275 | | pub iommu: bool, |
276 | | #[serde(default = "default_netconfig_num_queues")] |
277 | | pub num_queues: usize, |
278 | | #[serde(default = "default_netconfig_queue_size")] |
279 | | pub queue_size: u16, |
280 | | #[serde(default)] |
281 | | pub vhost_user: bool, |
282 | | pub vhost_socket: Option<String>, |
283 | | #[serde(default)] |
284 | | pub vhost_mode: VhostMode, |
285 | | #[serde(default)] |
286 | | pub id: Option<String>, |
287 | | #[serde( |
288 | | default, |
289 | | serialize_with = "serialize_netconfig_fds", |
290 | | deserialize_with = "deserialize_netconfig_fds" |
291 | | )] |
292 | | pub fds: Option<Vec<i32>>, |
293 | | #[serde(default)] |
294 | | pub rate_limiter_config: Option<RateLimiterConfig>, |
295 | | #[serde(default)] |
296 | | pub pci_segment: u16, |
297 | | #[serde(default = "default_netconfig_true")] |
298 | | pub offload_tso: bool, |
299 | | #[serde(default = "default_netconfig_true")] |
300 | | pub offload_ufo: bool, |
301 | | #[serde(default = "default_netconfig_true")] |
302 | | pub offload_csum: bool, |
303 | | } |
304 | | |
305 | 288 | pub fn default_netconfig_true() -> bool { |
306 | 288 | true |
307 | 288 | } |
308 | | |
309 | 106 | pub fn default_netconfig_tap() -> Option<String> { |
310 | 106 | None |
311 | 106 | } |
312 | | |
313 | 110 | pub fn default_netconfig_ip() -> Ipv4Addr { |
314 | 110 | Ipv4Addr::new(192, 168, 249, 1) |
315 | 110 | } |
316 | | |
317 | 110 | pub fn default_netconfig_mask() -> Ipv4Addr { |
318 | 110 | Ipv4Addr::new(255, 255, 255, 0) |
319 | 110 | } |
320 | | |
321 | 110 | pub fn default_netconfig_mac() -> MacAddr { |
322 | 110 | MacAddr::local_random() |
323 | 110 | } |
324 | | |
325 | | pub const DEFAULT_NET_NUM_QUEUES: usize = 2; |
326 | | |
327 | 110 | pub fn default_netconfig_num_queues() -> usize { |
328 | 110 | DEFAULT_NET_NUM_QUEUES |
329 | 110 | } |
330 | | |
331 | | pub const DEFAULT_NET_QUEUE_SIZE: u16 = 256; |
332 | | |
333 | 110 | pub fn default_netconfig_queue_size() -> u16 { |
334 | 110 | DEFAULT_NET_QUEUE_SIZE |
335 | 110 | } |
336 | | |
337 | 0 | fn serialize_netconfig_fds<S>(x: &Option<Vec<i32>>, s: S) -> Result<S::Ok, S::Error> |
338 | 0 | where |
339 | 0 | S: serde::Serializer, |
340 | 0 | { |
341 | 0 | if let Some(x) = x { |
342 | 0 | warn!("'NetConfig' contains FDs that can't be serialized correctly. Serializing them as invalid FDs."); |
343 | 0 | let invalid_fds = vec![-1; x.len()]; |
344 | 0 | s.serialize_some(&invalid_fds) |
345 | | } else { |
346 | 0 | s.serialize_none() |
347 | | } |
348 | 0 | } |
349 | | |
350 | 185 | fn deserialize_netconfig_fds<'de, D>(d: D) -> Result<Option<Vec<i32>>, D::Error> |
351 | 185 | where |
352 | 185 | D: serde::Deserializer<'de>, |
353 | 185 | { |
354 | 185 | let invalid_fds: Option<Vec<i32>> = Option::deserialize(d)?; |
355 | 13 | if let Some(invalid_fds) = invalid_fds { |
356 | 10 | warn!("'NetConfig' contains FDs that can't be deserialized correctly. Deserializing them as invalid FDs."); |
357 | 10 | Ok(Some(vec![-1; invalid_fds.len()])) |
358 | | } else { |
359 | 3 | Ok(None) |
360 | | } |
361 | 185 | } |
362 | | |
363 | 465 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] Unexecuted instantiation: <<vmm::vm_config::RngConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting <<vmm::vm_config::RngConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting Line | Count | Source | 363 | 2 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::RngConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<serde_json::de::MapAccess<serde_json::read::SliceRead>> Line | Count | Source | 363 | 232 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::RngConfig as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde_json::de::MapKey<serde_json::read::SliceRead>> Line | Count | Source | 363 | 225 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::RngConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 363 | 218 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::RngConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>> Line | Count | Source | 363 | 15 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<vmm::vm_config::RngConfig as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 363 | 144 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::RngConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> Unexecuted instantiation: <<vmm::vm_config::RngConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> |
364 | | pub struct RngConfig { |
365 | | pub src: PathBuf, |
366 | | #[serde(default)] |
367 | | pub iommu: bool, |
368 | | } |
369 | | |
370 | | pub const DEFAULT_RNG_SOURCE: &str = "/dev/urandom"; |
371 | | |
372 | | impl Default for RngConfig { |
373 | 60 | fn default() -> Self { |
374 | 60 | RngConfig { |
375 | 60 | src: PathBuf::from(DEFAULT_RNG_SOURCE), |
376 | 60 | iommu: false, |
377 | 60 | } |
378 | 60 | } |
379 | | } |
380 | | |
381 | 1.08k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] Unexecuted instantiation: <<vmm::vm_config::BalloonConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting <<vmm::vm_config::BalloonConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting Line | Count | Source | 381 | 2 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::BalloonConfig as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde_json::de::MapKey<serde_json::read::SliceRead>> Line | Count | Source | 381 | 762 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<vmm::vm_config::BalloonConfig as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 381 | 163 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::BalloonConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>> Line | Count | Source | 381 | 16 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::BalloonConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<serde_json::de::MapAccess<serde_json::read::SliceRead>> Line | Count | Source | 381 | 322 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::BalloonConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 381 | 750 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::BalloonConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> Unexecuted instantiation: <<vmm::vm_config::BalloonConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> |
382 | | pub struct BalloonConfig { |
383 | | pub size: u64, |
384 | | /// Option to deflate the balloon in case the guest is out of memory. |
385 | | #[serde(default)] |
386 | | pub deflate_on_oom: bool, |
387 | | /// Option to enable free page reporting from the guest. |
388 | | #[serde(default)] |
389 | | pub free_page_reporting: bool, |
390 | | } |
391 | | |
392 | 2.35k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] <<vmm::vm_config::FsConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting Line | Count | Source | 392 | 14 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::FsConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting <<vmm::vm_config::FsConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>> Line | Count | Source | 392 | 202 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::FsConfig as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde_json::de::MapKey<serde_json::read::SliceRead>> Line | Count | Source | 392 | 1.01k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<vmm::vm_config::FsConfig as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 392 | 645 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::FsConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 392 | 998 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::FsConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<serde_json::de::MapAccess<serde_json::read::SliceRead>> Line | Count | Source | 392 | 1.15k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::FsConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> Unexecuted instantiation: <<vmm::vm_config::FsConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> |
393 | | pub struct FsConfig { |
394 | | pub tag: String, |
395 | | pub socket: PathBuf, |
396 | | #[serde(default = "default_fsconfig_num_queues")] |
397 | | pub num_queues: usize, |
398 | | #[serde(default = "default_fsconfig_queue_size")] |
399 | | pub queue_size: u16, |
400 | | #[serde(default)] |
401 | | pub id: Option<String>, |
402 | | #[serde(default)] |
403 | | pub pci_segment: u16, |
404 | | } |
405 | | |
406 | 22 | pub fn default_fsconfig_num_queues() -> usize { |
407 | 22 | 1 |
408 | 22 | } |
409 | | |
410 | 29 | pub fn default_fsconfig_queue_size() -> u16 { |
411 | 29 | 1024 |
412 | 29 | } |
413 | | |
414 | 2.70k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] Unexecuted instantiation: <<vmm::vm_config::PmemConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting <<vmm::vm_config::PmemConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting Line | Count | Source | 414 | 29 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<vmm::vm_config::PmemConfig as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 414 | 888 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::PmemConfig as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde_json::de::MapKey<serde_json::read::SliceRead>> Line | Count | Source | 414 | 1.10k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::PmemConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 414 | 1.07k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::PmemConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<serde_json::de::MapAccess<serde_json::read::SliceRead>> Line | Count | Source | 414 | 1.10k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::PmemConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>> Line | Count | Source | 414 | 517 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::PmemConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> Unexecuted instantiation: <<vmm::vm_config::PmemConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> |
415 | | pub struct PmemConfig { |
416 | | pub file: PathBuf, |
417 | | #[serde(default)] |
418 | | pub size: Option<u64>, |
419 | | #[serde(default)] |
420 | | pub iommu: bool, |
421 | | #[serde(default)] |
422 | | pub discard_writes: bool, |
423 | | #[serde(default)] |
424 | | pub id: Option<String>, |
425 | | #[serde(default)] |
426 | | pub pci_segment: u16, |
427 | | } |
428 | | |
429 | 122 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] <<vmm::vm_config::ConsoleOutputMode as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting Line | Count | Source | 429 | 3 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::ConsoleOutputMode as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting <<vmm::vm_config::ConsoleOutputMode as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<serde_json::de::UnitVariantAccess<serde_json::read::SliceRead>> Line | Count | Source | 429 | 17 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::ConsoleOutputMode as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<serde_json::de::VariantAccess<serde_json::read::SliceRead>> Line | Count | Source | 429 | 84 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::ConsoleOutputMode as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 429 | 21 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<vmm::vm_config::ConsoleOutputMode as serde::de::Deserialize>::deserialize::<serde::__private::de::missing_field::MissingFieldDeserializer<serde_json::error::Error>> Line | Count | Source | 429 | 2 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<vmm::vm_config::ConsoleOutputMode as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 429 | 80 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::ConsoleOutputMode as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 429 | 51 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::ConsoleOutputMode as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> Unexecuted instantiation: <<vmm::vm_config::ConsoleOutputMode as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> |
430 | | pub enum ConsoleOutputMode { |
431 | | Off, |
432 | | Pty, |
433 | | Tty, |
434 | | File, |
435 | | Socket, |
436 | | Null, |
437 | | } |
438 | | |
439 | 1.29k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] <<vmm::vm_config::ConsoleConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting Line | Count | Source | 439 | 3 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::ConsoleConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting <<vmm::vm_config::ConsoleConfig as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde_json::de::MapKey<serde_json::read::SliceRead>> Line | Count | Source | 439 | 661 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::ConsoleConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 439 | 655 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::ConsoleConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<serde_json::de::MapAccess<serde_json::read::SliceRead>> Line | Count | Source | 439 | 479 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<vmm::vm_config::ConsoleConfig as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 439 | 288 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::ConsoleConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>> Line | Count | Source | 439 | 163 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::ConsoleConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> Unexecuted instantiation: <<vmm::vm_config::ConsoleConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> |
440 | | pub struct ConsoleConfig { |
441 | | #[serde(default = "default_consoleconfig_file")] |
442 | | pub file: Option<PathBuf>, |
443 | | pub mode: ConsoleOutputMode, |
444 | | #[serde(default)] |
445 | | pub iommu: bool, |
446 | | pub socket: Option<PathBuf>, |
447 | | } |
448 | | |
449 | 2 | pub fn default_consoleconfig_file() -> Option<PathBuf> { |
450 | 2 | None |
451 | 2 | } |
452 | | |
453 | | #[cfg(target_arch = "x86_64")] |
454 | 114 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] <<vmm::vm_config::DebugConsoleConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting Line | Count | Source | 454 | 1 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::DebugConsoleConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting <vmm::vm_config::DebugConsoleConfig as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 454 | 59 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::DebugConsoleConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>> Line | Count | Source | 454 | 17 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::DebugConsoleConfig as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde_json::de::MapKey<serde_json::read::SliceRead>> Line | Count | Source | 454 | 20 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::DebugConsoleConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 454 | 19 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::DebugConsoleConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<serde_json::de::MapAccess<serde_json::read::SliceRead>> Line | Count | Source | 454 | 78 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::DebugConsoleConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> Unexecuted instantiation: <<vmm::vm_config::DebugConsoleConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> |
455 | | pub struct DebugConsoleConfig { |
456 | | #[serde(default)] |
457 | | pub file: Option<PathBuf>, |
458 | | pub mode: ConsoleOutputMode, |
459 | | /// Optionally dedicated I/O-port, if the default port should not be used. |
460 | | pub iobase: Option<u16>, |
461 | | } |
462 | | |
463 | | #[cfg(target_arch = "x86_64")] |
464 | | impl Default for DebugConsoleConfig { |
465 | 94 | fn default() -> Self { |
466 | 94 | Self { |
467 | 94 | file: None, |
468 | 94 | mode: ConsoleOutputMode::Off, |
469 | 94 | iobase: Some(devices::debug_console::DEFAULT_PORT as u16), |
470 | 94 | } |
471 | 94 | } |
472 | | } |
473 | | |
474 | 2.53k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] Unexecuted instantiation: <<vmm::vm_config::DeviceConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting <<vmm::vm_config::DeviceConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting Line | Count | Source | 474 | 130 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::DeviceConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>> Line | Count | Source | 474 | 200 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::DeviceConfig as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde_json::de::MapKey<serde_json::read::SliceRead>> Line | Count | Source | 474 | 1.24k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<vmm::vm_config::DeviceConfig as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 474 | 857 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::DeviceConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<serde_json::de::MapAccess<serde_json::read::SliceRead>> Line | Count | Source | 474 | 1.17k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::DeviceConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 474 | 1.16k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::DeviceConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> Unexecuted instantiation: <<vmm::vm_config::DeviceConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> |
475 | | pub struct DeviceConfig { |
476 | | pub path: PathBuf, |
477 | | #[serde(default)] |
478 | | pub iommu: bool, |
479 | | #[serde(default)] |
480 | | pub id: Option<String>, |
481 | | #[serde(default)] |
482 | | pub pci_segment: u16, |
483 | | #[serde(default)] |
484 | | pub x_nv_gpudirect_clique: Option<u8>, |
485 | | } |
486 | | |
487 | 2.22k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] <<vmm::vm_config::UserDeviceConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting Line | Count | Source | 487 | 24 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::UserDeviceConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting <<vmm::vm_config::UserDeviceConfig as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde_json::de::MapKey<serde_json::read::SliceRead>> Line | Count | Source | 487 | 1.20k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<vmm::vm_config::UserDeviceConfig as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 487 | 595 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::UserDeviceConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<serde_json::de::MapAccess<serde_json::read::SliceRead>> Line | Count | Source | 487 | 745 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::UserDeviceConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 487 | 1.16k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::UserDeviceConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>> Line | Count | Source | 487 | 312 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::UserDeviceConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> Unexecuted instantiation: <<vmm::vm_config::UserDeviceConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> |
488 | | pub struct UserDeviceConfig { |
489 | | pub socket: PathBuf, |
490 | | #[serde(default)] |
491 | | pub id: Option<String>, |
492 | | #[serde(default)] |
493 | | pub pci_segment: u16, |
494 | | } |
495 | | |
496 | 2.24k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] Unexecuted instantiation: <<vmm::vm_config::VdpaConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting <<vmm::vm_config::VdpaConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting Line | Count | Source | 496 | 11 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<vmm::vm_config::VdpaConfig as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 496 | 722 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::VdpaConfig as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde_json::de::MapKey<serde_json::read::SliceRead>> Line | Count | Source | 496 | 965 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::VdpaConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>> Line | Count | Source | 496 | 444 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::VdpaConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<serde_json::de::MapAccess<serde_json::read::SliceRead>> Line | Count | Source | 496 | 856 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::VdpaConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 496 | 946 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::VdpaConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> Unexecuted instantiation: <<vmm::vm_config::VdpaConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> |
497 | | pub struct VdpaConfig { |
498 | | pub path: PathBuf, |
499 | | #[serde(default = "default_vdpaconfig_num_queues")] |
500 | | pub num_queues: usize, |
501 | | #[serde(default)] |
502 | | pub iommu: bool, |
503 | | #[serde(default)] |
504 | | pub id: Option<String>, |
505 | | #[serde(default)] |
506 | | pub pci_segment: u16, |
507 | | } |
508 | | |
509 | 153 | pub fn default_vdpaconfig_num_queues() -> usize { |
510 | 153 | 1 |
511 | 153 | } |
512 | | |
513 | 1.96k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] <<vmm::vm_config::VsockConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting Line | Count | Source | 513 | 15 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::VsockConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting <<vmm::vm_config::VsockConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 513 | 798 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::VsockConfig as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde_json::de::MapKey<serde_json::read::SliceRead>> Line | Count | Source | 513 | 817 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::VsockConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>> Line | Count | Source | 513 | 349 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<vmm::vm_config::VsockConfig as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 513 | 561 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::VsockConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<serde_json::de::MapAccess<serde_json::read::SliceRead>> Line | Count | Source | 513 | 820 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::VsockConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> Unexecuted instantiation: <<vmm::vm_config::VsockConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> |
514 | | pub struct VsockConfig { |
515 | | pub cid: u32, |
516 | | pub socket: PathBuf, |
517 | | #[serde(default)] |
518 | | pub iommu: bool, |
519 | | #[serde(default)] |
520 | | pub id: Option<String>, |
521 | | #[serde(default)] |
522 | | pub pci_segment: u16, |
523 | | } |
524 | | |
525 | | #[cfg(target_arch = "x86_64")] |
526 | 844 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] Unexecuted instantiation: <<vmm::vm_config::SgxEpcConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting <<vmm::vm_config::SgxEpcConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting Line | Count | Source | 526 | 5 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::SgxEpcConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>> Line | Count | Source | 526 | 79 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<vmm::vm_config::SgxEpcConfig as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 526 | 245 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::SgxEpcConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 526 | 422 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::SgxEpcConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<serde_json::de::MapAccess<serde_json::read::SliceRead>> Line | Count | Source | 526 | 343 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::SgxEpcConfig as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde_json::de::MapKey<serde_json::read::SliceRead>> Line | Count | Source | 526 | 428 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::SgxEpcConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> Unexecuted instantiation: <<vmm::vm_config::SgxEpcConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> |
527 | | pub struct SgxEpcConfig { |
528 | | pub id: String, |
529 | | #[serde(default)] |
530 | | pub size: u64, |
531 | | #[serde(default)] |
532 | | pub prefault: bool, |
533 | | } |
534 | | |
535 | 232 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] Unexecuted instantiation: <<vmm::vm_config::NumaDistance as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting <<vmm::vm_config::NumaDistance as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting Line | Count | Source | 535 | 2 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::NumaDistance as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde_json::de::MapKey<serde_json::read::SliceRead>> Line | Count | Source | 535 | 54 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::NumaDistance as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<serde_json::de::MapAccess<serde_json::read::SliceRead>> Line | Count | Source | 535 | 129 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<vmm::vm_config::NumaDistance as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 535 | 127 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::NumaDistance as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 535 | 51 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::NumaDistance as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>> Line | Count | Source | 535 | 52 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::NumaDistance as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> Unexecuted instantiation: <<vmm::vm_config::NumaDistance as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> |
536 | | pub struct NumaDistance { |
537 | | #[serde(default)] |
538 | | pub destination: u32, |
539 | | #[serde(default)] |
540 | | pub distance: u8, |
541 | | } |
542 | | |
543 | 1.35k | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] <<vmm::vm_config::NumaConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting Line | Count | Source | 543 | 3 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::NumaConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting <<vmm::vm_config::NumaConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<serde_json::de::MapAccess<serde_json::read::SliceRead>> Line | Count | Source | 543 | 567 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::NumaConfig as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde_json::de::MapKey<serde_json::read::SliceRead>> Line | Count | Source | 543 | 225 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<vmm::vm_config::NumaConfig as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 543 | 573 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::NumaConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 543 | 221 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::NumaConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>> Line | Count | Source | 543 | 566 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::NumaConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> Unexecuted instantiation: <<vmm::vm_config::NumaConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> |
544 | | pub struct NumaConfig { |
545 | | #[serde(default)] |
546 | | pub guest_numa_id: u32, |
547 | | #[serde(default)] |
548 | | pub cpus: Option<Vec<u8>>, |
549 | | #[serde(default)] |
550 | | pub distances: Option<Vec<NumaDistance>>, |
551 | | #[serde(default)] |
552 | | pub memory_zones: Option<Vec<String>>, |
553 | | #[cfg(target_arch = "x86_64")] |
554 | | #[serde(default)] |
555 | | pub sgx_epc_sections: Option<Vec<String>>, |
556 | | #[serde(default)] |
557 | | pub pci_segments: Option<Vec<u16>>, |
558 | | } |
559 | | |
560 | 1.68k | #[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)] <<vmm::vm_config::PayloadConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting Line | Count | Source | 560 | 4 | #[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::PayloadConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting <<vmm::vm_config::PayloadConfig as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde_json::de::MapKey<serde_json::read::SliceRead>> Line | Count | Source | 560 | 752 | #[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)] |
<<vmm::vm_config::PayloadConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 560 | 745 | #[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)] |
<vmm::vm_config::PayloadConfig as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 560 | 713 | #[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)] |
<<vmm::vm_config::PayloadConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<serde_json::de::MapAccess<serde_json::read::SliceRead>> Line | Count | Source | 560 | 393 | #[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)] |
<<vmm::vm_config::PayloadConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>> Line | Count | Source | 560 | 543 | #[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::PayloadConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> Unexecuted instantiation: <<vmm::vm_config::PayloadConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> |
561 | | pub struct PayloadConfig { |
562 | | #[serde(default)] |
563 | | pub firmware: Option<PathBuf>, |
564 | | #[serde(default)] |
565 | | pub kernel: Option<PathBuf>, |
566 | | #[serde(default)] |
567 | | pub cmdline: Option<String>, |
568 | | #[serde(default)] |
569 | | pub initramfs: Option<PathBuf>, |
570 | | #[cfg(feature = "igvm")] |
571 | | #[serde(default)] |
572 | | pub igvm: Option<PathBuf>, |
573 | | #[cfg(feature = "sev_snp")] |
574 | | #[serde(default)] |
575 | | pub host_data: Option<String>, |
576 | | } |
577 | | |
578 | 55 | pub fn default_serial() -> ConsoleConfig { |
579 | 55 | ConsoleConfig { |
580 | 55 | file: None, |
581 | 55 | mode: ConsoleOutputMode::Null, |
582 | 55 | iommu: false, |
583 | 55 | socket: None, |
584 | 55 | } |
585 | 55 | } |
586 | | |
587 | 55 | pub fn default_console() -> ConsoleConfig { |
588 | 55 | ConsoleConfig { |
589 | 55 | file: None, |
590 | 55 | mode: ConsoleOutputMode::Tty, |
591 | 55 | iommu: false, |
592 | 55 | socket: None, |
593 | 55 | } |
594 | 55 | } |
595 | | |
596 | 248 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] <<vmm::vm_config::TpmConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting Line | Count | Source | 596 | 2 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::TpmConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting <<vmm::vm_config::TpmConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 596 | 97 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::TpmConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>> Line | Count | Source | 596 | 9 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::TpmConfig as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde_json::de::MapKey<serde_json::read::SliceRead>> Line | Count | Source | 596 | 101 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::TpmConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<serde_json::de::MapAccess<serde_json::read::SliceRead>> Line | Count | Source | 596 | 142 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
<vmm::vm_config::TpmConfig as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 596 | 98 | #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::TpmConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> Unexecuted instantiation: <<vmm::vm_config::TpmConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> |
597 | | pub struct TpmConfig { |
598 | | pub socket: PathBuf, |
599 | | } |
600 | | |
601 | 18.1k | #[derive(Debug, PartialEq, Eq, Deserialize, Serialize)] Unexecuted instantiation: <<vmm::vm_config::VmConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting <<vmm::vm_config::VmConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting Line | Count | Source | 601 | 14 | #[derive(Debug, PartialEq, Eq, Deserialize, Serialize)] |
<vmm::vm_config::VmConfig as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::SliceRead>> Line | Count | Source | 601 | 5.24k | #[derive(Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::VmConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<serde_json::de::MapAccess<serde_json::read::SliceRead>> Line | Count | Source | 601 | 10.5k | #[derive(Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::VmConfig as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<serde_json::de::SeqAccess<serde_json::read::SliceRead>> Line | Count | Source | 601 | 3.09k | #[derive(Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <vmm::vm_config::VmConfig as serde::de::Deserialize>::deserialize::<serde::__private::de::missing_field::MissingFieldDeserializer<serde_json::error::Error>> <<vmm::vm_config::VmConfig as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde_json::de::MapKey<serde_json::read::SliceRead>> Line | Count | Source | 601 | 4.53k | #[derive(Debug, PartialEq, Eq, Deserialize, Serialize)] |
<<vmm::vm_config::VmConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error> Line | Count | Source | 601 | 4.49k | #[derive(Debug, PartialEq, Eq, Deserialize, Serialize)] |
Unexecuted instantiation: <<vmm::vm_config::VmConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> Unexecuted instantiation: <<vmm::vm_config::VmConfig as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> |
602 | | pub struct VmConfig { |
603 | | #[serde(default)] |
604 | | pub cpus: CpusConfig, |
605 | | #[serde(default)] |
606 | | pub memory: MemoryConfig, |
607 | | pub payload: Option<PayloadConfig>, |
608 | | pub rate_limit_groups: Option<Vec<RateLimiterGroupConfig>>, |
609 | | pub disks: Option<Vec<DiskConfig>>, |
610 | | pub net: Option<Vec<NetConfig>>, |
611 | | #[serde(default)] |
612 | | pub rng: RngConfig, |
613 | | pub balloon: Option<BalloonConfig>, |
614 | | pub fs: Option<Vec<FsConfig>>, |
615 | | pub pmem: Option<Vec<PmemConfig>>, |
616 | | #[serde(default = "default_serial")] |
617 | | pub serial: ConsoleConfig, |
618 | | #[serde(default = "default_console")] |
619 | | pub console: ConsoleConfig, |
620 | | #[cfg(target_arch = "x86_64")] |
621 | | #[serde(default)] |
622 | | pub debug_console: DebugConsoleConfig, |
623 | | pub devices: Option<Vec<DeviceConfig>>, |
624 | | pub user_devices: Option<Vec<UserDeviceConfig>>, |
625 | | pub vdpa: Option<Vec<VdpaConfig>>, |
626 | | pub vsock: Option<VsockConfig>, |
627 | | #[serde(default)] |
628 | | pub pvpanic: bool, |
629 | | #[serde(default)] |
630 | | pub iommu: bool, |
631 | | #[cfg(target_arch = "x86_64")] |
632 | | pub sgx_epc: Option<Vec<SgxEpcConfig>>, |
633 | | pub numa: Option<Vec<NumaConfig>>, |
634 | | #[serde(default)] |
635 | | pub watchdog: bool, |
636 | | #[cfg(feature = "guest_debug")] |
637 | | #[serde(default)] |
638 | | pub gdb: bool, |
639 | | pub pci_segments: Option<Vec<PciSegmentConfig>>, |
640 | | pub platform: Option<PlatformConfig>, |
641 | | pub tpm: Option<TpmConfig>, |
642 | | // Preserved FDs are the ones that share the same life-time as its holding |
643 | | // VmConfig instance, such as FDs for creating TAP devices. |
644 | | // Preserved FDs will stay open as long as the holding VmConfig instance is |
645 | | // valid, and will be closed when the holding VmConfig instance is destroyed. |
646 | | #[serde(skip)] |
647 | | pub preserved_fds: Option<Vec<i32>>, |
648 | | } |